战争策略游戏小程序代码

# include & ltcstdio & gt

# 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控制移动,我写的一个小游戏。