2009/05/01

迷路ゲームを作ろうと思ったら

掘削ゲームになった
ソースコードです
/*OOKISA,GOALSI,GOALSJを変えれば他の大きさのマップも出きるはず
ゴールは2,初期位置は3で*/


#include<stdio.h>

#define OOKISA 10
#define NAGASA OOKISA-1
#define CHARA 3
#define GOAL 2
#define GOALSI 1
#define GOALSJ 9
int main(void){
int map[OOKISA][OOKISA]=
{1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,2,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,3,1,1,1,1,1,1,1,1};

int i,j;
int now_i,now_j;int old_i,old_j;
int input;

while(map[GOALSI][GOALSJ]!=3){

for(i=0;i<=NAGASA;i++){
for(j=0;j<=NAGASA;j++){
if(map[i][j]==0)
printf(" ");
else if(map[i][j]==1)
printf("壁");
else if(map[i][j]==GOAL)
printf("GL");
else if(map[i][j]==CHARA){

printf("CH");
now_i=i;now_j=j;old_i=i;old_j=j;
}
}
printf("\n");
}

printf("8=Up 2=Down 4=Left 6=Right\nInput:");
scanf("%d",&input);

switch(input){

case 2:
if(now_i+1<=NAGASA)
now_i++;
break;
case 8:
if(now_i-1>=0)
now_i--;
break;
case 4:
if(now_j-1>=0)
now_j--;
break;

case 6:
if(now_j+1<=NAGASA)
now_j++;
break;

default:
printf("Error.\n");
break;
}
map[old_i][old_j]=0;
map[now_i][now_j]=CHARA;



}
if(map[GOALSI][GOALSJ]==CHARA)
printf("GOAL\n");

return 0;
}

以上です

0 件のコメント: