Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Developed by Eduardo Luiz Oliani
- Bruno Kisathowski
- Luis Carlos ?????
- */
- #include <stdio.h>
- #include <conio2.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- #include <time.h>
- #include <windows.h>
- #include <locale.h>
- //caso for compilar no linux comente os "system" comands
- void answer_printer(char word[25],int len);//feito por Eduardo
- void word_bank(char word[25],int num);//Feito por Bruno
- void gotoxy(int x, int y){//Feito por Eduardo
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x-1,y-1});
- }
- void hint(int i,char word[100]);//Feito por Bruno
- void logo ();//Feito por Eduardo
- void cleaner_typed(char typed[1]);//Feito por Eduardp
- void fork_print (int i);//Feito por Eduardo
- int main (){//Feito por Eduardo e Luis
- setlocale(LC_ALL, "Portuguese");
- srand(time(NULL));//incia o gerador de números com base no relógio, feito por eduardo
- int finish_counter;
- int last=-1;
- int option;
- int repeated;
- int quit_game=0;
- int types;
- int chances;
- int rand_num;
- int finish;
- int hit;
- int i;
- int g=0;
- int len;
- int end;
- char game_word[25]="";
- char answer[25]="";
- char typed[1]="";
- char response;
- char already_typed[100]="";
- char wrong_letters[6]="";
- char game_hint[100]="";
- system("color 02");
- do{//menu feito por Eduardo
- fflush(stdin);
- system("cls");
- gotoxy(50,2);
- printf("Bem vindo ao ");//começo do menu ainda não pronto
- logo();
- printf("\n\tDigite a inicial do nome do item desejado para prosseguir: ");
- gotoxy(35,21);
- printf("\n\n\t(J)ogar (T)utorial (M)udar cor (C)reditos (S)air");
- gotoxy(67,21);
- scanf("%c",&typed[0]);
- typed[0]=tolower(typed[0]);
- fflush(stdin);
- switch(typed[0]){
- case 'j':
- system("cls");
- do{// feito por Eduardo
- finish_counter=0;
- cleaner_typed(wrong_letters);
- g=0;
- end=0;
- chances = 6;//numero de vidas
- rand_num = rand()%20;
- while(rand_num==last)
- rand_num = rand()%20;
- last=rand_num;
- finish=0;
- word_bank(game_word,rand_num);
- len=strlen(game_word);
- for (i=0;i<len;i++){
- answer[i]='_';
- }
- types=0;
- do{//Feito por Luis
- system("cls");
- if (chances==0){
- end++;
- printf("Você perdeu !\nA resposta era %s\n",game_word);
- Sleep(2300);
- system("cls");
- }else{
- repeated=0;
- hit=0;
- fflush(stdin);//limpa os buffers
- for(i=0;i<=len;i++){
- if(game_word[i]==answer[i]){
- finish_counter++;
- }
- }
- if(finish_counter>= len){
- end=1;
- system("cls");
- chances=7;
- fork_print(chances);
- printf("Parabéns! ");
- Sleep(2300);
- system("cls");
- }else{
- finish_counter=0;
- if (chances==1){
- printf("DICA: ");
- hint(rand_num,game_hint);
- printf("%s",game_hint);
- }
- fork_print(chances);
- printf("A palavra possui %d letras!",len);
- printf("\nLetras digitadas: ");
- for (i=0;i<strlen(wrong_letters);i++){
- printf("%c, ",wrong_letters[i]);
- }
- //for para as letras digitadas
- gotoxy(1,12);
- answer_printer(answer,len);
- printf("\n\n\nDigite uma letra: ");
- scanf("%c",&typed[0]);
- already_typed[types]=typed[0];
- typed[0]=toupper(typed[0]);
- for (i=0;i<=len;i++){
- if(typed[0]==game_word[i]){
- answer[i]=typed[0];
- hit++;
- }
- }
- system("cls");
- if (hit==0){
- for (i=0;i<types;i++){
- if (typed[0]==already_typed[i]){
- repeated++;
- }
- }
- if(repeated==1){
- printf("Letra repetida, tente outra letra!");
- }else
- chances--;
- wrong_letters[g]=typed[0];
- g++;
- }
- }
- }
- }while(end==0);
- fflush(stdin);
- printf("Deseja jogar novamente (s/n)?\n");
- scanf("%c",&response);
- system("cls");
- response=tolower(response);
- if (response=='s'){
- finish=1;
- printf("Recomeçando o jogo!");
- Sleep(2300);
- fflush(stdin);
- }
- else{
- finish=0;
- printf("Voltando ao menu principal...");
- Sleep(2300);
- }
- }while(finish==1);//vollta ao loop do menu
- break;
- case 't':
- system("cls");
- gotoxy(45,2);
- printf("Bem-vindo ao tutorial.\n\n");
- printf("\tO jogo da forca consiste em você tentar adivinhar a palavra da rodada.\n\tVocê simplismente ");
- printf("precisa tentar digitar uma letra que completa a palavra, se esta letra estiver contida na \n\tresposta");
- printf("da rodada você verá que ela foi substituida onde se encontra o preogresso do jogo, ou seja, nos espaços\n");
- printf("tracejados. Quando você descobrir a palavra completamente automaticamente você ganhou o jogo.\n\n Caso erre, ");
- printf("6 vezes, voce fracassará e o jogo terminará sem mais chances e a palavra da rodada será exibida na tela.\n\n");
- printf("Tentar a mesma letra errada multiplas vezes implicará em multiplas perdas de chances.\n\n");
- system("pause");
- break;
- case 'c':
- system("cls");
- printf("Jogo desenvolvido por: Eduardo Luiz Oliani,\n Bruno Kisathowski,\n Luis Carlos ????? \n\n");
- system("pause");
- fflush(stdin);
- break;
- case 'm':
- system("cls");
- gotoxy(45,2);
- printf("Alteração de cor!\n\n");
- gotoxy(21,6);
- printf("Obs: a primeira cor corresponde ao fundo e a segunda às letras.");
- gotoxy(21,8);
- printf("Cores disponíveis:\n\n\t\t\t(1)Preto com azul\n\t\t\t(2)Preto com Verde\n\t\t\t(3)Preto com vermelho\n\t\t\t(4)Preto com amarelo\n\t\t\t(5)Preto com Branco\n\t\t\t(6)Preto com roxo");
- gotoxy(21,17);
- printf("Para realizar a alteração de cores você deve digitar a opção desejada: ");
- scanf("%d",&option);
- fflush(stdin);
- switch (option){
- case 1:
- system("color 01");
- break;
- case 2:
- system("color 02");
- break;
- case 3:
- system("color 04");
- break;
- case 4:
- system("color 06");
- break;
- case 5:
- system("color 07");
- break;
- case 6:
- system("color 05");
- break;
- default:
- system("cls");
- printf("Opção inválida, voltando para o menu...");
- Sleep(2300);
- }
- fflush(stdin);
- break;
- case 's':
- quit_game=1;
- system("cls");
- break;
- default:
- system("cls");
- printf("Comando desconhecido, verifique a opção digitada!\n");
- Sleep(2300);
- fflush(stdin);
- }
- }while(quit_game==0);//sai do menu, finaliza TUDO
- return 0;
- }
- void answer_printer(char word[25],int len){//MOSTRA O PROGRESSO DO JOGO (TRACEJADOS)
- int i;
- for(i=0;i<len;i++){
- printf("%c ",word[i]);
- }
- }
- void word_bank(char word[25],int num){
- char database [21][100]={//variavel que contem todas as palavras do jogo
- "ALEMANHA",
- "CHINA",
- "EGITO",
- "INGLATERRA",
- "CHILE",
- "PARAGUAI",
- "SURINAME",
- "GUATEMALA",
- "CUBA",
- "IRLANDA",
- "ESPANHA",
- "MALI",
- "ANGLOA",
- "MADAGASCAR",
- "BELGICA",
- "CHADE",
- "GANA",
- "PORTUGAL",
- "NORUEGA",
- "DINAMARCA"
- };
- strcpy(word,database[num]);
- }
- void hint(int i, char word[100]){//DICAS DO JOGO
- char database[21][100]={
- "PAÍS QUE JA TEVE UM MURO DIVINDO O LADO ORIENTAL DO OCIDENTAL",//ALEMANHA
- "PAÍS DE GOVERNO COMUNISTA",//CHINA
- "PAÍS CONHECIDO POR MONUMENTOS EM MEIO AO DESERTO",//EGITO
- "PAÍS CONHECIDO PELA CONSTRUÇÃO DE UM RELOGIO E UMA RODA GIGANTES",//INGLATERRA
- "PAÍS COM O DESERTO MAIS SECO DO MUNDO",//CHILE
- "PAÍS LOCALIZADO NO CENTRO-SUL DA AMERICA DO SUL E MUITO VISITADO POR BRASILEIROS",//PARAGUAI
- "PAÍS DA AMERICA DO SUL QUE SEU IDIOMA É INGLES",//SURINAME
- "TERCEIRO MAIOR SUBCONTINENTE",//GUATEMALA
- "UNICO PAÍS SOCIALISTA DA AMERICA",//CUBA
- "PAÍS CONHECIDO PELA CULTURA DE USAR MUITAS PORTAS COLORIDAS",//IRLANDA
- "PAÍS DE ORIGEM DA PAELLA",//ESPANHA
- "PAÍS FORMADO POR OITO REGIÕES E NENHUMA DELAS TEM SAIDA PARA O MAR E LOCALIZADO NA ÁFRICA",//MALI
- "PAÍS RICO EM DIAMANTES, PETROLEO E MINERIO DE FERRO E LOCALIZADO NA ÁFRICA",//ANGOLA
- "PAÍS QUE É A QUARTA MAIOR ILHA DO MUNDO",//MADAGASCAR
- "PAÍS CONHECIDO POR SEUS DELICIOSOS CHOCOLATES",//BELGICA
- "PAÍS COM UM DOS MENORES ÍNDICES DE DESINVOLVIMENTO HUMANO DO MUUNDO",//CHADE
- "PAÍS QUE POSSUI O MAIOR LAGO ARTIFICIAL DO MUNDO, CHAMADO VOLTA",//GANA
- "PAÍS FAMOSO POR TER DADO ORIGEM AO VINHO",//PORTUGAL
- "PAÍS COM MAIOR INDICE DE DESENVOLVIMENTO HUMANO DO MUNDO",//NORUEGA
- "PAÍS ONDE FOI AMBIENTADA A HISTÓRIA HAMLET, DE SHAKSPEARE"//DINAMARCA
- };
- strcpy(word,database[i]);
- }
- void logo (){
- gotoxy(39,3);
- printf("################################");
- gotoxy(39,4);
- printf(" ##");
- gotoxy(39,5);
- printf(" ## ###### ###### #######");
- gotoxy(39,6);
- printf("### ## ## ## ## ## ##");
- gotoxy(39,7);
- printf("## ## ## ## ## ## ## ##");
- gotoxy(39,8);
- printf("###### ###### ###### #######");
- gotoxy(35,10);
- printf("###########################################");
- gotoxy(55,11);
- printf("da");
- gotoxy(35,12);
- printf("###########################################");
- gotoxy(35,14);
- printf("###### ####### ####### ######## ##### ");
- gotoxy(35,15);
- printf("## ## ## ## ## ## ## ##");
- gotoxy(35,16);
- printf("#### ## ## ####### ## #######");
- gotoxy(35,17);
- printf("## ## ## ## # ## ## ##");
- gotoxy(35,18);
- printf("## ####### ## # ######## ## ##");
- gotoxy(102,20);
- }
- void cleaner_typed(char typed[1]){
- int i;
- for(i=0;i<=1;i++){
- typed[i]='\0';
- }
- }
- void fork_print(int i){
- int x;
- switch (i){
- case 7:
- for(x=0;x<=3;x++){
- printf("|-----------------| \n");
- printf("| - \n");
- printf("| \n");
- printf("| YOU 0\n");
- printf("| WIN! /|\\\n");
- printf("| / \\\n");
- printf("-----------------------\n\n");
- Sleep(500);
- system("cls");
- printf("|-----------------| \n");
- printf("| - \n");
- printf("| \\0/\n");
- printf("| YOU |\n");
- printf("| WIN! / \\\n");
- printf("| \n");
- printf("-----------------------\n\n");
- Sleep(500);
- system("cls");
- }
- break;
- case 6:
- printf("|-----------------| \n");
- printf("| - \n");
- printf("| 6 CHANCES 0 \n");
- printf("| RESTANTES \n");
- printf("| \n");
- printf("-----------------------\n\n");
- //boneco vazio
- break;
- case 5:
- printf("|-----------------| \n");
- printf("| - \n");
- printf("| 5 CHANCES 0 \n");
- printf("| RESTANTES | \n");
- printf("| \n");
- printf("-----------------------\n\n");
- //cabeça
- break;
- case 4:
- printf("|-----------------| \n");
- printf("| - \n");
- printf("| 4 CHANCES 0 \n");
- printf("| RESTANTES /| \n");
- printf("| \n");
- printf("-----------------------\n\n");
- //cabeça+torço+braços
- break;
- //cabeça+torço
- break;
- case 3:
- printf("|-----------------| \n");
- printf("| - \n");
- printf("| 3 CHANCES 0 \n");
- printf("| RESTANTES /|\\\n");
- printf("| \n");
- printf("-----------------------\n\n");
- //cabeça+torço+braços
- break;
- case 2:
- printf("|-----------------| \n");
- printf("| - \n");
- printf("| 2 CHANCES 0 \n");
- printf("| RESTANTES /|\\\n");
- printf("| / \n");
- printf("-----------------------\n\n");
- //cabeça + torço + pernas + braços
- break;
- case 1:
- printf("|-----------------| \n");
- printf("| - \n");
- printf("| ÚLTIMA 0 \n");
- printf("| CHANCE! /|\\\n");
- printf("| / \\\n");
- printf("-----------------------\n\n");
- //aviso de ultima chance + boneco completo
- break;
- case 0:
- printf("|-----------------| \n");
- printf("| - \n");
- printf("| VOCÊ @ \n");
- printf("| PERDEU /|\\\n");
- printf("| / \\\n");
- printf("-----------------------\n\n");
- //boneco morto
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement