int main(void){ uint8_t j; inicializar_relogio(); inicializar_display(); carregarCores(); while (1){ apagar(); LEDS[18][0] = 10; LEDS[ 9][0] = 10; LEDS[20][1] = 10; LEDS[11][1] = 10; LEDS[ 2][1] = 10; LEDS[26][2] = 10; LEDS[17][2] = 10; LEDS[ 8][2] = 10; LEDS[ 7][2] = 10; LEDS[24][0] = 10; LEDS[24][2] = 10; LEDS[4][0] = 10; LEDS[4][1] = 10; LEDS[4][2] = 6; j = esperarJogada(10000); switch(j){ case 24: fazerJogada(j,0,0,0); jogarNp(1); break; case 18: case 9: fazerJogada(j,0,0,0); jogarNp(2); break; case 20: case 11: case 2: fazerJogada(j,0,0,0); jogarNp(3); break; case 26: case 17: case 8: case 7: fazerJogada(j,0,0,0); jogarNp(4); break; case 4: fazerJogada(j,0,0,0); editarCor(); break; } } }
/** Método : mover Objetivo: Move (ou não) o anjo/demonio na tela **/ bool Controlador::mover() { if (x-passo < limite) return false; apagar(); x -= passo; desenhar(); return true; }
void main(void) { int opc; init(); do { printf("\n\n"); printf(" <1> Insira dados do aluno\n"); printf(" <2> Listar alunos \n"); printf(" <3> Remover \n"); printf(" <4> Modificar tdos os dados dos alunos\n"); printf(" <5> Listar aluno\n"); printf(" <6> Procurar aluno\n"); printf(" <7> Modificar a nota de um dado aluno\n"); printf(" Obter estatistica da turma \n"); printf(" <8> Media da turma\n"); printf(" <9> percentagem de notas positivas e negativas\n"); printf(" <10> Melhor e pior nota\n"); printf(" <11> Listar os alunos com nota superior a um dado valor\n"); printf(" <12> Listar os alunos com nota inferior a um dado valor\n"); printf(" <13> Desvio padrao das notas\n"); printf(" <14> Sair \n"); printf(" Insira a sua opcao\n"); scanf(" %d",&opc); switch(opc) { case 1: inserir(); break; case 2: listar_alunos(); break; case 3: apagar(); break; case 4: modificar_alunos(); break; case 5: listar_aluno(); break; case 6: if (procurar_aluno()== 0) printf("Esse aluno nao existe!!!\n"); else printf("Esse aluno existe!!!\n"); break; case 7: modificar_nota_aluno(); break; case 8: media_notas(); break; case 9: percentagem_pos_neg(); break; case 10: melhor_pior_nota(); break; case 11: list_sup_nota(); break; case 12: list_inf_nota(); break; case 13: desvio_padrao(); break; case 14: break; } }while(opc != 14 ); }
/** Método : ~Controlador Objetivo: Apaga o objeto **/ Controlador::~Controlador() { apagar(); }
/* 0 1 2 9 10 11 18 19 20 * 3 4 5 12 13 14 21 22 23 top * 6 7 8 15 16 17 24 25 26 */ void editarCor(){ uint8_t corSelecionada = 5; uint8_t novaCor[3]; apagar(); fazerJogadaV(18,CORES[0][0],CORES[0][1],CORES[0][2],1); fazerJogadaV(20,CORES[1][0],CORES[1][1],CORES[1][2],2); fazerJogadaV(26,CORES[2][0],CORES[2][1],CORES[2][2],3); fazerJogadaV(24,CORES[3][0],CORES[3][1],CORES[3][2],4); LEDS[4][0] = 10; LEDS[4][1] = 10; LEDS[4][2] = 6; while(corSelecionada>4){ switch(esperarJogada(20000)){ case 18: corSelecionada=0; fazerJogada(18,0,0,0); break; case 20: corSelecionada=1; fazerJogada(20,0,0,0); break; case 26: corSelecionada=2; fazerJogada(26,0,0,0); break; case 24: corSelecionada=3; fazerJogada(24,0,0,0); break; case 4: case 30: return; } } novaCor[0] = CORES[corSelecionada][0]; novaCor[1] = CORES[corSelecionada][1]; novaCor[2] = CORES[corSelecionada][2]; apagar(); while(1){ LEDS[18][0] = 1; LEDS[20][0] = 10; LEDS[21][1] = 1; LEDS[23][1] = 10; LEDS[24][2] = 1; LEDS[26][2] = 10; LEDS[22][0] = novaCor[0]; LEDS[22][1] = novaCor[1]; LEDS[22][2] = novaCor[2]; LEDS[4][0] = 10; LEDS[4][1] = 10; LEDS[4][2] = 6; switch(esperarJogada(20000)){ case 18: if(novaCor[0]>0){ novaCor[0]--; LEDS[18][0] = 10; _delay_ms(100); } break; case 20: if(novaCor[0]<10){ novaCor[0]++; LEDS[20][0] = 0; _delay_ms(100); } break; case 21: if(novaCor[1]>0){ novaCor[1]--; LEDS[21][1] = 10; _delay_ms(100); } break; case 23: if(novaCor[1]<10){ novaCor[1]++; LEDS[23][1] = 0; _delay_ms(100); } break; case 24: if(novaCor[2]>0){ novaCor[2]--; LEDS[24][2] = 10; _delay_ms(100); } break; case 26: if(novaCor[2]<10){ novaCor[2]++; LEDS[26][2] = 0; _delay_ms(100); } break; case 22: if(novaCor[0]==0 && novaCor[1]==0 && novaCor[2]==0){ fazerJogada(22,10,10,10); }else{ fazerJogadaV(22,0,0,0,1); CORES[corSelecionada][0] = novaCor[0]; CORES[corSelecionada][1] = novaCor[1]; CORES[corSelecionada][2] = novaCor[2]; salvarCores(); return; } break; case 4: case 30: fazerJogada(4,0,0,0); return; } } }
void jogar1p(){ uint8_t jogadas[4], jogada; apagar(); do{ ////////////////////////////////////////////////1 jogada = esperarJogada(30000); if(jogada>28){ pisca_vencedor(); return; } }while(!(LEDS[jogada][0]==0 && LEDS[jogada][1]==0 && LEDS[jogada][2]==0)); fazerJogada(jogada,CORES[0][0],CORES[0][1],CORES[0][2]); jogadas[0] = jogada-18; ////////////////////////////////2 jogada = pgm_read_byte( &JOG1[jogadas[0]] ) - 1 + 18; fazerJogada(jogada,CORES[1][0],CORES[1][1],CORES[1][2]); do{ ////////////////////////////////////////////////3 jogada = esperarJogada(30000); if(jogada>28){ pisca_vencedor(); return; } }while(!(LEDS[jogada][0]==0 && LEDS[jogada][1]==0 && LEDS[jogada][2]==0)); fazerJogada(jogada,CORES[0][0],CORES[0][1],CORES[0][2]); jogadas[1] = jogada-18; ////////////////////////////////4 jogada = pgm_read_byte( &JOG2[jogadas[0]][jogadas[1]] ) - 1 + 18; fazerJogada(jogada,CORES[1][0],CORES[1][1],CORES[1][2]); do{ ////////////////////////////////////////////////5 jogada = esperarJogada(30000); if(jogada>28){ pisca_vencedor(); return; } }while(!(LEDS[jogada][0]==0 && LEDS[jogada][1]==0 && LEDS[jogada][2]==0)); fazerJogada(jogada,CORES[0][0],CORES[0][1],CORES[0][2]); jogadas[2] = jogada-18; ////////////////////////////////6 jogada = pgm_read_byte( &JOG3[jogadas[0]][jogadas[1]][jogadas[2]] ) - 1 + 18; fazerJogada(jogada,CORES[1][0],CORES[1][1],CORES[1][2]); if(checa_vencedor()){ pisca_vencedor(); return; } do{ ////////////////////////////////////////////////7 jogada = esperarJogada(30000); if(jogada>28){ pisca_vencedor(); return; } }while(!(LEDS[jogada][0]==0 && LEDS[jogada][1]==0 && LEDS[jogada][2]==0)); fazerJogada(jogada,CORES[0][0],CORES[0][1],CORES[0][2]); jogadas[3] = jogada-18; ////////////////////////////////8 jogada = pgm_read_byte( &JOG4[jogadas[0]][jogadas[1]][jogadas[2]][jogadas[3]] ) - 1+18; fazerJogada(jogada,CORES[1][0],CORES[1][1],CORES[1][2]); if(checa_vencedor()){ pisca_vencedor(); return; } do{ ////////////////////////////////////////////////9 jogada = esperarJogada(30000); if(jogada>28){ pisca_vencedor(); return; } }while(!(LEDS[jogada][0]==0 && LEDS[jogada][1]==0 && LEDS[jogada][2]==0)); fazerJogada(jogada,CORES[0][0],CORES[0][1],CORES[0][2]); pisca_vencedor(); }
void jogarNp(uint8_t n){ uint8_t jogador, jogada, atual; if(n==1)jogar1p(); else if(n==2){ apagar(); LEDS[0][0] = 1; LEDS[1][0] = 2; LEDS[2][0] = 1; LEDS[3][0] = 1; LEDS[4][0] = 2; LEDS[5][0] = 1; LEDS[6][0] = 2; LEDS[7][0] = 1; LEDS[8][0] = 2; LEDS[ 9][1] = 1; LEDS[10][1] = 2; LEDS[11][1] = 1; LEDS[12][1] = 1; LEDS[13][1] = 2; LEDS[14][1] = 1; LEDS[15][1] = 2; LEDS[16][1] = 1; LEDS[17][1] = 2; for(jogador=0;jogador<9;jogador++){ jogada = esperarJogada(120000); if(jogada>27){ pisca_vencedor(); return; } if(!(LEDS[jogada][0]==0 && LEDS[jogada][1]==0 && LEDS[jogada][2]==0)){ jogador--; }else{ atual = jogador%2; fazerJogada(jogada,CORES[atual][0],CORES[atual][1],CORES[atual][2]); if(checa_vencedor()){ pisca_vencedor(); return; } } } pisca_vencedor(); }else{ apagar(); for(jogador=0;jogador<27;jogador++){ jogada = esperarJogada(120000); if(jogada>27){ pisca_vencedor(); return; } if(!(LEDS[jogada][0]==0 && LEDS[jogada][1]==0 && LEDS[jogada][2]==0)){ jogador--; }else{ atual = jogador%n; fazerJogada(jogada,CORES[atual][0],CORES[atual][1],CORES[atual][2]); if(checa_vencedor()){ pisca_vencedor(); return; } } } pisca_vencedor(); } }