ShiftAPPens_splash

O Shift APPens irá juntar durante 48 horas estudares das áreas de programação e design para desenvolverem aplicações.

Irá decorrer de 21 a 23 de Fevereiro no Departamento de Engenharia Informática da Faculdade de Ciências e Tecnologias da Universidade de Coimbra (FCTUC).

O evento é organizado pela empresa jeKnowledge e pelo Núcleo de Estudantes de Informática.

Programa-600x424

 

Poderá obter mais informações Aqui:

A inscrição pode ser feita Aqui:

Share

images

Irá realizar-se no próximo dia 1 de Fevereiro o 1º 1º Hackathon da Comunidade NetPonto nas instalações da Microsoft no Parque das Nações, Lisboa.

Serão 8 horas dedicadas ao desenvolvimento / aperfeiçoamento de aplicações que podem resultar em bons prémios.

Todas as informações podem ser consultadas Aqui:

A inscrição Pode ser Feita Aqui:

Share

sdl

A linguagem de programação C++ é muito poderosa, sendo um importante recurso na programação seja do que for. A programação de jogos não é exceção, e em conjunto com SDL (Simple DirectMedia Layer) é possível criar umas coisas engraçadas.

Como sou curioso e com demasiada vontade de experimentar tudo menos o que tenho realmente de fazer, aqui fica uma pequena experiência com C++ e SDL que mais não é que desenhar um pequeno quadrado no ecrã e a possibilidade de o movimentar usando as teclas do teclado.

Aqui fica o todo o código fonte:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//Include da Biblioteca SDL, Funcoes e tipos de dasdos
#include <sdl /SDL.h>
 
 
int main(int argc, char** argv)
{
        //Inicializacao do SDL
        SDL_Init(SDL_INIT_EVERYTHING);
 
        //Definição do Ecra
        SDL_Surface *screen;
        screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
 
//        screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE|SDL_FULLSCREEN);
 
        //Boleano para o teste de execucao
        bool running = true;
 
        //4 direcções
        bool b[4] = {0, 0, 0, 0};
 
        //Definicao dos controladores de FPS
        const int FPS = 30;
        Uint32 start;
 
        //Definicao dos pontos e da recta para desenho do quadrado no ecra
        SDL_Rect rect;
        rect.x = 10;
        rect.y = 10;
        rect.w = 20;
        rect.h = 20;
 
        //Definicao das cores a usar quer em background quer no quadrado desenhado
        Uint32 color = SDL_MapRGB(screen->format, 0xff,0xff,0xff); // cor branca background
        Uint32 color2 = SDL_MapRGB(screen->format, 0,0,0); //cor preta do quadrado
 
        //teste de verificacao da execução
        while(running) 
        {
                start = SDL_GetTicks();
                SDL_Event event;
 
                while(SDL_PollEvent(&event)) 
                {
                        switch(event.type) 
                        {
                                //caso escolha sair (x) termina a execuçao
                                case SDL_QUIT:
                                        running = false;
                                        break;
 
                                //caso Tecla Esteja pressionada
                                case SDL_KEYDOWN:
                                        switch(event.key.keysym.sym) 
                                        {
                                                case SDLK_UP: //Cima
                                                        b[0] = 1;
                                                        break;
                                                case SDLK_LEFT: //Esquerda
                                                        b[1] = 1;
                                                        break;
                                                case SDLK_DOWN: //Baixo
                                                        b[2] = 1;
                                                        break;
                                                case SDLK_RIGHT: //Direita
                                                        b[3] = 1;
                                                        break;
 
                                        }
                                        break;
 
                                //caso Tecla Não Esteja pressionada
                                case SDL_KEYUP:
                                        switch(event.key.keysym.sym) 
                                        {
                                                case SDLK_UP: //Cima
                                                        b[0] = 0;
                                                        break;
                                                case SDLK_LEFT: //Esquerda
                                                        b[1] = 0;
                                                        break; 
                                                case SDLK_DOWN: //Baixo
                                                        b[2] = 0;
                                                        break;
                                                case SDLK_RIGHT: //Direita
                                                        b[3] = 0;
                                                        break;
 
                                        }
                                        break;
                        }
                }
 
                //case UP pressionado decrementa 1 a Y
                if(b[0])
                        rect.y--;
                //Caso LEFT pressionado decremetna 1 a X
                if(b[1])
                        rect.x--;
                //case Down pressionado incrementa 1 a Y
                if(b[2])
                        rect.y++;
                //Caso RIGHT pressionado incremetna 1 a X
                if(b[3])
                        rect.x++;
 
                //Desenhar o background
                SDL_FillRect(screen, &screen->clip_rect, color);
                //desenhar o quadrado a preto
                SDL_FillRect(screen, &rect, color2);
 
                //Update Screen
                SDL_Flip(screen);
 
                if(1000/FPS > SDL_GetTicks()-start) 
                {
                        SDL_Delay(1000/FPS-(SDL_GetTicks()-start));
                }
        }
 
        //Quit SDL
        SDL_Quit();
 
        return 0;
}
</sdl>

 
Isto não passa de uma mera experiência sendo que existe um potencial muito grande para se extrair do C++ e do SDL capaz de fazer alguns do mais “brilhantes” jogos de computador.

Share

Estamos em pleno século XXI e todos nós usamos tecnologia e informação diariamente de tal modo que arrisco dizer que é impossível viver sem ela.

É inevitável o uso de telemóveis, smartphones, tablets, computadores entre milhares de outros dispositivos no nosso dia-a-dia. Mas para que o mais comum dos mortais possa usar essa mesma tecnologia teve de haver alguém a desenvolver essa tecnologia e sobretudo a programa-la.

As aplicações para smartphones, tablets, computadores e todos e mais alguns dispositivos que possamos imaginar tiveram de ser programadas por um Humano. Quantas vezes cada um de nós já deu por si a pensar que uma “determinada aplicação” seria tão útil para o decorrer do nosso dia-a-dia ou para a nosso trabalho?

Acredito que muitos já tiveram este pensamento, mas não tiveram os conhecimentos necessários sobre programação para materializar essa mesma ideia. Não faltam ideias a fervilhar pelo mundo fora, falta é sobretudo conhecimentos suficientes para poder colocar essas mesmas ideias em prática.

Programar não é uma ciência exacta, é sobretudo uma arte que permite dar asas à nossa imaginação. Talvez seja até demasiado arriscado dizer que programar é a forma mais completa de aprender, sim aprender, pois programar aguça a lógica do pensamento tal como a matemática o faz e isso é o mais importante no processo de aprendizagem!

Num mundo onde a tecnologia é a palavra de ordem basicamente vivemos num mundo criado pelos programadores, pois são estes que decidem o que podemos ou não fazer em determinado dispositivo tecnológico, alguns dos quais já não imaginamos a viver sem eles.

Recentemente temos assistido a um crescente incentivo por parte de alguns Gurus da tecnologia, tais como Mark Zuckerberg. Bill Gates e Jack Dorsey ao ensino da programação aos mais jovens, tentando fazer crer que estes serão os génios de amanhã e que serão capazes de comunicar seja com quem for através da programação.

Alguns dos projectos que incentivam a programar e ensinam a programar de uma forma fácil e intuitiva são:

http://academy.dei.uc.pt/

https://www.codecademy.com/pt

www.code.org

Não quero estar a dizer que programar se possa tornar numa língua essencial para comunicar a curto prazo, mas sem qualquer tipo de dúvida programar está a tornar-se um recurso muito importante e poderoso.

Estará a Programação a tornar-se na linguagem mais importante do mundo?

“Everybody in this country should learn how to program a computer… because it teaches you how to think.” – Steve Jobs

“Coding have the Magical Power to Make Your Devices do What You Want them to do!”

Este Artigo Foi Publicado na Edição 43 da Revista Programar…

Share

pg43

Já está disponível a nova edição da Revista Programar, esta edição traz como destaque um artigo sobre “Interacção com Voz no Android”, contendo também um também um artigo sobre “Programar: É a “Lingua” do Século XXI” elaborado por mim, entre muitos outros artigos.

É uma revista redigida por um grupo de voluntários que tem por gosto a programação, e apresenta artigos de grande qualidade e utilidade para qualquer interessado em programação…

O Download Pode Ser Feito Aqui:

Share