Ir ao conteúdo
  • Cadastre-se

Higor de Deus

Membros Juniores
  • Total de itens

    17
  • Registro em

  • Última visita

  • Qualificações

    N/D

Tudo que Higor de Deus postou

  1. Show! Muito obrigado pela crítica, esse foi meu primeiro contato com programação e foi feito do 0, não sabia nem o que era um printf... Sei que é possível fazer um código bem melhor e mais otimizado e estava buscando exatamente críticas como a sua Vou buscar otimizar e melhorar ainda mais agora que estou mais avançado no curso e tenho mais experiência! Obrigado
  2. entendi, olha esses desgastes acontecem as vezes mesmo mas não costumam a atrapalhar o funcionamento do computador apenas o rendimento cai minimamente (quase imperceptível) como eu falei desconfio de um curto e só é possível atestar isso medindo cada componente com uma ferramenta adequada :(. Recomendo você não tentar ficar ligando ele pra evitar mais problemas e procurar uma assistência especializada
  3. Olha, não consigo ver bem na imagem mas você tem outra memória pra colocar no lugar dessa? Pra ligar sem ela estar conectada
  4. Show, da uma limpeza como o @Eduardo P.R mencionou, passa um pincel na placa com cuidado retirando a poeira, se tiver álcool isopropílico pode passar também!
  5. Realmente está parecendo um curto ou algum componente esquentando muito. Uma vez eu presenciei isso com um celular ele ligava tranquilo, funcionava, mas logo desligava e ficava horas em off... Depois de testar todos os componentes e os barramentos eu localizei o curto e foi possível o reparo. Sei que um celular é bem diferente do Pc mas segue o mesmo conceito de como estão acontecendo as coisas A critério de teste, tenta limpar a placa com um pincel e localizar alguma degradação
  6. Vish, é fria... Mas você disse que já aconteceu isso antes e você resetou e deu bom, vai tentando... Mesmo eu achando que é algum problema com a placa mesmo, algum curto que ferrou
  7. Ahh, show então o código fica assim: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> typedef struct // Definição da Estrutura "Endereço" { char rua[50]; int numero; char cidade[30]; char codigo_postal[8]; }tipo_endereco; typedef struct // Definição da Estrutura "Pessoal" { char nome[50]; int telefone; tipo_endereco endereco; }ficha_pessoal; int main() { ficha_pessoal funcionario; printf("Digite o nome do funcionario: "); scanf("%s", funcionario.nome); printf("Digite a rua do funionario:"); scanf("%s", funcionario.endereco.rua); printf("Nome do funcionario: %s", funcionario.nome); printf("Rua do funcionario: %s", funcionario.endereco.rua); system("pause"); } Lembrando que só fiz um exemplo, você tem que terminar de fazer mas segue o mesmo padrão! Você declara a estrutura dentro da main dando um nome a ela, lembrando que se for mais de um funcionário você pode colocar [x] e no lugar do "x" escrever a quantidade como um vetor. : ) ai pra utilizar nos printfs, scanfs e até dentro dos fors ou whiles é só usar o nome que você deu e um "." e o que você quiser atribuir (nome,rua,numero) ! Caso for 2 estruturas deve-se colocar o nome dado na main "." o nome dado na estrutura que você declarou a outra "." o nome da outra.. Entendeu?
  8. Hm... Atualizou a bios nesse período? Eu trabalho com manutenção e já passei uns bons perreguens com bios que não resetam nem ferrando
  9. Show! Olha, recomendo então up na placa de vídeo que ja vai ajudar! A questão da ram você resolve com qualquer boost de games (Recomendo o da Razer) e esse cooler ai é perigoso dar pau em, pensa em trocar
  10. Belê, mas a dificulta está na hora de inserir os dados?
  11. Hmm, entendi... Olha pode ser que a placa de vídeo esteja entrando em conflito com a placa-mãe, seja por drivers com erro ou incompatibilidade. Funcionava antes?
  12. Essa é nova, mas tenta olha na bios do pc alguma configuração relacionada a isso!
  13. Slvv, olha depende dos seus objetivos futuros... Jogos? Trabalho? Edição de vídeo?Estudos?
  14. Hm.... Já formatou ele?
  15. Slv bro, olha do jeito que você falou parece que a placa-mãe ferrou... Pode ter sido algum curto
  16. Olá meus queridos, desenvolvi este jogo em C como um trabalho para faculdade de Sistemas de Informação e gostaria de opiniões e críticas... Lembrando que foi meu primeiro contato com programação e o jogo realmente devia rodar no "terminal", só jogar no compilador e executar /* |-----------------------------------------------------------------------------| | ALUNOS | | Higor de Deus Matos - 6372 | | | |-----------------------------------------------------------------------------| | PROFESSORA | | Rachel dos Reis | | UNIVERSIDADE FEDERAL DE VIÇOSA | | CAMPOS RIO PARANAIBA | |-----------------------------------------------------------------------------| */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <time.h> #include <windows.h> //CASO LINUX, REMOVER ESSA BIBLIOTECA E TAMBÉM AS LINHAS DE 1317 ATÉ A 1322 PARA FUNCIONAR //-------------------------------------------------------------------------- Armazenamento do Jogo ---------------------------------------------------------------------------------------------- typedef struct rotulo_campominado{ char **camp_pad; // Campo que é apresentado para o jogador char **camp_padinvi; // Campo que recebe as bombas aleatroriamente char opcao; // Variável de seleção nos menus char dicas; // Variável que armazena as dicas para jogatina char nome[30]; // Nome para recordes int lin; // Variável que indica o numero de linhas int col; // Variável que indica o numero de colunas int lin_s; // Variável que indica a linha selecionada int col_s; // Variável que indica a coluna selecionada int corder_lin; // Variável que indica as coordenadas int corder_col; // Variável que indica as coordenadas int bandeiras; // Variável que indica quantas bandeiras foram colocadas int quantidade_bombas; // Variável para quantidade de bombas int quantidade_ganhou; // Variável para verificar se o usuário ganhou int cont; // Contador para gerar as linhas int cont2; // Contador para gerar as colunas int bombas; // Numero de bombas int pers_ou_pad; // Criar os recoredes personalizados ou padrão float tempo; // Melhores tempos no personalizado clock_t cronometro; // Marcar o tempo jogado }Campominado; typedef struct rotulo_recordes{ float tempo; // Guardar os tempos char nome[30]; // Guardar os nomes }Recordes; //----------------------------------------------------------------------- Fim Armazenamento do Jogo ---------------------------------------------------------------------------------------------- // ------------------------------------------------------------ Declaração das funções para utilizar em todo escopo ----------------------------------------------------------------------- void menu(Campominado*s); // MENU PRINCIPAL PARA ESCOLHA void progresso_jogatina(Campominado*s); // EXIBIÇÃO DO PROGRESSO DO JOGO, DICAS, BANDEIRAS COLOCADAS, ESPAÇOS ABERTOS void bomba(Campominado*s); // GERAÇÃO DAS BOMBAS EM LOCAIS ALEATÓRIOS void apres_camp(Campominado*s); // APRESENTAÇÃO DO CAMPO PADRÃO PARA INÍCIO void game_over(Campominado*s); // ABERTURA DOS ESPAÇOS SEM BOMBA E APRESENTAÇÃO DO GAME OVER int abr_espaco(Campominado*s); // SELEÇÃO DO CAMPO PARA ABERTURA void colocar_bandeira(Campominado*s); // SELEÇÃO DO CAMPO PARA COLOCAR BANDEIRA void abrir_ou_bandeira(Campominado*s); // MENU DE ESCOLHA PARA ABRIR OU COLOCAR BANDEIRA void preenche(Campominado*s); // PREENCHE OS CAMPOS COM # SIMBOLIZANDO FECHADO void novojogo(Campominado*s); // INICIA O NOVO JOGO COM O CAMPO PADRÃO 9X9 10 BOMBAS void verif_ganhou(Campominado*s); // VERIFICA SE O JOGADOR GANHOU OU SE ELE EXPLODIU UMA BOMBA void apresen_arte_campominado(Campominado*s); // APRESENTA A ARTE "CAMPO MINADO" COM OS COMANDOS PUTS void apresen_arte_you_win(Campominado*s); // APRESENTA A ARTE "VOCÊ VENCEU" COM OS COMANDOS PUTS void apresen_arte_game_over(Campominado*s); // APRESENTA A ARTE "VOCÊ PERDEU" COM OS COMANDOS PUTS void comojogar(Campominado*s); // TUTORIAL DE COMO JOGAR void apresen_dicas(Campominado*s); // APRESENTAR DICAS DE QUANTAS BOMBAS EXISTEM NOS QUADRADOS ADJACENTE void bandeiras_colocadas(Campominado*s); // CONTAR QUANTAS BANDEIRAS FORAM COLOCADAS E LIMITAR void abrir_campos_fim_de_jogo(Campominado*s); // ABRIR OS CAMPOS QUE NÃO POSSUEM BOMBAS QUANDO DER GAME-OVER void you_win(Campominado*s); // APRESENTA VITÓRIA E SELEÇÃO DE MENU PARA SAIR OU VONTALR void digitar_coordenada(Campominado*s); // SELECIONAR A COORDENADA PARA ABRIR OU COLOCAR BANDEIRA void apresen_dicas_local(Campominado*s); // JOGADOR ABRIR UM ESPAÇO NO QUAL ELE COLOCOU UMA BANDEIRA MAS NÃO HAVIA UMA LÁ void personalizar_jogo(Campominado*s); // JOGADOR ESCOLHE QUANTAS BOMBAS E TAMANHO DO CAMPO void criar_campo(Campominado*s); // CRIAR CAMPO COM O TAMANHO DESEJADO void zerar_campo(Campominado*s); // ZERAR TODO O CAMPO PARA JOGAR NOVAMENTE void recordes(Campominado*s); // MONTA RECORDES DOS JOGOS void apres_arte_recordes(Campominado*s); // APRESENTA A ARTE "RECORDES" COM OS COMANDOS PUTS void abr_espaco_band(Campominado*s); // VERIFICA SE É GAME OVER OU SE ONDE FOI COLOCADO A BANDEIRA HAVIA UM NUMERO // ------------------------------------------------------------ Fim Declaração das funções para utilizar em todo escopo ----------------------------------------------------------------------- // --------------------------------------------------------------------------- Funções Utilizadas --------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------- ARTES Recordes ------------------------------------------------------------------------------------------------------ void apres_arte_campominado2 (Campominado*s) { fflush(stdin); printf(" c=====e\n"); printf(" H\n"); printf(" ____________ _,,_H__\n"); printf(" (__((__((___() //| |\n"); printf(" (__((__((___()()_____________________________________// |!!!!!|\n"); printf(" (__((__((___()()()------------------------------------' |_____|\n"); } void apres_arte_recordes (Campominado*s) { printf("\n\n"); puts(" ----------------------------------------------------"); puts(" | .---. .--. .--. .--. .---. .---. .--. .--. |"); puts(" | : .; :: .--': .--': ,. :: .; :: . :: .--': .--' |"); puts(" | : .': `; : : : :: :: .': :: :: `; `. `. |"); puts(" | : :.`.: :__ : :__ : :; :: :.`.: :; :: :__ _`, : |"); puts(" | :_;:_;`.__.'`.__.'`.__.':_;:_;:___.'`.__.'`.__.' |"); puts(" ----------------------------------------------------"); printf("\n\n"); printf(" ___________ \n"); printf(" '._==_==_=_.' \n"); printf(" .-\\: /-. \n"); printf(" | (|:. |) | \n"); printf(" '-|:. |-' \n"); printf(" \\::. / \n"); printf(" '::. .' \n"); printf(" ) ( \n"); printf(" _.' '._ \n"); printf(" '-------' \n\n"); fflush(stdin); } //--------------------------------------------------------------------------------- FIM ARTES Recordes ------------------------------------------------------------------------------------------------------ //--------------------------------------------------------------------------------- Recordes ------------------------------------------------------------------------------------------------------ void recordes (Campominado*s) { fflush(stdin); Recordes MELHORES[6]; // Definir o typdef int i = 0; s->tempo = (float)s->cronometro/CLOCKS_PER_SEC; FILE* arquivo; for(i=0;i<6;i++) { MELHORES[i].tempo = 99999/CLOCKS_PER_SEC; } if(s->pers_ou_pad == 1) // JOGO PERSONALIZADO { arquivo = fopen("recordes_personalizados.txt","r"); }else if(s->pers_ou_pad == 0) // JOGO PADRÃO { arquivo = fopen("recordes_padrao.txt","r"); } for(i=0;i<5;i++) { fflush(stdin); fscanf(arquivo,"%f %s\n",&MELHORES[i].tempo,MELHORES[i].nome); //RECEBER OS DADOS QUE ESTAVAM GRAVADOS NO ARQUIVOS } fclose(arquivo); strcpy(MELHORES[5].nome,s->nome); MELHORES[5].tempo = s->tempo; int j, tam = 6; int min; Recordes swap; for (i = 0; i < (tam-1); i++) { min = i; for (j = (i+1); j < tam; j++) { if(MELHORES[j].tempo < MELHORES[min].tempo) { min = j; } } if (MELHORES[i].tempo != MELHORES[min].tempo) { swap = MELHORES[i]; MELHORES[i] = MELHORES[min]; MELHORES[min] = swap; } } for(i=0;i<6;i++) { if(MELHORES[i].tempo == 0) { (MELHORES[i].tempo = (float)99999/CLOCKS_PER_SEC); // EVITAR BUG COM METODO DE ORGANIZAÇÃO } } if(s->pers_ou_pad == 1) { arquivo = fopen("recordes_personalizados.txt","w"); }else { arquivo = fopen("recordes_padrao.txt","w"); } if(arquivo == NULL) { printf("\n\tErro ao criar os recordes\n"); system("pause"); exit(1); }else { system ("cls || clear"); apres_arte_recordes(s); printf("\n\t\t\t\t\t\tArquivo de recordes criado com sucesso! Verifique a pasta raiz.\n\n"); } for(i=0;i<5;i++) { if(MELHORES[i].tempo != 99999/CLOCKS_PER_SEC && MELHORES[i].tempo != 0) { fprintf(arquivo,"%f %s\n",MELHORES[i].tempo, MELHORES[i].nome); } } fclose(arquivo); printf("\n S - Sair \n V - Voltar ao menu principal \n"); scanf ("%c",&s->opcao); if(s->opcao == 's' || s->opcao == 'v') // Caso o jogador digite a letra em minusculo { s->opcao = s->opcao-32; } switch (s->opcao) // Depois do Você ganhou o jogador tem a opção de voltar pro menu ou sair do jogo { case 'S': system("cls || clear"); exit (1); break; case 'V': system("cls || clear"); menu(s); break; default: system("cls || clear"); recordes(s); break; } fflush(stdin); strcpy(MELHORES[5].nome," "); //"LIMPAR" VARIAVEL UTILIZADA s->cronometro = 99999/CLOCKS_PER_SEC; //ZERA O CRONOMETRO menu(s); } //------------------------------------------------------------------------- Fim Recordes --------------------------------------------------------------------------------------------- //------------------------------------------------------------------------- Criar campo ------------------------------------------------------------------------------------------------ void criar_campo(Campominado*s) { fflush(stdin); s->camp_pad = (char**) malloc (s->lin * sizeof(char*)); s->camp_padinvi = (char**) malloc (s->lin * sizeof(char*)); if(s->camp_pad == NULL) { printf("\n Impossível alocar na memória, coloque um número menor"); exit (1); } if(s->camp_padinvi == NULL) { printf("\n Impossível alocar na memória, coloque um número menor"); exit (1); } for(s->cont=0;s->cont<s->lin;s->cont++) { s->camp_pad[s->cont] = (char*) malloc (s->col*sizeof(char)); if(s->camp_pad == NULL) { printf("\n Impossível alocar na memória, coloque um número menor"); exit (1); } s->camp_padinvi[s->cont] = (char*) malloc (s->col*sizeof(char)); if(s->camp_padinvi == NULL) { printf("\n Impossível alocar na memória, coloque um número menor"); exit (1); } } fflush(stdin); } //------------------------------------------------------------------------- Fim Criar campo ----------------------------------------------------------------------------------------- //------------------------------------------------------------------------- Zerar campo ----------------------------------------------------------------------------------------- void zerar_campo(Campominado*s) { fflush(stdin); for(s->cont=0;s->cont<s->lin;s->cont++) { for(s->cont2=0;s->cont2<s->col;s->cont2++) { s->camp_padinvi[s->cont][s->cont2] = ' '; s->camp_pad[s->cont][s->cont2] = ' '; } } fflush(stdin); } //------------------------------------------------------------------------- Fim Zerar campo ----------------------------------------------------------------------------------------- void personalizar_jogo(Campominado*s) { fflush(stdin); printf ("\n\n====================================================================== Personalização ====================================================================================== \n "); printf ("\n\n Número de LINHAS do campo: "); scanf("%d",&s->lin); if(s->lin == 0 ) { system ("cls || clear"); printf ("\n\n Número de linhas não pode ser igual a 0, tente novamente!\n\n"); personalizar_jogo(s); } printf ("\n\n Número de COLUNAS do campo: "); scanf("%d",&s->col); if(s->col == 0) { system ("cls || clear"); printf ("\n\n Número de colunas não poder ser igual a 0, tente novamente!\n\n"); personalizar_jogo(s); } printf ("\n\n Quantidade de bombas: "); scanf("%d",&s->quantidade_bombas); fflush(stdin); if(s->quantidade_bombas > ((s->lin) * (s->col))) { system ("cls || clear"); printf ("\n\n Quantidade de bombas maior do que tamanho do campo ou opção inválida, tente novamente!\n\n"); personalizar_jogo(s); } system ("cls || clear"); novojogo(s); fflush(stdin); } //------------------------------------------------------------------------- Fim Personalizar Jogo ----------------------------------------------------------------------------------------- //------------------------------------------------------------------------- Apresentar dicas depois de abrir bandeira sem bomba ----------------------------------------------------------------------------------------- void apresen_dicas_local(Campominado*s) { fflush(stdin); s->dicas = '0'; if(((s->lin_s-1) >= 0) && ((s->col_s-1) >= 0) && (s->camp_padinvi[s->lin_s-1][s->col_s-1] == '*' || s->camp_padinvi[s->lin_s-1][s->col_s-1] == 'B' )) { s->dicas++; } if(((s->lin_s-1) >= 0) && ((s->col_s) >= 0) && (s->camp_padinvi[s->lin_s-1][s->col_s] == '*'|| s->camp_padinvi[s->lin_s-1][s->col_s] == 'B')) { s->dicas++; } if(((s->col_s+1) < s->col) && ((s->lin_s-1) >= 0) && (s->camp_padinvi[s->lin_s-1][s->col_s+1] == '*'|| s->camp_padinvi[s->lin_s-1][s->col_s+1] == 'B')) { s->dicas++; } if(((s->col_s-1) < s->col) && ((s->lin_s) < s->lin) && (s->camp_padinvi[s->lin_s][s->col_s-1] == '*'|| s->camp_padinvi[s->lin_s][s->col_s-1] == 'B')) { s->dicas++; } if(((s->col_s+1) < s->col) && (s->camp_padinvi[s->lin_s][s->col_s+1] == '*'|| s->camp_padinvi[s->lin_s][s->col_s+1] == 'B')) { s->dicas++; } if(((s->lin_s+1) < s->lin) && ((s->col_s-1) >= 0) && (s->camp_padinvi[s->lin_s+1][s->col_s-1] == '*'|| s->camp_padinvi[s->lin_s+1][s->col_s-1] == 'B')) { s->dicas++; } if( ((s->lin_s+1) < s->lin)&& (s->camp_padinvi[s->lin_s+1][s->col_s] == '*'|| s->camp_padinvi[s->lin_s+1][s->col_s] == 'B')) { s->dicas++; } if(((s->col_s+1) < s->col)&& ((s->lin_s+1) < s->lin) && (s->camp_padinvi[s->lin_s+1][s->col_s+1] == '*'|| s->camp_padinvi[s->lin_s+1][s->col_s+1] == 'B')) { s->dicas++; } if (s->dicas == '0') { s->dicas = ' '; } s->camp_pad[s->lin_s][s->col_s] = s->dicas; s->camp_padinvi[s->lin_s][s->col_s] = s->dicas; fflush(stdin); } //------------------------------------------------------------------------- FIM Apresentar dicas depois de abrir bandeira sem bomba ----------------------------------------------------------------------------------------- //---------------------------------------------------------------------------- Selecionar Coordenada ------------------------------------------------------------------------------------------------------------------ void digitar_coordenada(Campominado*s) { fflush(stdin); printf("\n LINHA desejada para abrir ou colocar bandeira: "); scanf ("%d", &s->lin_s); s->lin_s--; fflush(stdin); if(s->lin_s > (s->lin-1) || s->lin_s < 0) // Evitar que o usuário selecione um espaço inexistente { printf ("\n\nDigite uma coordenada válida\n\n"); digitar_coordenada(s); } printf("\n COLUNA desejada para abrir ou colocar bandeira: "); scanf ("%d", &s->col_s); s->col_s--; fflush(stdin); if( s->col_s > (s->col-1) || s->col_s < 0 ) // Evitar que o usuário selecione um espaço inexistente { printf ("\n\nDigite uma coordenada válida\n\n"); digitar_coordenada(s); } abrir_ou_bandeira(s); fflush(stdin); } //---------------------------------------------------------------------------- Fim Selecionar Coordenada ----------------------------------------------------------------------------------------- // --------------------------------------------------------------------------- Abrir todos os campos no game-over ----------------------------------------------------------------------------------- void abrir_campos_fim_de_jogo(Campominado*s) { fflush(stdin); for(s->cont=0;s->cont<s->lin;s->cont++) { for(s->cont2=0;s->cont2<s->col;s->cont2++) { s->camp_pad[s->cont][s->cont2] = s->camp_padinvi[s->cont][s->cont2]; } } fflush(stdin); } // ---------------------------------------------------------------------- Fim Abrir todos os campos no game-over ------------------------------------------------------------------------------------ // -------------------------------------------------------------------------------- Apresentar Dicas ------------------------------------------------------------------------------------ void apresen_dicas(Campominado*s) { fflush(stdin); for(s->cont=0;s->cont<s->lin;s->cont++) { for(s->cont2=0;s->cont2<s->col;s->cont2++) { if(s->camp_padinvi[s->cont][s->cont2] != '*') { s->camp_padinvi[s->cont][s->cont2] = '0'; } } } for(s->cont=0;s->cont < s->lin;s->cont++) { for(s->cont2=0;s->cont2 < s->col;s->cont2++) { if(s->camp_padinvi[s->cont][s->cont2] == '*') { if(((s->cont-1) >= 0) && ((s->cont2-1) >= 0) && (s->camp_padinvi[s->cont-1][s->cont2-1] != '*')) { s->camp_padinvi[s->cont-1][s->cont2-1]++; } if(((s->cont-1) >= 0) && ((s->cont2) >= 0) && (s->camp_padinvi[s->cont-1][s->cont2] != '*')) { s->camp_padinvi[s->cont-1][s->cont2]++; } if(((s->cont2+1) < s->col)&& ((s->cont-1) >= 0) && (s->camp_padinvi[s->cont-1][s->cont2+1] != '*')) { s->camp_padinvi[s->cont-1][s->cont2+1]++; } if(((s->cont2-1) < s->col)&& ((s->cont) < s->lin) && (s->camp_padinvi[s->cont][s->cont2-1] != '*')) { s->camp_padinvi[s->cont][s->cont2-1]++; } if(((s->cont2+1) < s->col)&& (s->camp_padinvi[s->cont][s->cont2+1] != '*')) { s->camp_padinvi[s->cont][s->cont2+1]++; } if(((s->cont+1) < s->lin)&& ((s->cont2-1) >= 0) && (s->camp_padinvi[s->cont+1][s->cont2-1] != '*')) { s->camp_padinvi[s->cont+1][s->cont2-1]++; } if( ((s->cont+1) < s->lin) && (s->camp_padinvi[s->cont+1][s->cont2] != '*')) { s->camp_padinvi[s->cont+1][s->cont2]++; } if(((s->cont2+1) < s->col)&& ((s->cont+1) < s->lin)&& (s->camp_padinvi[s->cont+1][s->cont2+1] != '*')) { s->camp_padinvi[s->cont+1][s->cont2+1]++; } } } } for(s->cont=0;s->cont<s->lin;s->cont++) { for(s->cont2=0;s->cont2<s->col;s->cont2++) { if(s->camp_padinvi[s->cont][s->cont2] == '0' ) { s->camp_padinvi[s->cont][s->cont2] = ' '; } } } fflush(stdin); } // ------------------------------------------------------------------------ Fim Apresentar Dicas ----------------------------------------------------------------------------------------- // ------------------------------------------------------------------------ Apresentar arte campo minado ------------------------------------------------------------------------------------ void apresen_arte_campominado(Campominado*s) { fflush(stdin); printf("\n\n"); puts(" ---------------------------------------------------------------------------------"); puts(" | .--. .-..-. _ .-. |"); puts(" | : .--' : `' ::_; : : |"); puts(" | : : .--. ,-.,-.,-..---. .--. : .. :.-.,-.,-. .--. .-' : .--. |"); puts(" | : :__ ' .; ; : ,. ,. :: .; `' .; : : :; :: :: ,. :' .; ; ' .; :' .; : |"); puts(" | `.__.'`.__,_;:_;:_;:_;: ._.'`.__.' :_;:_;:_;:_;:_;`.__,_;`.__.'`.__.' |"); puts(" | : : |"); puts(" | :_; |"); puts(" ---------------------------------------------------------------------------------"); fflush(stdin); } // ------------------------------------------------------------------- Fim apresentar arte campo minado ------------------------------------------------------------------------------------ // ------------------------------------------------------------------------ Apresentar arte you win ------------------------------------------------------------------------------------ void apresen_arte_you_win(Campominado*s) { fflush(stdin); printf("\n\n"); puts(""); puts(" |-----------------------------------------------------------------------------|"); puts(" | .--. .--. ^ .----. ,-. |"); puts(" | : : : : ^ ^ : .--' : : |"); puts(" | : :._.: : .--. .---..---. : : __ .--. ,-.,-.: :,-. .--. _ _ |"); puts(" | : :' .; :: :: : :-' : :__:: ' .; ; : ,. :: : :' .; :' '.; ' |"); puts(" | :..__..: `.__.'`.__,`.__; `.____.' `.__,_;:_;:_;:_;:_;`.__.'`.___.' |"); puts(" | |"); puts(" | |"); puts(" |-----------------------------------------------------------------------------|"); printf(" ___________ \n"); printf(" '._==_==_=_.' \n"); printf(" .-\\: /-. \n"); printf(" | (|:. |) | \n"); printf(" '-|:. |-' \n"); printf(" \\::. / \n"); printf(" '::. .' \n"); printf(" ) ( \n"); printf(" _.' '._ \n"); printf(" '-------' \n\n"); fflush(stdin); } // ------------------------------------------------------------------------ Fim Apresentar arte you win ------------------------------------------------------------------------------------ // ------------------------------------------------------------------- Apresentar arte gaem over ------------------------------------------------------------------------------------ void apresen_arte_game_over(Campominado*s) { fflush(stdin); printf("\n\n"); puts(""); puts(" |-----------------------------------------------------------------------------|"); puts(" | .--. .--. ^ ,----. .-. |"); puts(" | : : : : ^ ^ : : : : |"); puts(" | : :._.: : .--. .---..---. : ,__:.---.,----, .-' :.---. _ _ |"); puts(" | : :' .; :: ::': :-' : : : :-': ;-; ' .; :: :-''' .; ' |"); puts(" | :..__..: `.__.'`.__,`.__; :__: `.__;:_: `.__.'`.__; `.___.' |"); puts(" | |"); puts(" | |"); puts(" |-----------------------------------------------------------------------------|"); printf(" _______________ \n"); printf(" / \\ \n"); printf(" / \\ \n"); printf(" // \\/\\ \n"); printf(" \\| XXXX XXXX | / \n"); printf(" | XXXX XXXX |/ \n"); printf(" | XXX XXX | \n"); printf(" | | \n"); printf(" \\__ XXX __/ \n"); printf(" |\\ XXX /| \n"); printf(" | | | | \n"); printf(" | I I I I I I I | \n"); printf(" | I I I I I I | \n"); printf(" \\_ _/ \n"); printf(" \\_ _/ \n"); printf(" \\_______/ \n"); fflush(stdin); } // ------------------------------------------------------------------- Fim apresentar arte gaeme over ------------------------------------------------------------------------------------ void comojogar(Campominado*s) { fflush(stdin); printf ("\n\n======================================================================== Como Jogar =================================================================================== \n "); printf ("\n Selecione o que for desejado conforme o menu e siga a legenda:"); printf("\n\n\t# Quadrado fechado"); printf("\n\n\tB Bandeira com bomba encontrada"); printf("\n\n\tX Bandeira sem bomba encontrada (Apenas em game over)"); printf("\n\n\t* Bomba"); printf("\n\n\t' ' Quadrado aberto sem bomba adjacente"); printf ("\n\n \t\t Ao selecionar um campo em que não tenha bomba mas os espaços adjacentes tenham, será mostrado o número de bombas envolta com dica."); printf ("\n\n \t\t\t Não se preocupe em digitar as letras em maiusculo, o programa aceita de qualquer modo :D !"); printf ("\n\n=========================================================================================================================================================================== \n "); printf("\n\n S - Sair \n V - Voltar ao menu principal \n"); scanf ("%c",&s->opcao); if(s->opcao == 's' || s->opcao == 'v') // Caso o jogador digite a letra em minusculo { s->opcao = s->opcao-32; } switch (s->opcao) // Depois do Você ganhou o jogador tem a opção de voltar pro menu ou sair do jogo { case 'S': system("cls || clear"); exit (1); break; case 'V': system("cls || clear"); menu(s); break; default: system("cls || clear"); printf ("\n\nDigite uma opção válida!\n\n"); comojogar(s); break; } fflush(stdin); } // ------------------------------------------------------------------- Quantidade de Bandeiras Colocadas ------------------------------------------------------------------------------------ void bandeiras_colocadas(Campominado*s) { fflush(stdin); s->bandeiras = 0; //EVITAR QUE CONTE A MESMA 2 VEZES for(s->cont=0;s->cont<s->lin;s->cont++) { for(s->cont2=0;s->cont2<s->col;s->cont2++) { if(s->camp_pad[s->cont][s->cont2] == 'B') { s->bandeiras++; } } } } // ------------------------------------------------------------------- Fim Quantidade de Bandeiras Colocadas ------------------------------------------------------------------------------------ // ------------------------------------------------------------------- Apresentar que o jogador ganhou ------------------------------------------------------------------------------------ void you_win(Campominado*s) { fflush(stdin); abrir_campos_fim_de_jogo(s); progresso_jogatina(s); s->cronometro = clock() - s->cronometro; printf("\n"); apresen_arte_you_win(s); printf("\n\n"); printf("\n\n Tempo de jogo: %f segundos, vá até a opção RECORDES no menu e veja se você está entre os melhores :D \n", (float)s->cronometro/CLOCKS_PER_SEC); printf("\n Digite seu nome: "); fflush(stdin); gets(s->nome); for(s->cont = 0; s->cont < s->lin; s->cont++) { free(s->camp_pad[s->cont]); free(s->camp_padinvi[s->cont]); } free(s->camp_pad); recordes(s); free(s->camp_padinvi); fflush(stdin); } // ------------------------------------------------------------------- Fim Apresentar que o jogador ganhou ------------------------------------------------------------------------------------ // -------------------------------------------------------------- Verificar se o jogador ganhou ou não --------------------------------------------------------------------------------- void verif_ganhou(Campominado*s) { fflush(stdin); s->quantidade_ganhou = ((s->lin * s->col) - s->bombas); for(s->cont=0;s->cont<s->lin;s->cont++) { for(s->cont2=0;s->cont2<s->col;s->cont2++) { if(s->camp_pad[s->cont][s->cont2] == '1') { s->quantidade_ganhou--; } if(s->camp_pad[s->cont][s->cont2] == '2') { s->quantidade_ganhou--; } if(s->camp_pad[s->cont][s->cont2] == '3') { s->quantidade_ganhou--; } if(s->camp_pad[s->cont][s->cont2] == '4') { s->quantidade_ganhou--; } if(s->camp_pad[s->cont][s->cont2] == '5') { s->quantidade_ganhou--; } if(s->camp_pad[s->cont][s->cont2] == '6') { s->quantidade_ganhou--; } if(s->camp_pad[s->cont][s->cont2] == '7') { s->quantidade_ganhou--; } if(s->camp_pad[s->cont][s->cont2] == '8') { s->quantidade_ganhou--; } if(s->camp_pad[s->cont][s->cont2] == ' ') { s->quantidade_ganhou--; } if(s->camp_padinvi[s->cont][s->cont2] == 'X') // ESPAÇO MARCADO COM BANDEIRA MAS SEM BOMBA, IMPOSSÍVEL GANHAR SEM ABRIR { s->quantidade_ganhou++; } } } if(s->quantidade_ganhou == 0) { you_win(s); }else { progresso_jogatina(s); digitar_coordenada(s); } fflush(stdin); } // -------------------------------------------------------------- Fim Verificar se o jogador ganhou ou não --------------------------------------------------------------------------------- // ------------------------------------------------------------------- Apresentar progresso de jogatina ---------------------------------------------------------------------------------- void progresso_jogatina(Campominado*s) { fflush(stdin); system ("clear || cls"); fflush(stdin); s->corder_lin = 0; printf("\n----------------------------------------------------------------------- Campo %dX%d - %d BOMBAS --------------------------------------------------------------------------------- \n \n",s->lin,s->col,s->bombas); printf("\n\n"); printf(" "); // Coordenadas superiores das colunas para deixar o campo melhor visualmente for(s->corder_col=0;s->corder_col<s->col;s->corder_col++) { if(s->corder_col<9) { printf("%d ", s->corder_col+1); }else if(s->corder_col<99) { printf(" %d ", s->corder_col+1); }else { printf("%d ", s->corder_col+1); } } printf("\n\n"); for(s->cont=0;s->cont<s->lin;s->cont++) { if(s->cont<9) { printf ("\t %d ", s->cont+1); // Coordenadas da esquerda das linhas para deixar o campo melhor visualmente printf (" |"); }else if (s->cont<99) { printf ("\t %d ", s->cont+1); // Coordenadas da esquerda das linhas para deixar o campo melhor visualmente printf (" |"); }else { printf ("\t %d ", s->cont+1); // Coordenadas da esquerda das linhas para deixar o campo melhor visualmente printf (" |"); } for(s->cont2=0;s->cont2<s->col;s->cont2++) { printf(" %c ",s->camp_pad[s->cont][s->cont2]); printf (" |"); } if(s->cont<=9) { printf (" %d ", s->cont+1); // Coordenadas da direita das linhas para deixar o campo melhor visualmente }else if(s->cont<=99) { printf (" %d ", s->cont+1); // Coordenadas da direita das linhas para deixar o campo melhor visualmente }else { printf (" %d ", s->cont+1); // Coordenadas da direita das linhas para deixar o campo melhor visualmente } printf ("\n\n"); } printf(" "); // Coordenadas inferiores das colunas para deixar o campo melhor visualmente for(s->corder_col=0;s->corder_col<s->col;s->corder_col++) { if(s->corder_col<=9) { printf("%d ", s->corder_col+1); }else if(s->corder_col<=99) { printf("%d ", s->corder_col+1); }else { printf("%d ", s->corder_col+1); } } bandeiras_colocadas(s); printf ("\n\n\n\t\t\t\t\t\t\t Quantidade de bandeiras colocadas: %d/%d\n", s->bandeiras,s->bombas); fflush(stdin); } //------------------------------------------------------------------- FIM DA APRESENTAÇÃO DO STATUS DA JOGATINA ----------------------------------------------------------------------------- //------------------------------------------------------------------------- Gerar bombas aleatórias ------------------------------------------------------------------------------------- void bomba(Campominado *s) { fflush(stdin); srand(time(NULL)); s->bombas = s->quantidade_bombas; for (s->quantidade_bombas;s->quantidade_bombas>0;s->quantidade_bombas--) { s->cont = rand() % s->lin; s->cont2 = rand() % s->col; if(s->camp_padinvi[s->cont][s->cont2] != '*') // Evitar que ele coloque uma bomba onde já foi colocada - Chance baixa mas tem! { s->camp_padinvi[s->cont][s->cont2] = '*'; }else { s->quantidade_bombas++; } } s->bandeiras = 0; // Zerar quantidade de bandeiras para iniciar o jogo! fflush(stdin); } //--------------------------------------------------------------------------- Fim Gerar bombas aleatórias -------------------------------------------------------------------------------- //----------------------------------------------------------------------------- Apresentar Campo padrão ------------------------------------------------------------------------------------------ void apres_camp(Campominado *s) { fflush(stdin); s->corder_lin = 0; printf("\n----------------------------------------------------------------------- Campo %dX%d - %d BOMBAS --------------------------------------------------------------------------------- \n \n",s->lin,s->col,s->bombas); printf("\n\n"); printf(" "); // Coordenadas superiores das colunas para deixar o campo melhor visualmente for(s->corder_col=0;s->corder_col<s->col;s->corder_col++) { if(s->corder_col<9) { printf("%d ", s->corder_col+1); }else if(s->corder_col<99) { printf(" %d ", s->corder_col+1); }else { printf("%d ", s->corder_col+1); } } printf("\n\n"); for(s->cont=0;s->cont<s->lin;s->cont++) { if(s->cont<9) { printf ("\t %d ", s->cont+1); // Coordenadas da esquerda das linhas para deixar o campo melhor visualmente printf (" |"); }else if (s->cont<99) { printf ("\t %d ", s->cont+1); // Coordenadas da esquerda das linhas para deixar o campo melhor visualmente printf (" |"); }else { printf ("\t %d ", s->cont+1); // Coordenadas da esquerda das linhas para deixar o campo melhor visualmente printf (" |"); } for(s->cont2=0;s->cont2<s->col;s->cont2++) { printf(" %c ",s->camp_pad[s->cont][s->cont2]); printf (" |"); } if(s->cont<=9) { printf (" %d ", s->cont+1); // Coordenadas da direita das linhas para deixar o campo melhor visualmente }else if(s->cont<=99) { printf (" %d ", s->cont+1); // Coordenadas da direita das linhas para deixar o campo melhor visualmente }else { printf (" %d ", s->cont+1); // Coordenadas da direita das linhas para deixar o campo melhor visualmente } printf ("\n\n"); } printf(" "); // Coordenadas inferiores das colunas para deixar o campo melhor visualmente for(s->corder_col=0;s->corder_col<s->col;s->corder_col++) { if(s->corder_col<=9) { printf("%d ", s->corder_col+1); }else if(s->corder_col<=99) { printf("%d ", s->corder_col+1); }else { printf("%d ", s->corder_col+1); } } printf ("\n\n\n\t\t\t\t\t\t\t Quantidade de bandeiras colocadas: %d/%d\n", s->bandeiras,s->bombas); fflush(stdin); } //---------------------------------------------------------------------------- Fim Apresentar Campo padão ------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------- Apresentar Game Over --------------------------------------------------------------------------------------- void game_over(Campominado *s) { fflush(stdin); system ("clear || cls"); abrir_campos_fim_de_jogo(s); // Abrir campos fechados sem bombas no campo visível, onde tiver bandeira permanece progresso_jogatina(s); apresen_arte_game_over(s); for(s->cont = 0; s->cont < s->lin; s->cont++) { free(s->camp_pad[s->cont]); free(s->camp_padinvi[s->cont]); } free(s->camp_pad); free(s->camp_padinvi); printf ("\n S - Sair \n V - Voltar ao menu principal\n"); fflush(stdin); scanf ("%c", &s->opcao); fflush(stdin); if(s->opcao == 's' || s->opcao == 'v') // Caso o jogador digite a letra em minusculo { s->opcao = s->opcao-32; } switch (s->opcao) // Depois do GAME OVER o jogador tem a opção de voltar pro menu ou sair do jogo { case 'S': system("cls || clear"); exit (1); break; case 'V': system("cls || clear"); menu(s); break; default: system("cls || clear"); game_over(s); break; } fflush(stdin); } //-------------------------------------------------------------------------------------- Fim Apresentar Game Over ----------------------------------------------------------------------------- //--------------------------------------------------------------------------------------- Abrir espaço bandeira selecionada ------------------------------------------------------------------------------------ void abr_espaco_band(Campominado*s) { if(s->lin_s >= 0 && s->lin_s < s->lin && s->col_s >= 0 && s->col_s < s->col && s->camp_padinvi[s->lin_s][s->col_s] == '*' || s->camp_padinvi[s->lin_s][s->col_s] == 'B') { game_over(s); } if(s->lin_s >= 0 && s->lin_s < s->lin && s->col_s >= 0 && s->col_s < s->col && s->camp_padinvi[s->lin_s][s->col_s] == 'X') //CAMPO SEM BOMBA MAS ANTES MARCADO COM BOMBA { apresen_dicas_local(s); } } //---------------------------------------------------------------------------------------Fim Abrir espaço bandeira selecionada ------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------ Abrir espaços - RECURSIVA ---------------------------------------------------------------------------- int abr_espaco(Campominado*s) { fflush(stdin); int i,j,lin,col; if(s->lin_s >= 0 && s->lin_s < s->lin && s->col_s >= 0 && s->col_s < s->col && s->camp_padinvi[s->lin_s][s->col_s] > 48 && s->camp_padinvi[s->lin_s][s->col_s] < 57) // entre 48 e 57 estão os numeros na tabela asci { s->camp_pad[s->lin_s][s->col_s] = s->camp_padinvi[s->lin_s][s->col_s]; return 1; } lin = s->lin_s; col = s->col_s; for(i=lin-1;i<lin+2;i++) { for(j=col-1;j<col+2;j++) { if(i >= 0 && j >= 0 && i < s->lin && j < s->col && s->camp_padinvi[i][j] == ' ' && s->camp_pad[i][j] != ' ' && s->camp_pad[i][j] == '#') { s->camp_pad[i][j] = ' '; s->lin_s = i; s->col_s = j; abr_espaco(s); } else if (i>= 0 && j >= 0 && i < s->lin && j < s->col && s->camp_padinvi[i][j] > 48 && s->camp_pad[i][j] < 57 && s->camp_pad[i][j] == '#') { s->camp_pad[i][j] = s->camp_padinvi[i][j]; s->lin_s = i; s->col_s = j; abr_espaco(s); } } } return 1; } //-------------------------------------------------------------------------------------- Fim Abrir espaço RECURSIVA ------------------------------------------------------------------- //--------------------------------------------------------------------------------- Colocar uma bandeira no local selecionado ---------------------------------------------------------------- void colocar_bandeira(Campominado*s) { fflush(stdin); if(s->bandeiras == s->bombas) { printf ("\n\n Limite de bandeiras atingido, abra um espaço que contenha uma bandeira para liberar mais!\n\n"); digitar_coordenada(s); }else { if(s->camp_pad[s->lin_s][s->col_s] == 'B') // CAMPO QUE JÁ TEM UMA BANDEIRA { printf("\n\n Campo já possui uma bandeira, selecione outro ou abra o selecionado\n\n"); digitar_coordenada(s); } if(s->camp_padinvi[s->lin_s][s->col_s] == '*' ) // Campo Fechado com bomba { s->camp_pad[s->lin_s][s->col_s] = 'B'; s->camp_padinvi[s->lin_s][s->col_s] = 'B'; // CAMPO INVISÍVEL RECEBE O REFERENTE A BANDEIRA MARCADA ONDE HÁ BOMBA progresso_jogatina(s); digitar_coordenada(s); } if(s->camp_pad[s->lin_s][s->col_s] != '#') // IMPEDIR QUE O JOGADOR COLOQUE UMA BANDEIRA EM UM ESPAÇO ABERTO { printf("\nImpossível colocar uma bandeira em um local aberto\n\t"); digitar_coordenada(s); } if((s->camp_padinvi[s->lin_s][s->col_s] != '*') && // CAMPO FECHADO SEM BOMBA (s->camp_pad[s->lin_s][s->col_s] != 'B')) { s->camp_pad[s->lin_s][s->col_s] = 'B'; s->camp_padinvi[s->lin_s][s->col_s] = 'X'; // CAMPO INVISÍVEL RECEBE X REFERENTE A BANDEIRA MARCADA ONDE NÃO HÁ BOMBA progresso_jogatina(s); digitar_coordenada(s); } } fflush(stdin); } //------------------------------------------------------------------------------- Fim Colocar uma bandeira no local selecionado ------------------------------------------------------------------------- //------------------------------------------------------------------------ Selecionar se quer abrir um espaço ou colocar uma bandeira --------------------------------------------------------------- void abrir_ou_bandeira(Campominado*s) { fflush(stdin); printf ("\n A - Abrir espaço\n B - Adicionar bandeira\n "); scanf ("%c", &s->opcao); int retorno; if(s->opcao == 'a' || s->opcao == 'b') // Caso o jogador digite a letra em minusculo { s->opcao = s->opcao-32; } if (s->opcao == 'A') // Abrir espaço { abr_espaco_band(s); retorno = abr_espaco(s); }else if (s->opcao == 'B') // Colocar bandeira { colocar_bandeira(s); }else if (s->opcao != 'A' || s->opcao != 'B') { printf ("\nDigite uma opção válida!\n"); abrir_ou_bandeira(s); }else if (s->camp_pad[s->cont][s->cont2] == ' ') // Evitar que o usuário coloque uma bandeira em um lugar aberto { printf ("Não é possível colocar uma bandeira em um campo já aberto\n"); system("cls || clear"); } if(retorno == 0) { game_over(s); }else { verif_ganhou(s); progresso_jogatina(s); digitar_coordenada(s); } fflush(stdin); } //------------------------------------------------------------------ Fim Selecionar se quer abrir um espaço ou colocar uma bandeira ------------------------------------------------------------- //---------------------------------------------------------------------------- Preenchendo campo padrão ------------------------------------------------------------------------------------------------------------ void preenche(Campominado *s) { fflush(stdin); for(s->cont=0;s->cont<s->lin;s->cont++) { for(s->cont2=0;s->cont2<s->col;s->cont2++) { s->camp_pad[s->cont][s->cont2] = '#'; } } fflush(stdin); } //------------------------------------------------------------------------ Fim do campo padrão------------------------------------------------------------------------------------------------ //----------------------------------------------------------------------- Iniciar um novo Jogo -------------------------------------------------------------------------------------------------- void novojogo(Campominado *s) { fflush(stdin); system("cls || clear"); criar_campo(s); zerar_campo(s); bomba(s); preenche(s); apresen_dicas(s); s->cronometro = clock(); // Tempo de jogo apres_camp(s); digitar_coordenada(s); fflush(stdin); } //----------------------------------------------------------------------- Fim Iniciar um novo Jogo --------------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------- Menu Principal -------------------------------------------------------------------------------------------- void menu(Campominado *s) { fflush(stdin); system("cls || clear"); apresen_arte_campominado(s); do{ printf("\n\n\t\t\t\t\t\t\t\t\t N - Novo jogo\n\n"); printf ("\n\t\t\t\t\t\t\t\t\t C - Como jogar\n\n"); printf("\n\t\t\t\t\t\t\t\t\t P - Personalizar\n\n"); printf("\n\t\t\t\t\t\t\t\t\t R - Recordes\n\n"); printf("\n\t\t\t\t\t\t\t\t\t S - Sair\n\n"); apres_arte_campominado2(s); printf("\n\n\t\t\t\t\t\t\t\t\t "); scanf("%c", &s->opcao); if(s->opcao == 's' || s->opcao == 'r' || s->opcao == 'p' || s->opcao == 'c' || s->opcao == 'n')// Caso o jogador digite a letra em minusculo { s->opcao = s->opcao-32; } switch( s->opcao ) { case 'S': system("cls || clear"); printf("Saindo do menu...\n"); exit(1); break; case 'R': system("cls || clear"); fflush(stdin); apres_arte_recordes(s); printf("\n\n\t\t\t\t\t\t\tOs recordes são gravados em arquivos na pasta raiz do jogo :)\n\n"); system("pause"); menu(s); break; case 'P': system("cls || clear"); fflush(stdin); s->pers_ou_pad = 1; personalizar_jogo(s); break; case 'C': system("cls || clear"); comojogar(s); break; case 'N': s->lin = 9; s->col = 9; s->quantidade_bombas = 10; s->pers_ou_pad = 0; //Jogo padrão novojogo (s); break; default: system("cls || clear"); printf("\nOpção inválida! Tente novamente.\n\n"); menu(s); break; } }while(s->opcao != 'S' || s->opcao != 'R' || s->opcao != 'P' || s->opcao != 'C' || s->opcao != 'N'); fflush(stdin); } //----------------------------------------------------------------------------------------- Fim Menu Principal ----------------------------------------------------------------------------------------- int main(){ system("mode con:cols=10000 lines=10000"); // TAMANHO DA TELA keybd_event ( VK_MENU, 0x38, 0, 0 ); //TELA CHEIA keybd_event ( VK_SPACE, 0x39, 0, 0 ); keybd_event(0x58,0,0,0); keybd_event ( VK_MENU, 0x38, KEYEVENTF_KEYUP, 0 ); keybd_event ( VK_SPACE, 0x39, KEYEVENTF_KEYUP, 0 ); keybd_event(0x58,0,KEYEVENTF_KEYUP,0); setlocale(LC_ALL, "Portuguese"); // Colocar o código em português Campominado NOTAMAXIMA; // Definir o typdef menu(&NOTAMAXIMA); /*Deu muito trabalho, mas ficou pronto com tudo funcionando :)... Foram incontáveis horas dedicadas a ele, mas tudo está perfeito);*/ return 0; } Campo Minado - Projeto.pdf Campo Minado - Projeto.pdf Campo Minado - Projeto.pdf

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!