飞行棋游戏程序C语言代码
自贡美食-
#include
#include
#include
#include
#include
void
restart(int map[100])
{int
m[100]={100,0,0,0,0,2,1,0,0,3,0,0,0,2,0
,0,0,2,0,0,4,0,0,1,0,4,0,3,0,0,0,0,0,2,0,0,0,0,2,0
,1,0,0,0,0,4,
0,0,0,0,2,0,0,0,0,1,0,0,0,
0,3,0,0,4,2,0,0,0,0,1,0,0,4,0,0,0,0,0,0,0,2,0,0,1,
0,0,0,0,4,0,4,0,0,3,2,0,0,0,
0,0 };
/*
这里是地图代码
*/
int i;
FILE * fp
= fopen(
if(fp != 0)
{
printf(
找到地图。尝试加载地图
……
for(i=0;i<100;i++)
{
fscanf(fp,
if(map[i] != 0 &&
map[i] != 1 && map[i] != 2 && map[i] != 3 &&
map[i] != 4 && map[i] != 10 &&
map[i]
!= 20 && map[i] != 100)
{
map[i]=m[i];
}
}
fclose(fp);
}
else
{
printf(
未找到地图。加载默认地图中
……
for(i=0;i<100;i++)
map[i]=m[i];
}
pr
intf(
地图加载完成
Sleep(
500);
}
/*
用来给
map
数组赋值
*/
/*
用来输出游戏规则
*/
/*
用来输出地图
*/
void printmap(int map[])
{int i=0,j=1;
printf(
∷
'
是平地,
'¤'
是幸运罗盘,
'
★
'<
/p>
是地雷,
'
■
'
是暂停,
'
〓
'
是时空隧道
n
printf(
for(i=0;i<31;i++)
{switch(map[i])
{
case
0:printf(
∷
case
1:printf(
case
2:printf(
★
case
3:printf(
■
case
4:printf(
〓
case
10:printf(
A
case
20:printf(
B
case
100:printf(
}
}printf(
for(;i<35;i++)
{
switch(map[i])
{
case
0:printf(
∷
n
case
1:printf(
¤n
case
2:printf(
★
n
case
3:printf(
■
n
case
4:printf(
〓
n
case
10:printf(
A
n
case
20:printf(
B
n
}
}
for(;i<66;i++)
{
switch(map[66-(j++)])
{
case
0:printf(
∷
case
1:printf(
case
2:printf(
★
case
3:printf(
■
case
4:printf(
〓
case
10:printf(
A
case
20:printf(
B
}}
printf(
for(;i<69;i++)
{
switch(map[i])
{
case
0:printf(
∷
n
case
1:printf(
case
2:printf(
★
n
case
3:printf(
■
n
case
4:printf(
〓
n
case
10:printf(
A
n
case
20:printf(
B
n
}}
for(;i<100;i++)
{
switch(map[i])
{
case
0:printf(
∷
case
1:printf(
case
2:printf(
★
case
3:printf(
■
case
4:printf(
〓
case
10:printf(
A
case
20:printf(
B
case
100:printf(
}
}
printf(
printf(
}
/*
用来输出地图
*/
/*
拟定双人游戏规则及产生走路动画
*/
int _flash(int map[],int ss,int *pl,int
*pl2,int whatplayer)
{int i, t;
time_t now,d;
char c;
printf(
Sleep(100);
if(whatplayer==1)
{for(i=0;i<100;i++)
{if(map[i]==10)
{map[i]=0;
break;}}
for(i=1;i<=ss;i++)
{
system(
printmap(map);
if(*pl+ss>=99 || *pl2+ss>=99)
{if(*pl+ss>=99)
{*pl=99;
return 0;}
else
if(*pl2+ss>=99)
{*pl2=99;
return 0;}
}
t=map[*pl+i]; map[*pl+i]=10;
Sleep(100);
system(
printmap(map);
Sleep(100);
map[*pl+i]= t;
}
Sleep(50);
system(
*pl=*pl+ss;
if(map[*pl]==1)
{printf(
恭喜来到幸运罗盘!
n
printf(
请做出选择
:n
printf(
按
1.
和对方骑兵交换位置
按
2.
轰炸对方骑兵
< br>(
炸退六步
)
按其他键
:
还是算了
n
c=getch();
switch(c)
{case '1':printf(<
/p>
嗖嗖嗖
............n
pr
intf(
B
:
???
怎么回事??
Sleep(300); t=*pl;
*pl=*pl2;
*pl2= t;
system(
Sleep(50)
;break;
case
'2':printf(
A
:
炸弹归来
......
p>
Sleep(500);printf(
B
:
哎呦喂!
Sleep(300);map[*pl2]=0;*pl2=*pl2-6;
if(map[*pl]==map[*pl2])
{Sleep(300);
printf(
B
:
哈哈哈哈
...
踩到了
!
Sleep(800);
map[0]=20;
map[*pl]=0;
*pl=0;
system(
}
if(*pl2<0)
*pl2=0;
system(
Sleep(50);
break;
}
}
else if(map[*pl]==2)
{Sleep(300);
printf(
A
:
踩到地雷,气死了
......
Sleep(50);
Sleep(300);
map[*pl]=0;
*pl=*pl-6;
if(map[*pl]==map[*pl2])
{Sleep(300);
printf(
A
:
哈哈哈哈
...
踩到了
!
Sleep(800);
map[0]=20;
map[*pl2]=0;
*pl2=0;
system(
}
if(*pl<0)*pl=0;
system(
}
else
if(map[*pl]==3)
{printf(
要停战一
局了。
Sleep(1750);
if(*pl>=99 || *pl2>=99)
{if(*pl>=99)
{*pl=99;
return 0;}
else if(*pl2>=99)
{*pl2=99;
return 0;}
}
system(
printmap(map);
printf(
请玩家
2
按
任意键投掷骰子:
n
d=getch();
if(*pl>=99 || *pl2>=99)
{if(*pl>=99)
{*pl=99;
return 0;}
else if(*pl2>=99)
{*pl2=99;
return 0;}
}
printf(
丁零当啷
......
Sleep(1000);
now=time(NULL);
d+=now;
while(d>3)
d=d/(rand()%5+1);
_flash(map,d+1+rand()%2,pl,pl2,2);
system(
else if(map[*pl]==4)
{Sleep(300);
printf(
A
:
进入时空隧道,真爽!
Sleep(50);
Sleep(1000);
map[*pl]=0;
*pl=*pl+10; if(*pl>99)*pl=99;
system(
}
else
if(map[*pl]==map[*pl2])
{Sleep(300);
printf(
A
:
哈哈哈哈
...
踩到了
!
Sleep(800);
map[0]=20;
map[*pl2]=0;
*pl2=0;
system(
}
map[*pl]=10;
map[*pl2]=20;
printmap(map);
}
else
{
for(i=0;i<100;i++)
{if(map[i]==20)
{map[i]=0;
break;}}
for(i=1;i<=ss;i++)
{
system(
printmap(map);
if(*pl>=99 || *pl2>=99)
{if(*pl>=99)
return 0;}
else if(*pl2>=99)
{*pl2=99;
return 0;}
}
t=map[*pl2+i];
map[*pl2+i]=20;
Sleep(100);
system(
printmap(map);
Sleep(100);
map[*pl2+i]= t;
}
system(
*pl2=*pl2+ss;
if(map[*pl2]==1)
{printf(
恭喜来到幸运罗盘!
n
printf(
请做出选择
:n
printf(
按
1.
和对方骑兵交换位置
按
2.
轰炸对方骑兵
< br>(
炸退六步
)
按其他键
:
还是算了
n
c=getch();
switch(c)
{case '1':printf(<
/p>
嗖嗖嗖
............n
A<
/p>
:
???
怎么回事??
Sleep(300);
t=*pl;
*pl=*pl2;
*pl2= t;
system(
Sleep(50);
break;
case
'2':printf(
B
:
炸
弹
归
来
......
n
A
:
p>
哎
呦
喂
!
n
if(map[*pl]==map[*pl2])
{Sleep(300);
printf(
A
:
哈哈哈哈
...
踩到了
!
Sleep(800);
map[0]=20;
map[*pl2]=0;
*pl2=0;
system(
}if(*pl<0)*pl=0;system(
}
}
else
if(map[*pl2]==2)
{Sleep(300);
printf(
B
:
踩到地雷,气死了
......
Sleep(50);
Sleep(300);
map[*pl2]=0;
*pl2=*pl2-6;
if(map[*pl]==map[*pl2])
{Sleep(300);
printf(
B
:
哈哈哈哈
...
踩到了
!
Sleep(300);
map[0]=10;
map[*pl]=0;
*pl=0;
}
if(*pl2<0)*pl2=0;
system(
}
else
if(map[*pl2]==3)
{printf(
要停战
一局了。
Sleep(1750);
if(*pl>=99 || *pl2>=99)
{if(*pl>=99)
{*pl=99;
return 0;}
else if(*pl2>=99)
{*pl2=99;
return 0;}
}
system(
printmap(map);
printf(
请玩家
1
按
任意键投掷骰子:
n
d=getch();
now=time(NULL);
d+=now;
printf(
丁零当啷
......
Sleep(1000);
while(d>3)
d=d/(rand()%5+1);
_flash(map,d+1+rand()%2,pl,pl2,1);
system(
}
else
if(map[*pl2]==4)
{Sleep(300);
printf(
B
:
进入时空隧道,真爽!
Sleep(50);
Sleep(1000);
map[*pl2]=0;
*pl2=*pl2+10;
if(map[*pl]==map[*pl2])
{Sleep(300);
printf(
B
:
哈哈哈哈
...
踩到了
!
Sleep(300);
map[0]=10;
map[*pl]=0;
*pl=0;
}
if(*pl2>99)*pl2=99;
system(
}
else
if(map[*pl]==map[*pl2])
{Sleep(300);
printf(
B
:
哈哈哈哈
...
踩到了
!
Sleep(300);
map[0]=10;
map[*pl]=0;
*pl=0;
}
map[*pl]=10;
map[*pl2]=20;
printmap(map);
}
/*
拟定双人游戏规则及产生走路动画
*/
/*
拟定人机游戏规则及产生走路动画,产生电脑智能选择
*/
int _rjflash(int map[],int ss,int
*pl,int *pl2,int whatplayer)
{int i, t;
time_t now,d;
char c;
printf(
Sleep(100);