C语言剪刀石头布小游戏

xiaoxiao2021-02-28  116

#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"); }
转载请注明原文地址: https://www.6miu.com/read-22947.html

最新回复(0)