这种小游戏是写起来很简单的我们直接看代码来理解就行了
最主要一点就是:对于剪刀石头布的编写

#include<stdio.h>
#include<stdlib.h>#define max 100//猜拳游戏在计算机中石头用0表示剪刀用1布用2表示
//使用随机函数来让计算机随机输出int main()
{int p_input;//用户输入int judge;srand(time(NULL));//设置随机种子printf("猜拳游戏开始!\n");do{int pc_input = rand() % 3;//随机输出作为电脑输出0~2printf("\n石头剪刀布:0:石头,1:剪刀,2:布\n");scanf_s("%d", &p_input);switch (pc_input){case 0:printf("石头"); break;case 1:printf("剪刀"); break;case 2:printf("布"); break;}printf("\n");judge = (pc_input - p_input + 3) % 3;//判断条件switch (judge){case 0:printf("平局"); break;case 1:printf("你输了"); break;case 2:printf("你赢了"); break;}} while (1);return 0;
}

2:

#include<stdio.h>
#include<stdlib.h>//猜拳游戏——读取双方手势int main()
{int p_in;int pc_in;int judge;srand(time(NULL));printf("猜拳游戏开始!\n");do{do{pc_in = rand() % 3;//随机输出作为电脑输出0~2printf("\n石头剪刀布:0:石头,1:剪刀,2:布\n");scanf_s("%d", &p_in);} while (p_in < 0 || p_in>2);printf("我出了");switch (pc_in){case 0:printf("石头"); break;case 1:printf("剪刀"); break;case 2:printf("布"); break;}printf("你出了");switch (p_in){case 0:printf("石头"); break;case 1:printf("剪刀"); break;case 2:printf("布"); break;}printf("\n");judge = (pc_in - p_in + 3) % 3;//判断条件switch (judge){case 0:printf("平局"); break;case 1:printf("你输了"); break;case 2:printf("你赢了"); break;}} while (1);
}

3:

#include<stdio.h>
#include<stdlib.h>//猜拳游戏——导入表示手势的字符串int main()
{int p_in;int pc_in;int judge;char retry;char* gesture[] = { "剪刀","石头","布" };srand(time(NULL));printf("猜拳游戏开始!\n");do{pc_in = rand() % 3;//随机输出作为电脑输出0~2do{printf("\n石头剪刀布:");for (int i = 0; i < 3; i++){printf("(%d)%s", i, gesture[i]);}printf(":\n");scanf_s("%d", &p_in);} while (p_in < 0 || p_in>2);printf("我出了%s,你出了%s。\n", gesture[pc_in], gesture[p_in]);printf("\n");judge = (pc_in - p_in + 3) % 3;//判断条件switch (judge){case 0:printf("平局"); break;case 1:printf("你输了"); break;case 2:printf("你赢了"); break;}printf("再来一次吗?(y/n):");scanf_s(" %c", &retry, 1);} while (retry == 'y');
}

4:

#include<stdio.h>
#include<stdlib.h>//猜拳游戏——让计算机后出int main()
{int p_in;int pc_in;int judge;char retry;char* gesture[] = { "剪刀","石头","布" };printf("猜拳游戏开始!\n");do{do{printf("\n石头剪刀布:");for (int i = 0; i < 3; i++){printf("(%d)%s", i, gesture[i]);}printf(":\n");scanf_s("%d", &p_in);} while (p_in < 0 || p_in>2);pc_in = (p_in + 1) % 3;printf("我出了%s,你出了%s。\n", gesture[pc_in], gesture[p_in]);printf("\n");judge = (pc_in - p_in + 3) % 3;//判断条件switch (judge){case 0:printf("平局"); break;case 1:printf("你输了"); break;case 2:printf("你赢了"); break;}printf("再来一次吗?(y/n):");scanf_s(" %c", &retry, 1);} while (retry == 'y');
}

5:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>//猜拳游戏——显示成绩int p_in;
int pc_in;
int judge;
char retry;
int win, lose, same;
char* gesture[] = { "剪刀","石头","布" };void init()
{win = 0;lose = 0;same = 0;srand(time(NULL));printf("猜拳游戏开始!\n");
}void readgesture()
{pc_in = rand() % 3;do{printf("\n石头剪刀布:");for (int i = 0; i < 3; i++){printf("(%d)%s", i, gesture[i]);}printf(":\n");scanf_s("%d", &p_in);} while (p_in < 0 || p_in>2);
}//更新胜利失败和平局
void count(int result)
{switch (result){case 0:same++; break;case 1:lose++; break;case 2:win++; break;}
}//显示判断结果
void show_result(int result)
{switch (result){case 0:puts("平局"); break;case 1:puts("你输了"); break;case 2:puts("你赢了"); break;}
}//确定是否再次挑战
char wanna_retry()
{printf("再来一次吗?(y/n):");scanf_s(" %c", &retry, 1);return retry;
}int main()
{init();do{readgesture();printf("我出了%s,你出了%s。\n", gesture[pc_in], gesture[p_in]);judge = (pc_in - p_in + 3) % 3;//判断条件count(judge);show_result(judge);retry = wanna_retry();} while (retry == 'y');printf("%d胜利,%d失败,%d平局\n", win, lose, same);return 0;
}

6:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>//猜拳游戏——三局两胜int p_in;
int pc_in;
int judge;
char retry;
int win, lose, same;
char* gesture[] = { "剪刀","石头","布" };void init()
{win = 0;lose = 0;same = 0;srand(time(NULL));printf("猜拳游戏开始!\n");
}void readgesture()
{pc_in = rand() % 3;do{printf("\n石头剪刀布:");for (int i = 0; i < 3; i++){printf("(%d)%s", i, gesture[i]);}printf(":\n");scanf_s("%d", &p_in);} while (p_in < 0 || p_in>2);
}//更新胜利失败和平局
void count(int result)
{switch (result){case 0:same++; break;case 1:lose++; break;case 2:win++; break;}
}//显示判断结果
void show_result(int result)
{switch (result){case 0:puts("平局"); break;case 1:puts("你输了"); break;case 2:puts("你赢了"); break;}
}//确定是否再次挑战
char wanna_retry()
{printf("再来一次吗?(y/n):");scanf_s(" %c", &retry, 1);return retry;
}int main()
{init();do{readgesture();printf("我出了%s,你出了%s。\n", gesture[pc_in], gesture[p_in]);judge = (pc_in - p_in + 3) % 3;//判断条件count(judge);show_result(judge);} while (win < 2 && lose < 2);printf("%d胜利,%d失败,%d平局\n", win, lose, same);return 0;
}

程序展示:

C语言基础and进阶——猜拳游戏(6个版本)相关推荐

  1. python基础练习(猜拳游戏、扎金花游戏、购物小程序)

    猜拳游戏 需求分析: * 使用面向对象和python的基础语法,运用简单的逻辑处理实现猜拳游戏 * 要求游戏可以多次玩耍 * 要求统计分数 * 要求可以选择角色 # 玩家自己的类, class Own ...

  2. Java基础练习题7--【猜拳游戏,模拟双色球功能,统计词语次数,判断大写字母,敏感词过滤程序】

    文章目录 1.猜拳游戏 2.模拟双色球摇奖功能 3.统计某个词语的出现次数 4.判断输入的字母是否为大写字母 5.编写敏感词过滤程序 1.猜拳游戏 1表示石头,2表示剪刀,3表示布 接收用户输入的拳 ...

  3. C语言基础及进阶教程(视频教程地址)

    嵌入式高级C语言进阶 C语言概述-01C语言概念.发展历史.特点 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=34635 ...

  4. Python基础:实现猜拳游戏(简单版)

    如图是和电脑来一次简单的石头剪刀布输赢对决,源码如下: import random player = int(input('请出拳:0--石头:1--剪刀:2--布:')) computer = ra ...

  5. Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观

    Java 入门课程视频实战-0基础 已经上传完了.欢迎小伙伴们过来围观 直接进入: http://edu.csdn.net/course/detail/196 课程文件夹例如以下: 1 初识Java  ...

  6. c语言程序设计猜拳小游戏答辩,C语言课程设计猜拳游戏.doc

    C语言程序设计 课程设计(论文) 题目: 院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 课程设计(报告)任务及评语 院(系):软件学院 教研室:软件教研窒 学 号学 ...

  7. Python|装饰器|执行时间|递归|动态属性|静态方法和类|继承和多态|isinstance类型判断|溢出|“魔法”方法|语言基础50课:学习记录(6)-函数的高级应用、面向对象编程、进阶及应用

    文章目录 系列目录 原项目地址: 第16课:函数的高级应用 装饰器(记录执行时间的例子) 递归调用 简单的总结 第17课:面向对象编程入门 类和对象 定义类 创建和使用对象 初始化方法 打印对象 面向 ...

  8. c语言猜拳游戏中出现的关键词,C语言猜拳游戏代码及分析

    赋值操作符.比较操作符.算术操作符.逻辑操作符.位域操作符,如"="."+="">="."<="." ...

  9. c++switch实现猜拳_C语言实现人机猜拳游戏,非常适合C++小白练习的项目!

    学习迷茫遇到问题了吗?现在关注微信公众号:C程序编程 免费获取进阶指导和学习资料! 本文福利在文末! 这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决.你出的拳头由你自己决定,电脑则随机出拳,最后 ...

  10. 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)

    原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...

最新文章

  1. 深入浅出,Spring 框架和 Spring Boot 的故事
  2. English as a medium of instruction
  3. Druid如何自动根据URL自动识别DriverClass的
  4. 数据分析与挖掘实战-中医证型关联规则挖掘
  5. 山东专升本access知识点_全国各省份每年的专升本考试大纲啥时候公布?考纲公布之前你该做什么?...
  6. 那个拒绝北大教授,却坚持留在美国做服务员的数学天才,现状如何
  7. python制作加密工具_Python制作钉钉加密/解密工具
  8. Oracle视图、自定义函数、存储过程、触发器
  9. linux系统切换清华源(自带的源下载速度太拉跨)
  10. 中国政法大学政治与公共管理学院丛日云教授在毕业典礼上的演讲在网络上暴红,
  11. 【译】BMP格式与JPG格式之间的区别
  12. 北京购房攻略(4.17)
  13. C++:CMake常用变量【CMAKE_CXX_FLAGS、CMAKE_BUILD_TYPE、×_BINARY_DIR】
  14. 动态赋值_【东莞CBD】最新动态!整合大地块!打造未来东莞第一高楼!高度按500米赋值...
  15. 每日3词 2021-03-08 【reference】【print】【coding】
  16. 技術的變與不變之間...Silverlight 3.0的驚鴻一撇
  17. 微信小程序父子组件通信详解
  18. Linux:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cann
  19. imx8的源码开发方式非yocto方式(三)——基于imx8的firmware-imx固件包下载与解压
  20. AES加密解密算法设计(C++)

热门文章

  1. 用html打开dbf文件,dbf文件怎么打开?dbf是什么文件?
  2. Java实现搭积木_Java搭积木游戏
  3. 5.android系统裁剪
  4. 香港长和集团开创P2F金融理财新征程
  5. 分式智能计算机在线计算,全能智能计算器
  6. android中的各种 Category
  7. html5课程总结500字,高中月考总结与反思500字(精选5篇)
  8. Taylor Swift looks so much like a supermodel
  9. Excel VBA初级系列培训--课时2
  10. itunes更新失败卸载失败(AppleMobileDeviceSupport6464安装时回滚的解决办法)