骑士飞行棋

#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶孤心丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值