猜拳游戏(c语言)

猜拳游戏,分别用函数的调用、二维数组

循环游戏,累加战绩,结束时显示

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void liu(int a[2][3],int i,int j);
void sun(int a[2][3],int i,int j);
void cc(int a[2][3],int i,int j);
int main ()
 {
     srand((unsigned)time(NULL));
     int a=0,b,c=0;
     int num[2][3]={0};
     char x,n;
     printf("----------------欢迎进入游戏世界----------------\n");
     printf("\t\t****************\n");
     printf("\t\t** 猜拳,开始 **\n");
     printf("\t\t****************\n");
     printf("出拳规则:1、剪刀 2、石头 、3布\n");
     printf("请选择对方角色(1、刘备 2、孙权 3 、曹操):"); 
     scanf("%d",&a);
     while(1)
     {
     if(a==1)
     {
         printf("你选择了刘备对战\n");
         liu(num,2,3);
     }
         
     else if(a==2)
     {
         printf("你选择了孙权对战\n");
         sun(num,2,3);
     }
         
     else if(a==3)
     {
         printf("你选择了曹操对战\n");
         cc(num,2,3);
     }
         
     break;
    } 
    
     return 0;
}
void liu(int a[2][3],int i,int j)
{
    int n=0,m=0,b,c,z=0; 
    char ch;
    printf("要开始吗?(y/n)");
    getchar();
    ch=getchar();
    while(ch=='y')
    {
        c=rand()%3+1; 
        printf("请出拳:1、石头 2、剪刀 3、布(输入对应数字):\n");
        scanf("%d",&b);
        n++;
        if(c==1)
        {
            
            printf("刘备出石头!");
            a[1][0]++;
            if(b==1)
            {
                printf("咱出石头!\n打平。\n");
                a[0][0]++;
            }
            else if(b==2)
            {
                printf("咱出剪刀!\n笨啊,打不过刘备。\n");
                z++;
                a[0][1]++;
            }
            else if(b==3)
            {
                printf("咱出布!\n咱赢了。\n");
                a[0][2]++;
                m++;
            }
                
        }
        else if(c==2)
        {
            printf("刘备出剪刀!");
            a[1][1]++;
            if(b==1)
            {
                printf("咱出石头!\n咱赢了。\n");
                a[0][0]++;
                m++;
            }    
            else if(b==2)
            {
                printf("咱出剪刀!\n打平。\n");
                a[0][1]++;
            }
            else if(b==3)
            {
                printf("咱出布!\n猪头!打不过刘备都!\n");
                z++;
                a[0][2]++;
            }
        }
        else if(c==3)
        {
            printf("刘备出布!");
            a[1][2]++;
            if(b==1)
            {
                printf("咱出石头!\n笨蛋!\n");
                z++;
                a[0][0]++;
            }
            else if(b==2)
            {
                printf("咱出剪刀!\n咱赢了。\n");
                m++; 
                a[0][1]++;
            }
            else if(b==3)
            {
                printf("咱出布!\n打平。\n");
                a[0][2]++;
            }
        }
        if(b!=1&&b!=2&&b!=3)
            break;
        printf("是否开始下一轮?(y/n)");
        getchar();
        ch=getchar(); 
    }
    printf("\n刘备 VS 王子:累计出拳统计\n姓名\t石头\t剪刀\t布\n王子");
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
            printf("\t%d",a[i][j]); 
        if(i==0)
            printf("\n刘备");    
    }
    printf("\n\n\n刘备 VS 王子\n对战次数:%d\n\n",n);
    printf("姓名\t得分\n王子\t%d\n刘备\t%d\n\n\n",m,z);
    if(m>z)
        printf("恭喜恭喜!\n");
    else
        printf("加油!\n"); 
    
}

void sun(int a[2][3],int i,int j)
{
    int n=0,m=0,b,c,z=0; 
    char ch;
    printf("要开始吗?(y/n)");
    getchar();
    ch=getchar();
    while(ch=='y')
    {
        c=rand()%3+1;
        printf("请出拳:1、石头 2、剪刀 3、布(输入对应数字):\n");
        scanf("%d",&b);
        n++;
        if(c==1)
        {
            
            printf("孙权出石头!");
            a[1][0]++;
            if(b==1)
            {
                printf("咱出石头!\n平手。\n");
                a[0][0]++;
            }
            else if(b==2)
            {
                printf("咱出剪刀!\n哎呀输了。\n");
                z++;
                a[0][1]++;
            }
            else if(b==3)
            {
                printf("咱出布!\n赢了。\n");
                a[0][2]++;
                m++;
            }
                
        }
        else if(c==2)
        {
            printf("孙权出剪刀!");
            a[1][1]++;
            if(b==1)
            {
                printf("咱出石头!\n赢了。\n");
                a[0][0]++;
                m++;
            }    
            else if(b==2)
            {
                printf("咱出剪刀!\n平手。\n");
                a[0][1]++;
            }
            else if(b==3)
            {
                printf("咱出布!\n哎呀输了!\n");
                z++;
                a[0][2]++;
            }
        }
        else if(c==3)
        {
            printf("孙权出布!");
            a[1][2]++;
            if(b==1)
            {
                printf("咱出石头!\n哎呀输了!\n");
                z++;
                a[0][0]++;
            }
            else if(b==2)
            {
                printf("咱出剪刀!\n赢了。\n");
                m++;
                a[0][1]++;
            }
            else if(b==3)
            {
                printf("咱出布!\n平手。\n");
                a[0][2]++;
            }
        }
        if(b!=1&&b!=2&&b!=3)
            break;
        printf("是否开始下一轮?(y/n)");
        getchar();
        ch=getchar(); 
    }
    printf("\n孙权 VS 王子:累计出拳统计\n姓名\t石头\t剪刀\t布\n王子");
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
            printf("\t%d",a[i][j]); 
        if(i==0)
            printf("\n孙权");    
    }
    printf("\n\n\n孙权 VS 王子\n对战次数:%d\n\n",n);
    printf("姓名\t得分\n王子\t%d\n孙权\t%d\n\n\n",m,z);
    if(m>z)
        printf("恭喜恭喜!\n");
    else
        printf("加油!\n"); 
    
}


void cc(int a[2][3],int i,int j)
{
    int n=0,m=0,b,c,z=0; 
    char ch;
    printf("要开始吗?(y/n)");
    getchar();
    ch=getchar();
    while(ch=='y')
    {
        c=rand()%3+1;
        //printf("%d",a); 
        printf("请出拳:1、石头 2、剪刀 3、布(输入对应数字):\n");
        scanf("%d",&b);
        n++;
        if(c==1)
        {
            
            printf("曹操出石头!");
            a[1][0]++;
            if(b==1)
            {
                printf("咱出石头!\n平手。\n");
                a[0][0]++;
            }
            else if(b==2)
            {
                printf("咱出剪刀!\n哎呀输了\n");
                z++;
                a[0][1]++;
            }
            else if(b==3)
            {
                printf("咱出布!\n赢了。\n");
                a[0][2]++;
                m++;
            }
                
        }
        else if(c==2)
        {
            printf("曹操出剪刀!");
            a[1][1]++;
            if(b==1)
            {
                printf("咱出石头!\n赢了。\n");
                a[0][0]++;
                m++;
            }    
            else if(b==2)
            {
                printf("咱出剪刀!\n平手。\n");
                a[0][1]++;
            }
            else if(b==3)
            {
                printf("咱出布!\n哎呀输了!\n");
                z++;
                a[0][2]++;
            }
        }
        else if(c==3)
        {
            printf("曹操出布!");
            a[1][2]++;
            if(b==1)
            {
                printf("咱出石头!\n哎呀输了!\n");
                z++;
                a[0][0]++;
            }
            else if(b==2)
            {
                printf("咱出剪刀!\n赢了。\n");
                m++;
                a[0][1]++;
            }
            else if(b==3)
            {
                printf("咱出布!\n平手。\n");
                a[0][2]++;
            }
        }
        if(b!=1&&b!=2&&b!=3)
            break;
        printf("是否开始下一轮?(y/n)");
        getchar();
        ch=getchar(); 
    }
    printf("\n曹操 VS 王子:累计出拳统计\n姓名\t石头\t剪刀\t布\n王子");
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
            printf("\t%d",a[i][j]); 
        if(i==0)
            printf("\n曹操");    
    }
    printf("\n\n\n曹操 VS 王子\n对战次数:%d\n\n",n);
    printf("姓名\t得分\n王子\t%d\n曹操\t%d\n\n\n",m,z);
    if(m>z)
        printf("恭喜恭喜!\n");
    else
        printf("加油!\n"); 
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值