抢十八游戏

ops/2025/1/16 13:39:57/

前言

我国民国一直流传着一个名叫“抢十八”的抢数游戏:参与游戏的两人从1开始轮流报数,每次至少报1个数,最多报2个数,每人报的每个数不得与自已报过的或对方报过的重复,也不得跳过任何一个数。谁先报到18,谁就获胜。

玩法策略

在“抢十八”游戏中,取胜的关键在于每次报数时抢到关键数3、6、9、12、15、18‌。具体策略如下:

  1. 关键数策略‌:在“抢十八”游戏中,关键数包括3、6、9、12、15、18。玩家需要确保在每次报数时抢到这些关键数,从而控制游戏的进程。例如,要抢到18,之前必须抢到15,只留给对方3个数;同理,要抢到15,之前必须抢到12,以此类推‌12。

  2. 倒推法‌:通过倒推法可以找到这些关键数。最后要抢到18,之前必须抢到15,再之前必须抢到12,以此类推,直到3。这样,玩家可以确保在每一步都抢到关键数,直到最后抢到18‌23。

  3. 后报数者的优势‌:由于报数顺序决定了最后的结果,后报数者有必胜策略。后报数者每次都需要抢到这些关键数,直到最后抢到18‌23。

通过以上策略,玩家可以在“抢十八”游戏中取得胜利。

思路

此代码是游戏,并无思路。

代码解决

/*头文件部分*/
#include <iostream>
#include <windows.h>
#include <random>
/*定义变量部分*/
using namespace std;
long long number_off, count, target;
long long Number_of_player_victories = 0, Number_of_computer_victories = 0;
/*玩家报数函数部分*/
static void Player_reports() {number_off = 0;while (number_off <= 0) {cout << "当前" << number_off << ",请报增量:";cin >> number_off;if (number_off < 1 || number_off > 2) {cout << "请重新报数";number_off = 0;system("pause");system("cls");}else if (number_off + ::count > target) {cout << "请重新报数";number_off = 0;system("pause");system("cls");}}::count += number_off;cout << "玩家报数:" << ::count;system("pause");system("cls");
}
/*计算机报数函数部分*/
static void Computer_reporting() {if ((target - ::count) % 3 == 2)number_off = 2;elsenumber_off = 1;::count += number_off;cout << "计算机报数:" << ::count;system("pause");system("cls");
}
/*主函数部分*/
int main() {target = 18; //这里可以修改::count = 0;cout << "游戏开始..." << endl;system("pause");system("cls");std::random_device rd;std::mt19937 gen(rd());std::uniform_int_distribution<> distrib(1, 2);int random_number = distrib(gen);if (1 == random_number)Computer_reporting();while (::count != target) {Player_reports();if (::count == target)cout << "你赢了一局!" << endl;else {Computer_reporting();if (::count == target)cout << "计算机赢了一局!" << endl;}}return 0;
}


http://www.ppmy.cn/ops/150565.html

相关文章

C++实现设计模式---原型模式 (Prototype)

原型模式 (Prototype) 原型模式 是一种创建型设计模式&#xff0c;它通过复制现有对象来创建新对象&#xff0c;而不是通过实例化。 意图 使用原型实例指定要创建的对象类型&#xff0c;并通过复制该原型来生成新对象。提供一种高效创建对象的方式&#xff0c;尤其是当对象的…

Spring MVC复杂数据绑定-绑定数组

【图书介绍】《SpringSpring MVCMyBatis从零开始学&#xff08;视频教学版&#xff09;&#xff08;第3版&#xff09;》_【新华文轩】springspring mvcmybatis从零开始学(视频教学版) 第3版 正版-CSDN博客 《SpringSpring MVCMyBatis从零开始学(视频教学版)&#xff08;第3版…

下载文件,浏览器阻止不安全下载

背景&#xff1a; 在项目开发中&#xff0c;遇到需要下载文件的情况&#xff0c;文件类型可能是图片、excell表、pdf、zip等文件类型&#xff0c;但浏览器会阻止不安全的下载链接。 效果展示&#xff1a; 下载文件的两种方式&#xff1a; 一、根据接口的相对url&#xff0c;拼…

Vue.js组件开发-如何自定义Element UI组件

在Vue.js项目中&#xff0c;自定义Element UI组件通常意味着你要基于Element UI的基础组件来创建新的、符合项目需求的组件。这可以通过组合、扩展或封装Element UI的现有组件来实现。 以下是一个基本的步骤指南&#xff1a; 一、准备阶段 ‌1.确保Element UI已安装‌&#…

C++并发编程之std::partial_sum的并行版本

在C中&#xff0c;std::partial_sum 是一个用于计算前缀和的算法&#xff0c;它将输入范围中的每个元素替换为其前缀和。为了提高性能&#xff0c;我们可以设计并实现一个并行版本的 std::partial_sum&#xff0c;以便在多核处理器上并行执行前缀和计算。基本思想是将输入范围划…

科技快讯 | 华为余承东2025新年信;教育部拟同意设置福耀科技大学等本科院校;我国成功发射一箭10星

四部门&#xff1a;畅通数据采集、标注、人工智能应用产业 财联社1月13日电&#xff0c;国家发展改革委等四部门发布《关于促进数据标注产业高质量发展的实施意见》。其中提出&#xff0c;畅通数据采集、标注、人工智能应用产业链&#xff0c;推动数据标注产业上下游协同发展。…

VSCode使用纪要

1、常用快捷键 1&#xff09;注释 ctrl? 单行注释&#xff0c; altshifta 块注释&#xff0c; 个人测试&#xff0c;ctrl? 好像也能块注释 2&#xff09;开多个项目 可以先开一个新窗口&#xff0c;再新窗口打开另一个项目&#xff0c;这时就是同时打开多个项目了。 打开…

美化IDE之修改IDEA启动界面logo图片

1&#xff0c;关闭运行的IDEA 2&#xff0c;在IDEA安装目录下的lib里找到app.jar或者platform-impl.jar(因为不同版本会有区别)复制出来 3&#xff0c;解压&#xff0c;找到两个图片idea_logo.png和idea_logo2x.png&#xff0c;分辨率一个为640x400 一个是1280x800 4&#xff0…