Ir ao conteúdo
  • Cadastre-se
José Magalhães_497944

Avaliem meu jogo snake

Recommended Posts

O jogo fica meio "pesado" quando eu mudo a dimensão do mapa para valores > 20,

O que eu posso mudar ?

valw

#include <stdio.h>#include <windows.h>#include <conio.h>#include <stdlib.h>#include <time.h>#include <dos.h>#define max 20typedef struct minhoca{	int x,y;}tminho;tminho minhoc[0];int  main(){char map[max][max],botao,botao_anterior;int i,j,p,k;int topo = 1,loop = 0,pegou = 0,pontos =0;float velocidade = 10;	 	for (i=0;i<max;i++){		for(j=0;j<max;j++){			map[i][j] ='X'; 	    }	}	minhoc[topo].x =5;	minhoc[topo].y = 5;	p = rand()%10;        k = rand()%10;while (loop!=1){       if (kbhit()){		botao = getch();			if (botao == 'q'){			loop = 1;	    }	}            //um verificar que usa o axiliar 'botao_anterior', para a cobra nao passar por cima dela mesma------------------------		if (botao_anterior == 'd' && botao == 'a' ){                	botao  = 'd';				}				if (botao_anterior == 'a' && botao == 'd' ){                	botao  = 'a';				}					if (botao_anterior == 'w' && botao == 's' ){                	botao  = 'w';				}					if (botao_anterior == 's' && botao == 'w' ){                	botao  = 's';				}             ------------------------------------------------------------------------------------				//o verificador de colisao-------------------------------------------if (map[minhoc[topo].x][minhoc[topo].y+1] == 'X' && botao == 'd'){		            loop = 1;	    } if (map[minhoc[topo].x][minhoc[topo].y-1] == 'X' && botao == 'a'){		            loop = 1;	    }if (map[minhoc[topo].x-1][minhoc[topo].y] == 'X' && botao == 'w'){		            loop = 1;	    } if (map[minhoc[topo].x+1][minhoc[topo].y] == 'X' && botao == 's'){		            loop = 1;	    }	--------------------------------------------------------------------------------	 //atualiza as posiçoes-------------------------------------------------------------------------------                                       for (i=0;i<=topo-1;i++){			    minhoc[i].y = minhoc[i+1].y;		            minhoc[i].x = minhoc[i+1].x;				} 		      //movimento ----------------------------------------------------------                    switch(botao){   	            case 'd'  :     			minhoc[topo].y++;			break;		    case 'a'  :                         minhoc[topo].y--;			break;		    case 'w'  :    	                minhoc[topo].x--;		         break;		    case 's'  :		         minhoc[topo].x++;	                 break;		     }   ----------------------------------------------------------------------    //auxiliar para manter o movimento da cobra.				    botao_anterior = botao; -----------------------------------------------------------------------	 	//limpa o frame antigo        for (i=1;i<max-1;i++){		for(j=1;j<max-1;j++){		    map[i][j] ='\0'; 	    }	}     ------------------------------------------------------------------// coloca a "comida" na tela          map[p][k] = 177;-----------------------------------------------------------------	     //joga as posições atualizadas no mapa----------------------	for (i=0;i<=topo;i++){	     map[minhoc[i].x][minhoc[i].y] = 'X';    }------------------------------------------------------------------//verifica colisao com a "comida"------------------------------------    	 if (minhoc[topo].x == p  && minhoc[topo].y == k){	  	  printf("\a");		  srand(time(NULL));		  p = rand()%18+1 ;		  k = rand()%18+1 ;		  topo++;                  pontos++;	     //atualiza as posições de novo pois o topo é incrementado              minhoc[topo].y = minhoc[topo-1].y;	      minhoc[topo].x = minhoc[topo-1].x;	                 for (i=0;i<=topo-2;i++){		 	  minhoc[i].y = minhoc[i+1].y;		         minhoc[i].x = minhoc[i+1].x;		    }	    } --------------------------------------------------------------------------       system("cls"); //desenha o mapa atualizado-----------------------------------------------    for (i=0;i<max;i++){	   printf("\n");	      	for(j=0;j<max;j++){		    printf("%c",map[i][j]);			   		}	}--------------------------------------------------------------------------------------	printf("Pontos: %d\n",pontos);	Sleep(velocidade); // velocidade de atualizao da tela e consequente velocidade da cobra.	}// mensagens no fim do jogo--------------------------------------------------------------------------------------------------------printf("iniciante, nao tem dedo pra jogar o Snake Bugado.\n(ou teve um ataque epileptico, esse pisca pisca da tela e perigoso!!)\n Perdeu, você fez : %d pontos!",pontos);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você rodou seu jogo no DEV ou codeblock ???

 

você esqueceu de colocar // de comentario em algumas linhas onde tem

 

-------------------------------------------------------------------------

 

 

//--------------------------------------------------------------------------

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×