迷路ゲームを作ろうと思ったら
掘削ゲームになった
ソースコードです
/*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;
}
以上です
2009/05/01
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿