#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("
if(n==1)//选择人机模式
{
printjf();
scanf("
if(m==2)
rjw(m);
if(m==1)
rjs(m);
}
if(n==2)//选择人人模式
{
printjf();
scanf("
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()
printf("
\t\t\t\t 请 您 输 入 : ");
scanf("
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()
printf("
\t\t\t\t 请 您 输 入 : ");
scanf("
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("
printf("
\t\t\t\t 用户2请输入: ");
scanf("
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("
printf("
\t\t\t\t 用户2请输入: ");
scanf("
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 | 您获得分数 |
printf("
\t\t\t\t ---------------------|--------------------
\n");
printf("
\t\t\t\t | 对方分数 |
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获得的分数 |
printf("
\t\t\t\t ---------------------|--------------------
\n");
printf("
\t\t\t\t | 玩家2获得的分数 |
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");
}