C语言剪刀石头布小游戏

来源:互联网 发布:nature数据库检索方法 编辑:程序博客网 时间:2024/05/18 04:59
#include<stdio.h>#include<stdlib.h>#include<time.h>int n,m;int main(){    void printMenu(void);    void printjf(void);    void rjs(int m);    void rjw(int m);    void rrs(int m);    void rrw(int m);    printMenu();    scanf("%d",&n);    if(n==1)//选择人机模式    {        printjf();        scanf("%d",&m);        if(m==2)            rjw(m);        if(m==1)            rjs(m);    }    if(n==2)//选择人人模式    {        printjf();        scanf("%d",&m);        if(m==2)            rrw(m);        if(m==1)            rrs(m);    }    return 0;}void printMenu(void)//为用户输出提示{    printf("\t\t\t\t       -------------------------------------------\n");    printf("\t\t\t\t      |               石头剪刀布游戏              |\n");    printf("\t\t\t\t      |        ----------------------------       |\n");    printf("\t\t\t\t      |                                           |\n");    printf("\t\t\t\t      | 说明:                                     |\n");    printf("\t\t\t\t      |      此小游戏是用C语言实现的结构化程序    |\n");    printf("\t\t\t\t      |      设计,能够实现用户和电脑相互对玩的    |\n");    printf("\t\t\t\t      |      过程,其中用户的出拳在下面有说明     |\n");    printf("\t\t\t\t      |                                           |\n");    printf("\t\t\t\t      | 对战模式:                                 |\n");    printf("\t\t\t\t      |                                           |\n");    printf("\t\t\t\t      |       1==人机模式      2==人人模式        |\n");    printf("\t\t\t\t      |                                           |\n");    printf("\t\t\t\t       -------------------------------------------\n\n");    printf("\t\t\t\t                  您 选 择 的 模 式 :   ");}void printjf(void)//选择战局次数{    printf("\t\t\t\t       -------------------------------------------\n");    printf("\t\t\t\t      |                                           |\n");    printf("\t\t\t\t      |   计分模式:                               |\n");    printf("\t\t\t\t      |                                           |\n");    printf("\t\t\t\t      |                1==三局两胜                |\n");    printf("\t\t\t\t      |                                           |\n");    printf("\t\t\t\t      |                2==五局三胜                |\n");    printf("\t\t\t\t      |                                           |\n");    printf("\t\t\t\t       -------------------------------------------\n");    printf("\t\t\t\t                  您 选 择 的 模 式 :   ");}void rjs(int m)//人机模式下三局两胜{    void compare1(int computer,int people);    int i,computer,people,S=0,a;    computer=0;    people=0;    printf("\t\t\t\t      |       0-剪刀  1-石头  2-布                |\n");    for(i=0; i<3; i++)    {        srand(time(NULL));        S=rand()%3;        printf("\t\t\t\t            请 您 输 入 :          ");        scanf("%d",&a);        if(a==S)            printf("\t\t\t\t       -------------------打平啦------------------\n");        if(S==0&&a==2||S==1&&a==0||S==2&&a==1)        {            printf("\t\t\t\t       ---------------- 对方获得1分 --------------\n");            computer=computer+1;        }        if(a==0&&S==2||a==1&&S==0||a==2&&S==1)        {            printf("\t\t\t\t       ----------------- 您获得1分 --------------\n");            people=people+1;        }    }    compare1(computer,people);}void rjw(int m)//人机模式下五局三胜{    void compare1(int computer,int people);    int i,computer,people,S=0,a;    computer=0;    people=0;    for(i=0; i<5; i++)    {        srand(time(NULL));        S=rand()%3;        printf("\t\t\t\t            请 您 输 入 :          ");        scanf("%d",&a);        if(a==S)            printf("\t\t\t\t       -------------------打平啦------------------\n");        if(S==0&&a==2||S==1&&a==0||S==2&&a==1)        {            printf("\t\t\t\t       ---------------- 对方获得1分 --------------\n");            computer=computer+1;        }        if(a==0&&S==2||a==1&&S==0||a==2&&S==1)        {            printf("\t\t\t\t       ----------------- 您获得1分 --------------\n");            people=people+1;        }    }    compare1(computer,people);}void rrs(int m)//人人模式下三局两胜{    void compare2(int user1,int user2);    int a,b,i,user1,user2;    printf("\t\t\t\t      |       0-剪刀  1-石头  2-布                |\n");    user1=0;    user2=0;    for(i=0; i<3; i++)    {        printf("\t\t\t\t        用户1请输入:            ");        scanf("%d",&a);        printf("\t\t\t\t        用户2请输入:            ");        scanf("%d",&b);        if(a==b)            printf("\t\t\t\t       -------------------打平啦------------------\n");        if(a==0&&b==2||a==1&&b==0||a==2&&b==1)        {            printf("\t\t\t\t       ---------------- 玩家1得一分 --------------\n");            user1=user1+1;        }        if(b==0&&a==2||b==1&&a==0||b==2&&a==1)        {            printf("\t\t\t\t       ---------------- 玩家2得一分 --------------\n");            user2=user2+1;        }    }    compare2(user1,user2);}void rrw(int m)//人人模式下三局两胜{    void compare2(int user1,int user2);    int a,b,i,user1,user2;    printf("\t\t\t\t      |       0-剪刀  1-石头  2-布                |\n");    user1=0;    user2=0;    for(i=0; i<5; i++)    {        printf("\t\t\t\t        用户1请输入:            ");        scanf("%d",&a);        printf("\t\t\t\t        用户2请输入:            ");        scanf("%d",&b);        printf("\t\t\t\t       ------------------- 结果 ------------------\n");        if(a==b)            printf("\t\t\t\t       -------------------打平啦------------------\n");        if(a==0&&b==2||a==1&&b==0||a==2&&b==1)        {            printf("\t\t\t\t       ---------------- 玩家1得一分 --------------\n");            user1=user1+1;        }        if(b==0&&a==2||b==1&&a==0||b==2&&a==1)        {            printf("\t\t\t\t       ---------------- 玩家2得一分 --------------\n");            user2=user2+1;        }    }    compare2(user1,user2);}void compare1(int computer,int people)//输出结果{    printf("\n\n");    printf("\t\t\t\t       ------------------- 结果 ------------------\n");    printf("\t\t\t\t      |                  战绩如下                 |\n");    printf("\t\t\t\t       ---------------------|-------------------- \n");    printf("\t\t\t\t      |     您获得分数      |         %d 分        |\n",people);    printf("\t\t\t\t       ---------------------|-------------------- \n");    printf("\t\t\t\t      |      对方分数       |         %d 分        |\n",computer);    printf("\t\t\t\t       ---------------------|-------------------- \n");    if(computer==people)        printf("\t\t\t\t      |                双方打成平手               |\n");    else if(computer<people)        printf("\t\t\t\t      |            对手输掉比赛,您获胜            |\n");    else        printf("\t\t\t\t      |             您输掉比赛,对手获胜           |\n");    printf("\t\t\t\t       ---------------------|-------------------- \n");}void compare2(int user1,int user2)//输出结果{    printf("\n\n");    printf("\t\t\t\t       ------------------- 结果 ------------------\n");    printf("\t\t\t\t      |                  战绩如下                 |\n");    printf("\t\t\t\t       ---------------------|-------------------- \n");    printf("\t\t\t\t      |   玩家1获得的分数   |         %d 分        |\n",user1);    printf("\t\t\t\t       ---------------------|-------------------- \n");    printf("\t\t\t\t      |   玩家2获得的分数   |         %d 分        |\n",user2);    printf("\t\t\t\t       ---------------------|-------------------- \n");    if(user1==user2)        printf("\t\t\t\t      |                双方打成平手               |\n");    else if(user1<user2)        printf("\t\t\t\t      |                 玩家2获胜                 |\n");    else        printf("\t\t\t\t      |                 玩家1获胜                 |\n");}
1 0
原创粉丝点击