《猜拳游戏》
综合案例《猜拳游戏》
-
需求:
本游戏是一款单机游戏,人机交互
-
规则:
-
需要双方出拳:石头、剪刀、布
- 赢:
- 石头 → 剪刀
- 剪刀 → 布
- 布 → 石头
- 平:
- 两边出拳相等
- 输:
- …
- 赢:
-
实现:
- 选择对手
- 玩家出拳
- 对手出拳
- 判断胜负
- 游戏退出
-
代码
/*************************************************************************> File Name: demo01.c> Author: 彭波钛> Description: > Created Time: 2025年05月12日 星期一 09时40分07秒************************************************************************/#include <stdio.h> #include <stdlib.h> #include <time.h>int main(int argc,char *argv[]) {//初始化随机数种子(以时间作为随机数种子)srand((unsigned)time(NULL));//游戏主循环控制(默认是可以重复玩)int game_running = 1;//游戏的头printf("====================================\n");printf("== 猜拳游戏 V1.0 ==\n");printf("== 作者:AAA ==\n");printf("====================================\n");while(game_running){//1.选择对手//创建一个变量,用来存储对手对应的序号int opponent; while(1){printf("\n选择对手:(1)哪吒 (2)敖丙 (3)敖闰:\n");//处理非数字输入if (scanf("%d", &opponent) != 1){//清空输入缓冲区非法字符while(getchar() != '\n');printf("请输入数字1-3!\n");continue;}//验证输入法范围if (opponent >= 1 && opponent <= 3) break;printf("选择无效,请重新输入!\n");}//显示对手信息 使用const修饰的变量还是变量,只不过不能再次改变const char* opponent_name = opponent == 1 ? "哪吒" : opponent == 2 ? "敖丙" : "敖闰";printf("对手:%s\n", opponent_name);//2.玩家出拳头=//创建以一个变量,用来存储玩家自己的出拳的序号int player_gesture;while(1){printf("\n请出拳:(1)石头 (2)剪刀 (3)布:\n");//非法字符输入校验if(scanf("%d", &player_gesture) != 1){//清空输入缓冲区中的所有字符while(getchar() != '\n');printf("请输入数字1~3!\n");continue;}//输入范围校验if(player_gesture >=1 && player_gesture <= 3) break;printf("无效选择,请重新输入!\n");}//显示玩家出拳信息:const char* player_gesture_name = player_gesture == 1 ? "石头" : player_gesture == 2 ? "剪刀" : "布";printf("您出:%s\n", player_gesture_name);//3.对手出拳//创建一个变量,作为对手的出拳序号,这个序号需要1~3int computer_gesture = rand() % 3 + 1;const char* computer_gesture_name = computer_gesture == 1 ? "石头" : computer_gesture == 2 ? "剪刀" : "布";printf("%s出:%s\n", opponent_name, computer_gesture_name);//4.判断胜负(双方PK)//创建一个变量,用来存储比比较的结果int result = (player_gesture - computer_gesture + 3) % 3;printf("战况:");if(result == 0) printf("平局!\n");else if (result == 1) printf("您输了!\n");else printf("您赢了!\n");//5.游戏退出printf("\n继续游戏?[Y/N] ");//清理输入缓冲区,防止之前遗留的\n字符类型的变量读取while (getchar() != '\n');//获取键盘输入char choice = getchar(); //等价于char choice; scanf("%c", &choice);//修改循环状态game_running = choice == 'Y' || choice == 'y' ? 1 : 0;}printf("\n游戏结束!\n");return 0; }
-
运行效果
相关文章:
《猜拳游戏》
综合案例《猜拳游戏》 需求: 本游戏是一款单机游戏,人机交互 规则: 需要双方出拳:石头、剪刀、布 赢: 石头 → 剪刀剪刀 → 布布 → 石头 平: 两边出拳相等 输: … 实现: 选择对…...
Mysql索引优化
一、索引 1. 主键索引(Primary Index) 定义 主键索引是一种特殊的唯一索引,用于唯一标识表中的每一行数据。每个表最多有一个主键索引,且索引列不允许为 NULL,自动添加 UNIQUE 和 NOT NULL 约束。 特点:…...
Postgresql与openguass对比
背景介绍 PostgreSQL是世界上最先进的开源关系型数据库,以其强大的功能、稳定性和可扩展性著称。而openGauss是华为公司于2020年6月30日开源的数据库系统,内核基于PostgreSQL 9.2.4版本演进而来。值得注意的是,PostgreSQL 11.3版本拥有290个数…...
线程的概念和控制
自从20世纪60年代提出了进程的概念之后,操作系统一直以进程作为独立运行的基本单位。到了20世纪80年代,人们又提出了比进程更小的、能独立运行的基本单位——线程。提出线程的目的是试图提高系统并发执行的程度,从而进一步提高系统的吞吐量。…...
如何配置activemq,支持使用wss协议连接。
1、到阿里云申请一个证书,通过后下载jks证书。 2、配置activemq: 打开activemq安装目录中“conf/activemq.xml”,增加以下记录: <transportConnectors> <transportConnector name"wss" uri"…...
【言语】刷题3
front:刷题2 题干 超限效应介绍冰桶挑战要避免超限效应 B明星的作用只是病痛挑战的一个因素,把握程度才是重点,不是强化弱化明星作用,排除 A虽没有超限效应,但是唯一的点出“冰桶效应”的选项,“作秀之嫌…...
关于 ast: Babel AST 全类型总览
AST 的每个节点都有一个 type 字段,用来标识它的语法类型。 程序结构节点 type说明示例Program整个程序的根节点整体代码结构BlockStatement大括号代码块 {}if、function、for 等的主体ExpressionStatement表达式语句(如 a b;)EmptyStatem…...
STM32 内存
根据STM32的存储器映射机制,其32位地址总线可访问4GB逻辑地址空间(0x00000000-0xFFFFFFFF),但实际物理地址分配由芯片厂商定义。以下是STM32完整的地址映射结构及关键区域说明: 一、地址空间整体架构 4GB地址空间划分…...
图片的require问题
问题 <template><!--第一种方式--><img :src"require(/assets/${imageName})" style"width:100px;" /><!--第二种方式--><img :src"require(imageUrl)" style"width:100px;" /> </template><…...
关于 js:8. 反调试与混淆识别
一、常见反调试手段识别 1. debugger 死循环(阻塞调试器) 样例代码: while (true) {debugger; }原理: 每次执行到 debugger 语句,如果 DevTools 打开,将自动触发断点。 如果在死循环中,调试…...
深度Q网络(DQN)的基本概念
一、深度Q网络(DQN)的基本概念 深度Q网络(Deep Q-Network,DQN)是将强化学习中的Q学习(Q-Learning)与深度学习相结合的算法,由DeepMind在2013年提出,并在2015年发表于《Nature》杂志。它通过神经网络近似动作价值函数(Q函数),解决传统Q学习在高维状态空间下的计算难…...
uniapp+vue3中自动导入ref等依赖
前言: 在我们使用uni-appvue3创建项目,开发的过程中,老是需要导入我们的ref、onshow等,那么能不能自动导入,不用我们每个页面都写呢?是没问题的,这里让他的小帮手来帮你减轻负担:他就…...
合肥SMT贴片加工核心优势与工艺升级
内容概要 在电子制造领域,工艺精度与生产效率的平衡始终是企业关注的核心命题。本文将系统呈现合肥SMT贴片加工产业的技术演进图谱,为寻求制造升级的企业提供可落地的决策参考。 作为长三角电子制造集群的重要节点,合肥SMT贴片加工产业通过持…...
Ansible安装与核心模块实战指南
Ansible安装与核心模块实战指南 自动化运维入门:从安装到模块化任务配置 Ansible作为一款无代理自动化工具,通过模块化设计实现高效管理,尤其适用于快速部署、配置和维护大规模系统。本文将从安装、核心模块使用到实际案例,全面解析其核心功能与最佳实践。 一、Ansible安装…...
TDengine 做为 Spark 数据源
简介 Apache Spark 是开源大数据处理引擎,它基于内存计算,可用于批、流处理、机器学习、图计算等多种场景,支持 MapReduce 计算模型及丰富计算操作符、函数等,在大超大规模数据上具有强大的分布式处理计算能力。 通过 TDengine …...
Codeforces Round 997 (Div. 2)
A. Shape Perimeter 题目大意 给你一个m*m的正方形,再给你n个坐标表示每次在xy移动的距离(第一个坐标是初始位置正方形左下角),问路径图形的周长 解题思路 记录好第一次的位置之后一直累加最后求总移动距离的差值即可 代码实…...
WSL 安装 Debian 12 后,Linux 如何安装 nginx ?
在 WSL 的 Debian 12 中安装 Nginx 的步骤如下: 1. 更新系统软件包 sudo apt update && sudo apt upgrade -y2. 安装 Nginx sudo apt install nginx -y3. 管理 Nginx 服务 ▶ 启动 Nginx sudo service nginx start # 如果使用 systemd 可能需改用&…...
目标检测任务 - 数据增强
目标检测任务 - DETR : 数据预处理/数据增强 算法源码实例 import datasets.transforms as Tnormalize T.Compose([T.ToTensor(),T.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ])scales [480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800]…...
java的switch case
import java.util.Scanner;public class Hello {public static void main(String[] args) {Scanner in new Scanner(System.in);int type in.nextInt();switch(type){case 1:case 2:System.out.println("你好");break;case 3:System.out.println("晚上好"…...
基于亚博K210开发板——LCD触摸屏读取坐标数据测试
开发板 亚博K210开发板 实验目的 主要学习 K210 通过 I2C 读取触摸屏的坐标,并打印出来,显示在 LCD上。 实验准备 实验元件 LCD 显示屏触摸板 元件特性 K210 开发板自带 2.0 寸触摸屏,其实是 LCD 显示屏上贴一个触摸板组成…...
coze平台实现文生视频和图生视频(阿里云版)工作流
工作流全貌 开始 首先从入参开始: api_key:来自阿里云百炼平台,自行去申请 prompt:生成视频的文本提示词。支持中英文,长度不超过800个字符,每个汉字/字母占一个字符,超过部分会自动截断。 …...
python酒店健身俱乐部管理系统
目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理,难度适中…...
QtGUI模块功能详细说明,图标和光标(七)
目录 一.窗口和屏幕管理 二. 绘图和渲染 三. 图像处理 四. 字体和文本 五. 事件和输入处理 六. OpenGL 和硬件加速 七. 颜色和外观 八. 图标和光标 1、QIcon: 图标管理 1.1、QIcon 简介 1.2、图标的来源与创建 1.3、多分辨率与 DPI 支持 1.4、图标的状态管理 2、…...
【图像处理基石】如何入门OCR技术?
入门OCR(Optical Character Recognition,光学字符识别)技术需要结合理论学习、工具实践和项目实战,以下是分步骤的学习指南,适合零基础学习者: 一、明确OCR技术的核心概念 OCR的基本原理 核心流程…...
数据库知识沉浸式游戏化学习设计研究
数据库知识沉浸式游戏化学习设计研究 摘要: 本研究旨在设计一款以数据库知识为主题的沉浸式游戏化学习系统。通过对数据库知识体系的深入剖析,结合游戏化学习理论,构建了一个多层次、多任务的游戏架构。玩家在游戏过程中需完成构建数据库结构、编写 SQL 查询等任务来解锁关…...
大疆无人机
在大疆上云API中,DRC 链路通常指 Device-Cloud Remote Control Link(设备-云端远程控制链路),它是无人机(或设备)与云端服务之间建立的实时控制与数据传输通道,用于实现…...
撤回不了一点 v1.0.2,支持微信QQ钉钉飞书等消息防撤回
如今生活节奏快得飞起,社交软件和工作通讯软件成了咱日常交流的核心阵地。大家肯定都有过这些闹心事儿:和朋友聊得正嗨,对方突然撤回一条消息,好奇心瞬间爆棚,却怎么也看不到撤回的内容;工作群里关键信息刚…...
什么是Git?
“Git”是目前非常火、广泛使用的版本控制系统,尤其在软件开发领域中扮演着核心角色。 一、什么是Git?它到底是什么? Git 是一种版本控制系统(Version Control System, VCS)。它的主要作用是帮助开发者管理“代码的不…...
微信小程序 自定义图片分享-绘制数据图片以及信息文字
一 、需求 从数据库中读取头像,姓名电话等信息,当分享给女朋友时,每个信息不一样 二、实现方案 1、先将数据库中需要的头像姓名信息读取出来加载到data 数据项中 data:{firstName:, // 姓名img:, // 头像shareImage:,// 存储临时图片 } 2…...
langchain提示词的使用
一、概述 提示词是指向人工智能大模型提供的输入信息,通常包含关键词、问题或指令,可以引导大模型生成与用户期望相符的回应。我们在豆包,DeepSeek等大模型中输入的问题都可以认为一个简单的提示词,不过为了真正得到我们需要的结…...
C语言| extern的用法作用
C语言| 局部变量、全局变量 extern定义的变量,只对全局变量有用。 掌握extern的用法及其作用。extern主要用于在不同.c文件间扩展全局变量的作用范围。 扩展全局变量的使用范围,操作方法: 1 在一个文件内扩展全局变量的使用范围 全局变量…...
Rust 环境变量管理秘籍:从菜鸟到老鸟都爱的 dotenv 教程
前言 写代码的你,是否遭遇过这些灵魂拷问: “我现在在哪个环境?开发?测试?还是直接在生产线上裸奔?”“少写一个 .env,测试脚本在数据库里上演清空大法,客户当场破防。”“每次手动设置 RUST_ENV,命令敲到一半就开始怀疑人生,还怕输错一个字符引发灭世级事故。”别慌…...
Leetcode (力扣)做题记录 hot100(49,136,169,20)
力扣第49题:字母异位词分组 49. 字母异位词分组 - 力扣(LeetCode) 遍历数组,将每一个字符串变成char数组 然后排序,如果map里面有则将他的值返回来(key是排序好的字符串) class Solution {pu…...
Slitaz 系统深度解析
Slitaz 系统深度解析:从系统架构到设计哲学 一、系统定位与核心目标 Slitaz(Simplified Lightweight IT Automatic Zen)是一个基于 Linux 的超轻量级发行版,设计目标是极致轻量化、快速启动、低资源消耗,专为老旧硬件…...
Deepseek+Xmind:秒速生成思维导图与流程图
deepseekxmind,快速生成思维导图和流程图 文章目录 思维导图deepseek笔记本 txt文件xmind 流程图deepseekdraw.io 思维导图 deepseek 笔记本 txt文件 将deep seek的东西复制到文本文件中,然后将txt文件拓展名改成md xmind 新建思维导图----左上角三…...
理解计算机系统_并发编程(5)_基于线程的并发(二):线程api和基于线程的并发服务器
前言 以<深入理解计算机系统>(以下称“本书”)内容为基础,对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定 引入 接续上一篇理解计算机系统_并发编程(4)_基于线程的并发(一…...
java刷题基础知识
List<int[]> merged new ArrayList<int[]>(); return merged.toArray(new int[merged.size()][]); 表示一个存储 int[] 类型元素的列表,list灵活支持扩展,因为不知道最后有几个区间,所以用list,最后toArray返回成数组…...
MATLAB语音情感识别神经网络方法
在MATLAB中使用神经网络进行语音情感识别通常涉及以下步骤:数据准备、特征提取、神经网络模型构建、训练与评估。以下是详细说明和示例代码: 1. 数据准备 数据集:推荐使用公开情感语音数据集(如RAVDESS、CREMA-D、EMODB等&#x…...
PostgreSQL 服务器信号函数
PostgreSQL 服务器信号函数 PostgreSQL 提供了一组服务器信号函数(Server Signaling Functions),允许数据库管理员向 PostgreSQL 服务器进程发送特定信号以控制服务器行为。这些函数提供了对数据库服务器的精细控制能力。 一、核心信号函数…...
流动式起重机Q2的培训内容有哪些?
流动式起重机 Q2 的培训内容主要分为理论知识和实际操作两部分,具体如下: 理论知识 基础理论知识:涵盖机械原理、液压原理、电气原理等内容,帮助学员理解起重机的基本工作原理。例如,通过机械原理知识,学员…...
虹科应用 | 探索PCAN卡与医疗机器人的革命性结合
随着医疗技术的不断进步,医疗机器人在提高手术精度、减少感染风险以及提升患者护理质量方面发挥着越来越重要的作用。医疗机器人的精确操作依赖于稳定且高效的数据通信系统,虹科提供的PCAN四通道mini PCIe转CAN FD卡,正是为了满足这一需求而设…...
Linux系统编程---Signal信号集
0、前言 在上一篇博客笔记文章中,对Linux进程间通信的信号进行了讲解,本章将接着上一篇文章的内容,继续对Linux进程间通信中信号部分的信号集这个小知识点进行梳理。 如果有对Linux系统编程有不了解的地方,欢迎查阅博主的Linux系统…...
上电单次复位触发电路
SA1相当于是另外一个触发信号,S2A是手动触发信号,当S1A和S2A开关都断开时,示波器A入口所连接线路为上拉状态,高电平为3V。 当S2A闭合,相当于手动拉低,可以用于唤醒单片机之类的。 当S1A闭合,模拟电源接入&…...
talk-linux 不同用户之间终端通信
好的!下面是一个完整的指南和脚本,用于在两台 Linux 主机上配置并使用 talk 聊天功能(假设它们在同一个局域网内)。 ⸻ 🧾 一、需求说明 我们需要在两台主机上: 1. 安装 talk 和 talkd 2. 启用 talkd 服…...
QGIS 将 Shapefile 导入 PostGIS 数据库
一、背景介绍:QGIS、PostgreSQL 和 PostGIS 的关系和用途 在开始动手操作之前,我们先简单了解一下 QGIS、PostgreSQL 和 PostGIS 之间的关系及其用途。 QGIS(Quantum GIS):一款开源免费的桌面地理信息系统࿰…...
《内网渗透测试:绕过最新防火墙策略》
内网渗透测试是检验企业网络安全防御体系有效性的核心手段,而现代防火墙策略的持续演进(如零信任架构、AI流量分析、深度包检测)对攻击者提出了更高挑战。本文系统解析2024年新型防火墙的防护机制,聚焦协议隐蔽隧道、上下文感知绕…...
CSS结构性伪类、UI伪类与动态伪类全解析:从文档结构到交互状态的精准选择
一、结构性伪类选择器:文档树中的位置导航器 结构性伪类选择器是CSS中基于元素在HTML文档树中的层级关系、位置索引或结构特征进行匹配的一类选择器。它们无需依赖具体的类名或ID,仅通过文档结构即可精准定位元素,是实现响应式布局和复杂文档…...
【大模型LLM学习】MiniCPM的注意力机制学习
【大模型LLM学习】MiniCPM的注意力机制学习 前言1 Preliminary1.1 MHA1.2 KV-cache 2 GQAGQA的MiniCPM实现 3 MLAMLA的MiniCPM-3-4b的实现 TODO 前言 之前MiniCPM3-4B是最早达到gpt-3.5能力的端侧小模型,其注意力机制使用了MLA。本来想借着MiniCPM从MHA过到MLA的&am…...
stm32之PWR、WDG
目录 1.PWR1.1 简介1.2 电源框图1.3 上电复位和掉电复位1.4 可编程电压监测器1.5 低功耗模式1.5.1 模式选择1.5.2 睡眠模式1.5.3 停止模式1.5.4 待机模式 1.6 实验1.6.1 修改主频1.6.2 睡眠模式串口发送接收1.6.3 停止模式对射式红外传感器计次1.6.4 待机模式实时时钟 2.看门狗…...
分布式任务调度XXL-Job
XXL-Job 是一款轻量级、分布式的任务调度平台,其核心设计解决了传统任务调度(如Quartz)在分布式场景下的任务分片、高可用、可视化管控等痛点。以下从原理、核心架构、应用场景、代码示例及关联中间件展开详解 一、主流任务…...