Enviado em 01/07/2014 - 21:55h
Olá Galera , Estou "Re"Aprendendo a programar em c,eu decidi fazer um jogo de labirinto,mas agora quero aperfeiçoa-lo com mapas randomicos (ou aleatorios) e eu fiz mas esta dando um erro , alguem pode me ajudar ?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <graphics.h>
/* Definicoes, para facilitar o uso da funcao para desenhar o mapa */
#define CHAO 0
#define PAREDE 1
#define VOCE 2
#define GRAMA 3
#define SAIDA 4
#define ACIMA 119
#define ABAIXO 115
#define DIREITA 100
#define ESQUERDA 97
#define ESC 27
/*Outras definições para tratamento de erros*/
#define OK 1
#define ERRO 2
int coluna_atual = 1,
linha_atual = 1;
int coluna_atual2 = 1,
linha_atual2 = 1;
int key,passos;
/* O Mapa */
int mapa[5][5] = {
1,1,1,1,1,
1,0,1,1,1,
1,0,0,0,1,
1,1,1,0,1,
1,1,1,4,1};
int x ,y;
int mapa2[6][6];
for (int m = 0; m < 6;m++){
for (int n = 0;n<6;n++){
srand( (unsigned)time(NULL) );
x = rand % 3;
mapa2[m][n] = x;
}
srand( (unsigned)time(NULL) );
y = rand %3;
mapa2[m][n] = y;
}
int desenhar_mapa2()
{
int linha2,coluna2;
for (linha2=0;linha2<6;linha2++) {
for (coluna2=0;coluna2<6;coluna2++) {
if ((linha2 == linha_atual2) && (coluna2 == coluna_atual2)) {
printf("@");
continue;
}
if (mapa2[linha2][coluna2] == CHAO)
printf(" ");
if (mapa2[linha2][coluna2] == PAREDE)
printf("=");
if (mapa2[linha2][coluna2] == GRAMA)
printf(".");
if (mapa2[linha2][coluna2] == SAIDA)
printf("#");
}
printf("\n");
}
return OK;
}
int desenhar_mapa()
{
int linha,coluna;
for (linha=0;linha<5;linha++) {
for (coluna=0;coluna<5;coluna++) {
if ((linha == linha_atual) && (coluna == coluna_atual)) {
printf("@");
continue;
}
if (mapa[linha][coluna] == CHAO)
printf(" ");
if (mapa[linha][coluna] == PAREDE)
printf("=");
if (mapa[linha][coluna] == GRAMA)
printf(".");
if (mapa[linha][coluna] == SAIDA)
printf("#");
}
printf("\n");
}
return OK;
}
int main(){
system("clear");
desenhar_mapa();
do {
key=getch();
if (key==ACIMA){
linha_atual -= 1;
passos += 1;
if (mapa[linha_atual][coluna_atual] == PAREDE){
linha_atual +=1;
}
system("clear");
desenhar_mapa();
printf("@");
}
if (key==ABAIXO){
linha_atual += 1;
passos += 1;
if ((mapa[linha_atual][coluna_atual] == PAREDE)){
linha_atual -= 1;
}
system("clear");
desenhar_mapa();
printf("@");
}
if (key==DIREITA){
coluna_atual += 1;
passos += 1;
if ((mapa[linha_atual][coluna_atual] == PAREDE)){
coluna_atual -= 1;
}
system("clear");
desenhar_mapa();
printf("@");
}
if (key==ESQUERDA){
coluna_atual -= 1;
passos += 1;
if ((mapa[linha_atual][coluna_atual] == PAREDE)){
coluna_atual += 1;
}
system("clear");
desenhar_mapa();
printf("@");
}
}while(mapa[linha_atual][coluna_atual]!=SAIDA);
printf("\n\nLevel 1 Concluido\nTotal de Passos Level 1: %i\nPrecione Qualquer Tecla Para ir Ao Level 2\n",passos);
getch();
system("clear");
desenhar_mapa2();
int passos2 = 0;
do {
key=getch();
if (key==ACIMA){
linha_atual2 -= 1;
passos2 += 1;
if (mapa2[linha_atual2][coluna_atual2] == PAREDE){
linha_atual2 +=1;
}
system("clear");
desenhar_mapa2();
printf("@");
}
if (key==ABAIXO){
linha_atual2 += 1;
passos2 += 1;
if ((mapa2[linha_atual2][coluna_atual2] == PAREDE)){
linha_atual2 -= 1;
}
system("clear");
desenhar_mapa2();
printf("@");
}
if (key==DIREITA){
coluna_atual2 += 1;
passos += 1;
if ((mapa2[linha_atual2][coluna_atual2] == PAREDE)){
coluna_atual2 -= 1;
}
system("clear");
desenhar_mapa2();
printf("@");
}
if (key==ESQUERDA){
coluna_atual2 -= 1;
passos2 += 1;
if ((mapa2[linha_atual2][coluna_atual2] == PAREDE)){
coluna_atual2 += 1;
}
system("clear");
desenhar_mapa2();
printf("@");
}
}while(mapa2[linha_atual2][coluna_atual2]!=SAIDA);
int total = passos+passos2;
printf("Level 2 Concluido\nTotal de Passos Level 2: %i\nTotal de Passos nos 2 Levels: %i\n",passos2,total);
}