C语言程序游戏:剪刀-石头-布
游戏规则,剪刀赢布,布赢石头,石头赢剪刀,出的相同则平局。设计思路:程序生成随机数,随机数在[0,RAND_MAX/3)之间表示出石头,在[RAND_MAX/3, 2RAND_MAX/3] 之间表示出剪刀,在(2RAND_MAX/3, RAND_MAX]之间表示出布;提示用户输入 1(石头)、2(剪刀)或 3(布);判断用户输赢,输出结果。注意:程序要处理用户错误和恶意的输入。
可反复玩,直到用户输入程序结束指令为止。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int a;
a=-1;
printf("*********************************\n");
printf(" 欢迎来玩 石头、剪刀、布 \n");
printf("*********************************\n");
while(a!=0){
int s=rand();
void randnum(int y);
randnum(s);
printf("是否继续?是输入1,否输入0:");
int ret=scanf("%d",&a);
if(ret==0||a>=2){
exit(1);
}
s=0;
}
printf("**********谢谢使用本程序*********");
exit(1);
printf("\n");
system("pause");
return 0;
}
void randnum(int y){
int x;
printf("请输入1、2或3(3-石头,2-剪刀,1-布):");
scanf("%d",&x);
if(y>=0&&y<RAND_MAX/3){
printf("机器:石头 <> ");
if(x==1){
printf("您:布\n");
printf("^:^赢了^:^\n\n");
}else if(x==2){
printf("您:剪刀\n");
printf("^:^输了!^:^\n\n");
}else if(x==3){
printf("您:石头\n");
printf("^:^平手!^:^\n\n");
}
}else if(y>=RAND_MAX/3&&y<=2*RAND_MAX/3){
printf("机器:剪刀 <> ");
if(x==1){
printf("您:布\n");
printf("^:^输了!^:^\n\n");
}else if(x==2){
printf("您:剪刀\n");
printf("^:^平手!^:^\n\n");
}else if(x==3){
printf("您:石头\n");
printf("^:^赢了^:^\n\n");
}
}else if(y>2*RAND_MAX/3&&y<=RAND_MAX){
printf("机器:布 <> ");
if(x==1){
printf("您:布\n");
printf("^:^平手!^:^\n\n");
}else if(x==2){
printf("您:剪刀\n");
printf("^:^赢了^:^\n\n");
}else if(x==3){
printf("您:石头\n");
printf("^:^输了!^:^\n\n");
}
}
}
- 运行效果