#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <windows.h>int map[110],bu[1000];
char str[4][20];
struct node
{
int q,w;
char name[20];
}a[3];
void f()
{
int n,m;
strcpy(str[1],"戴高乐");
strcpy(str[2],"艾森豪威尔");
strcpy(str[3],"麦克阿瑟");
strcpy(str[4],"巴顿");
printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("// //\n");
printf("// //\n");
printf("// //\n");
printf("// 骑 士 飞 行 棋 //\n");
printf("// //\n");
printf("// //\n");
printf("// //\n");
printf("// //\n");
printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n\n");
printf("~~~~~~~~~~~~~~~~~~~~~两 人 对 战~~~~~~~~~~~~~~~~~~~~~~~\n\n");
printf("请选择角色: 1.戴高乐 2.艾森豪威尔 3.麦克阿瑟 4.巴顿\n");
printf("请玩家1选择角色:");
scanf("%d",&n);
strcpy(a[1].name,str[n]);
printf("玩家1选择了%s\n\n",a[1].name);
printf("请玩家2选择角色:");
scanf("%d",&m);
while(n == m)
{
printf("对不起,玩家选择人物重复,请重新选择\n");
printf("请玩家2选择角色:");
scanf("%d",&m);
}
strcpy(a[2].name,str[m]);
printf("玩家2选择了%s\n\n",a[2].name);
printf("人物选择完毕,游戏开始......\n\n");
}
void dice( )
{
int i;
for(i=0;i<100;i++)
{
map[i] = 1;
if(i == 6 || i == 14 || i == 18 || i == 34 || i == 39 || i == 51 || i == 65 || i == 81 || i == 95)
{
map[i] = 5;
}
else if(i == 10 || i == 28 || i == 61 || i == 94)
{
map[i] = 2;
}
else if(i == 7 || i == 24 || i == 41 || i == 56 || i == 72 || i == 84)
{
map[i] = 4;
}
else if(i == 26 || i == 21 || i == 46 || i == 64 || i == 75 || i == 89 || i == 91 )
{
map[i] = 3;
} }
}
void dice1( )
{
int i;
srand( (unsigned)time( NULL ) );
for(i=0;i<500;i++)
{
bu[i] = (rand()%6)+1;
}
}void ditu()
{
int i,j;
printf("起点\n");
for(i=1;i<=30;i++)
{
if(map[i] == 1)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("∷");
}
}
else if(map[i] == 2)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("■");
}
}
else if(map[i] == 3)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("●");
}
}
else if(map[i] == 4)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("◎");
}
}
else
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("★");
}
}
} for(i=31;i<=35;i++)
{
printf("\n");
for(j=0;j<58;j++)
{
printf(" ");
}
if(map[i] == 1)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("∷");
}
}
else if(map[i] == 2)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("■");
}
}
else if(map[i] == 3)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("●");
}
}
else if(map[i] == 4)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("◎");
}
}
else
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("★");
}
} }
printf("\n");
for(i=65;i>=36;i--)
{
if(map[i] == 1)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("∷");
}
}
else if(map[i] == 2)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("■");
}
}
else if(map[i] == 3)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("●");
}
}
else if(map[i] == 4)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("◎");
}
}
else
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("★");
}
}
}
for(i=66;i<=71;i++)
{
printf("\n");
if(map[i] == 1)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("∷");
}
}
else if(map[i] == 2)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("■");
}
}
else if(map[i] == 3)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("●");
}
}
else if(map[i] == 4)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("◎");
}
}
else
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("★");
}
}
}
for(i=72;i<=100;i++)
{
if(map[i] == 1)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("∷");
}
}
else if(map[i] == 2)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("■");
}
}
else if(map[i] == 3)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("●");
}
}
else if(map[i] == 4)
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("◎");
}
}
else
{
if(i == a[1].q)
{
printf("11");
}
else if(i == a[2].q)
{
printf("22");
}
else
{
printf("★");
}
}
}
printf(" 终点\n");}
int main()
{
a[1].q = 0;
a[1].w = 0;
a[2].q = 0;
a[2].w = 0;
dice();
dice1();
ditu();
printf("\n\n");
f();
char str1[3][20],p;
strcpy(str1[1],"你将会与对方交换位置");
strcpy(str1[2],"将会轰炸对方,让对方后退6步");
int k,i= 0;
int n = 0,m = 0;
int count1 = 0,count2 = 0;
while(a[1].q<=99 && a[2].q<=99)
{
if(count1 == 2 && a[1].w == 1)
{
a[1].w = 0;
}
if(count2 ==2 && a[2].w == 1)
{
a[2].w = 0;
}
int x =0,y = 0;
if(a[1].w == 0)
{
printf("请玩家 %s掷骰子\n\n",a[1].name);
k = bu[i++];
printf("玩家 %s掷骰子的点数是%d\n\n",a[1].name,k);
a[1].q = a[1].q + k;
n = a[1].q;
if(map[n] == 2)
{
printf("运气不佳,被跳过,下局自动跳过\n\n");
a[1].w = 1;
count1 = 0; }
else if(map[n] == 3)
{
printf("恭喜进入时空隧道,前进10步\n\n");
a[1].q = a[1].q + 10; }
else if(map[n] == 4)
{
printf("恭喜进入幸运转盘,现说明规则\n\n");
printf("选择 1 你将会与对方交换位置\n\n");
printf("选择 2 将会轰炸对方,让对方后退6步\n\n");
printf("现在你的位置为%d 对方的位置为%d\n\n",a[1].q,a[2].q);
printf("请输入你的选择:");
scanf("%d",&x);
printf("玩家%s选择了第%d种方法\n\n",str1[x],x);
if(x == 1)
{
y = a[2].q;
a[2].q = a[1].q;
a[1].q = y;
}
else
{
a[2].q = a[2].q - 6;
if(a[2].q<0)
{
a[2].q = 0;
}
}
}
else if(map[n] == 5)
{
printf("人品不佳,踩到地雷后退6步\n\n");
a[1].q = a[1].q - 6;
if(a[1].q<0)
{
a[1].q = 0;
}
}
ditu();
printf("玩家%s的位置是第%d位\n\n",a[1].name,a[1].q);
getchar(); }
if(a[1].q>100)
{
break;
}
printf("玩家%s回合结束,摁任意键继续游戏\n",a[1].name);
p = getchar();
if(a[2].w == 0)
{
printf("请玩家 %s掷骰子\n\n",a[2].name);
k = bu[i++];
printf("玩家 %s掷骰子的点数是%d\n\n",a[2].name,k);
a[2].q = a[2].q + k;
m = a[2].q;
if(map[m] == 2)
{
printf("运气不佳,被跳过,下局自动跳过\n\n");
a[2].w = 1;
count2 = 0; }
else if(map[m] == 3)
{
printf("恭喜进入时空隧道,前进10步\n\n");
a[2].q = a[2].q + 10; }
else if(map[m] == 4)
{
printf("恭喜进入幸运转盘,现说明规则\n\n");
printf("选择 1 你将会与对方交换位置\n\n");
printf("选择 2 将会轰炸对方,让对方后退6步\n\n");
printf("现在你的位置为%d 对方的位置为%d\n\n",a[2].q,a[1].q);
printf("请输入你的选择:");
scanf("%d",&x);
printf("玩家%s选择了第%d种方法\n\n",str1[x],x);
if(x == 1)
{
y = a[1].q;
a[1].q = a[2].q;
a[2].q = y;
}
else
{
a[1].q = a[1].q - 6;
if(a[1].q<0)
{
a[1].q = 0;
}
}
}
else if(map[m] == 5)
{
printf("人品不佳,踩到地雷后退6步\n\n");
a[2].q = a[2].q - 6;
if(a[2].q <0)
{
a[2].q = 0;
}
}
ditu();
printf("玩家%s的位置是第%d位\n\n",a[2].name,a[2].q);
getchar(); }
if(a[2].q>100)
{
break;
}
printf("玩家%s回合结束,摁任意键继续游戏\n",a[2].name);
p = getchar();
count1++;
count2++;
}
if(a[1].q>a[2].q)
{
printf("恭喜玩家 %s 赢得胜利\n",a[1].name);
}
else
{
printf("恭喜玩家 %s 赢得胜利\n",a[2].name);
}
return 0;
}