//大一暑假
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define n 10//地圖大小
int m=1;
int g=5;
//////////////////////////人是1,牆是9,星星是8/10,空位是0,光是2;
int count=0;
int point='w';
void move(int a[][10],int i,int j);//移動函數
void huatu(int a[n][n]);//畫圖
void guang(int a[][10]);
int main(void)
{
int a[n][n]={
{9,9,9,9,9,9,9,9,9,9},
{9,0,0,0,9,1,0,8,8,9},
{9,0,0,0,9,0,0,0,0,9},
{9,0,0,0,0,0,0,0,0,9},
{9,0,8,0,0,0,0,0,0,9},
{9,0,0,0,0,0,9,0,0,9},
{9,0,0,0,0,0,9,0,0,9},
{9,0,0,8,8,0,0,0,0,9},
{9,0,0,0,9,0,0,0,0,9},
{9,9,9,9,9,9,9,9,9,9}
};
int ch;
huatu(a);
while(1)
{
ch=getch();
switch(ch)
{
case 72: move(a,-1,0);break;
case 80: move(a,1,0);break;
case 75: move(a,0,-1);break;
case 77: move(a,0,1);break;
case 'w': point='w';continue;
case 's': point='s';continue;
case 'a': point='a';continue;
case 'd': point='d';continue;
case 'j': guang(a);break;
};
system("cls");
huatu(a);
if(count==5)/////////終止條件
{
printf("成功\n");
_sleep(1000);
exit(0);
}
}
return 0;
}
void move(int a[][10],int i,int j)
{
if(a[m+i][g+j]==9||a[m+i][g+j]==8)printf("撞牆或星星了"); //人-牆/星星
else if(a[m+i][g+j]==0)//人-無
{
a[m][g]-=1;
a[m+i][g+j]+=1;
m+=i;g+=j;
}
}
void guang(int a[][10])
{
int i,j;
if(point=='w')for(i=m-1;i>0 && a[i][g]!=9;--i){a[i][g]+=2;if(a[i][g]==10)++count;}
else if(point=='s')for(i=m+1;i<9 && a[i][g]!=9;++i){a[i][g]+=2;if(a[i][g]==10)++count;}
else if(point=='a')for(i=g-1;i>0 && a[m][i]!=9;--i){a[m][i]+=2;if(a[m][i]==10)++count;}
else if(point=='d')for(i=g+1;i<9 && a[m][i]!=9;++i){a[m][i]+=2;if(a[m][i]==10)++count;}
/////////////////////////顯示攻擊
system("cls");
huatu(a);
_sleep(200);
for(i=1;i<n-1;++i)///////被攻擊後就變爲0
for(j=1;j<n-1;++j)
if(a[i][j]==2 || a[i][j]==10)a[i][j]=0;
}
void huatu(int a[n][n])
{ int count=0;
int i,j;
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
{
if(a[i][j]==5)count++;
switch (a[i][j])
{ case 9:printf("■");break;
case 0:printf(" ");break;
case 10:
case 2:printf("□");break;//攻擊
case 1:printf("㊣");break;///人
case 8:printf("☆");break;//星星
default: printf("?");
}
}
printf("\n");
}
printf("\n\n按上下左右移動;;;;w s a d調整攻擊方向;;; j攻擊");
}
打星星遊戲
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.