战争策略游戏小程序代码
# include & ltcstring & gt
# include & ltcstdlib & gt
# include & ltctime & gt
# include & ltconio.h & gt
# include & ltwindows.h & gt
# include & ltiostream & gt
使用?命名空间?std
const?int?dd[4][2]={{1,0},{0,1},{-1,0},{0,-1 } };
夏尔?地图[33][53];
int?d,fx,fy,score
布尔?吃饭;
struct?身体
{
int?x,y;
身体?*上一个,*下一个;
body(){ last = next = NULL;}
} *头;
int?兰德(int?l,int?r)
{
回归?rand()%(r-l+1)+l;
}
作废?初始化()
{
for(int?I = 0;我& lt22;i++)
for(int?j = 0;j & lt52;j++)
map[i][j]= '?';
for(int?I = 0;我& lt52;i++)
map[0][I]= map[21][I]= ' # ';
for(int?I = 0;我& lt22;i++)
map[I][0]= map[I][51]= ' # ';
srand((无符号)时间(空));
头=新?身体;
head->;x=Rand(5,15),head-& gt;y =兰特(10,40);
d =兰特(0,3);
开关(d)
{
案子?0:map[head-& gt;x][head->;y]= ' | ';地图[head-& gt;x+1][head->;y]= ' | ';打破;
案子?1:map[head-& gt;x][head->;y]= '-';地图[head-& gt;x][head->;y+1]= '-';打破;
案子?2:map[head-& gt;x][head->;y]= ' | ';地图[head-& gt;x-1][head->;y]= ' | ';打破;
案子?3:map[head-& gt;x][head->;y]= '-';地图[head-& gt;x][head->;y-1]= '-';打破;
}
身体?* l =新?身体;
* l = * head
l-& gt;x+= DD[d][0];
l-& gt;y+= DD[d][1];
head->;last = l;
l-& gt;下一个=头;
d =(d+2)% 4;
做
{
fx =兰特(1,20);fy =兰特(1,50);
}while(地图[fx][fy]!='?');
map[FX][fy]= ' * ';
}
作废?打印()
{
系统(“cls”);
for(int?I = 0;我& lt22;i++)
puts(map[I]);
printf("你的?分数:%d\n”,分数);
}
作废?更新(正文?*u,int?x,int?y)
{
if(map[x][y]= = ' # ' | | map[x][y]= = '-' | | map[x][y]= = ' | ')
{ cout & lt& lt“游戏?完了!”& lt& ltendlMessageBox(NULL,“游戏?完了!”,“游戏?完了!”,NULL);退出(0);}
if(u==NULL)返回;
if(u->;最后!=NULL||eat==0)
map[u-& gt;x][u->;y]= '?';
其他
{
u-& gt;last=new?身体;
u-& gt;最后-& gt;next = u;
u-& gt;最后-& gt;x = u-& gt;x;
u-& gt;最后-& gt;y = u-& gt;y;
得分++;
做
{
fx =兰特(1,20);fy =兰特(1,50);
}while(地图[fx][fy]!='?');
map[FX][fy]= ' * ';
}
夏尔?c;
if(u->;x==x)
c = '-';
if(u->;y==y)
c = ' |
map[x][y]= c;
if(u->;最后& amp& amp(u->;最后-& gt;x!= u->;x | | u->;最后-& gt;y!= u->;y))更新(u-& gt;最后,u-& gt;x,u-& gt;y);
u-& gt;x = xu-& gt;y = y
}
int?主()
{
init();
while(1)
{
print();
int?x = d;
for(int?I = 0;我& lt=10;i++)
{
if(getkey state(' S ')& lt;0 & amp& ampd!=2)
x = 0;
if(getkey state(' D ')& lt;0 & amp& ampd!=3)
x = 1;
if(getkey state(' W ')& lt;0 & amp& ampd!=0)
x = 2;
if(getkey state(' A ')& lt;0 & amp& ampd!=1)
x = 3;
睡眠(10);
}
d = x;
吃=(map[head-& gt;x+DD[d][0]][head-& gt;y+DD[d][1]]= = ' * ');
更新(head,head-& gt;x+dd[d][0],head-& gt;y+DD[d][1]);
}
回归?0;
}蛇代码,wsad控制移动,我写的一个小游戏。