线性表之俄罗斯轮盘赌小游戏(C语言实现,详细注释版)
在我们学习了线性表一段时间后,来试图实现“俄罗斯轮盘赌”这个小游戏,很多人应该都在电影里见过图1这样的游戏场景。游戏的道具是一把左轮手枪,其规则也很简单:在左轮手枪中的 6 个弹槽中随意放入一颗或者多颗子弹,在任意旋转转轮之后,关上转轮。游戏的参加者轮流把手枪对着自己,扣动扳机:中枪或是怯场,即为输的一方;坚持到最后的即为胜者。
图1 俄罗斯轮盘赌
解题思路
解决此似问题的核心在于建立轮流循环机制,使用线性表的顺序存储结构和链式存储结构都能实现,根据游戏规则,采用顺序存储结构时,必须使数组的首尾建立连接,即当需要从数组中最后一个位置寻找下一个位置时,要能够跳转到数组的第一个位置(使用取余运算可以解决)。采用链式存储结构时,只需将链表首尾相连,使用循环链表即可轻松解决问题。
同时我们应该明白,采用链式存储结构对于求此类问题是最容易理解的,同时也避免了当参与人数较多时,不必像顺序存储结构那样,因为删除某个游戏成员而频繁地移动其他游戏成员数据。
顺序存储结构模拟轮盘赌
具体C语言实现代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>typedef struct GameMan{int number;
}GameMan;int main(){int PersonNum;//游戏人数 int round=1;//游戏回合 int PersonPos=1;//起始人位置 int BulletPos;//子弹位置 int i;//中枪人位置srand((int)time(0));//使用当前时间作为rand()函数的随机数的种子printf("请输入本次游戏人数(<100): ");scanf("%d",&PersonNum);printf("\n为编号为 1-%d 的游戏人员分配位置!\n\n",PersonNum);GameMan GameMans[100];//存储游戏人员编号的数组for (int j=1;j<=PersonNum;j++) {//依次为参加者分配编号GameMans[j].number=j;}//当只剩余一个人时,此场结束while (PersonNum!=1) {BulletPos
线性表之俄罗斯轮盘赌小游戏(C语言实现,详细注释版)相关推荐
- 线性表:7.C语言链表实现俄罗斯轮盘赌小游戏
俄罗斯轮盘赌,想必很多人都听说过,一种残忍的赌博游戏.游戏的道具是一把左轮手枪,其规则也很简单:在左轮手枪中的 6 个弹槽中随意放入一颗或者多颗子弹,在任意旋转转轮之后,关上转轮.游戏的参加者轮流把手 ...
- Python:利用if-elif编写一个逢7拍手的小游戏(附带知识点+详细注释)初学python的小伙伴快点看过来
条件: 1.1~100之间的数字 2.是否是7的倍数/包含7 3.判断是否是7的倍数 代码: #知识点 #1.range()可以创建一个整数列表,一般用于for循环当中 #2.if-elif语句: # ...
- 单链表(线性表的链式存储)---C语言版
目录 单链表(线性表的链式存储)---C语言版 一.相关说明 二.单链表的定义 三.单链表上具体操作的实现和时间复杂度 1.初始化表.构造一个空表. 2.根据数组创建单链表 3.求表长 4.插入操作. ...
- 双链表(线性表的链式存储)---C语言版
目录 双链表(线性表的链式存储)---C语言版 一.双链表的定义 二.双链表上具体操作的实现和时间复杂度 1.初始化表.构造一个空表. 2.根据数组创建双链表(头插法和尾插法) 3.插入操作.在表L中 ...
- C语言可以敲哪些小游戏,C语言可以写哪些小游戏?
C语言可以写哪些小游戏? C语言可以编手机游戏.你叫他去死不过我这有贪吃蛇的代码,你倒可以看看(用TC编译一定过( #包括 #包括 #包括 #包括 #包括 #定义输入7181 #定义ESC 283 # ...
- 【抖音小游戏】 Unity制作抖音小游戏方案 最新完整详细教程来袭【持续更新】
前言 [抖音小游戏] Unity制作抖音小游戏方案 最新完整详细教程来袭[持续更新] 一.相关准备工作 1.1 用到的相关网址 1.2 注册字节开发者后台账号 二.相关集成工作 2.1 下载需要的集成 ...
- 控制台推箱子小游戏C语言
自己开发的C语言控制台推箱子小游戏,基于二维数组实现,功能不多但是游戏整体较为完整,因为技术有限,所以代码暂未优化且整体显得较为臃肿,整体架构简单,代码全自主设计编写,仅作交流学习,还望大佬多多指点. ...
- windows经典地雷小游戏(C语言实现)
地雷小游戏 实现游戏的流程 1.如何使用C语言表示双重身份的地雷图 2.打印一下showMap 3.让玩家输入坐标(row,col) 4.判断玩家是否踩雷 5.更新地图 6.如何判断玩家获胜 代码区域 ...
- 【数据结构】线性表的顺序存储结构及实现——C语言版
文章目录 顺序表 1. 顺序表的存储结构定义 2. 顺序表的实现 2.1 初始化顺序表 2.2 建立顺序表 2.3 销毁顺序表 2.4 判空操作 2.5 求顺序表的长度 2.6 遍历操作 2.7 按值 ...
- java单链表输出_数据结构基础------1.线性表之单链表的创建与输出方法(Java版)...
基础知识: 线性表(linear list),是其组成元素间具有线性关系的一种线性结构. 线性表有 ①顺序存储结构(sequential storage structure) 顺序存储结构可以简单的理 ...
最新文章
- 我如何查看要使用git推送的内容?
- 如何查找订单提示VPRS VE217 数量/值确定时出错
- 【黑金ZYNQ7000系列原创视频教程】06.ZYNQ来自FPGA的中断——按键中断实验
- 背景图层和普通图层的区别_008Photoshop四赞图层(图层样式)
- 在springBoot中使用Mapper类问题_@Mapper_@MapperScan_xml文件跟mapper分开_xml文件跟mapper在同一个目录下
- linux下的僵尸进程 - Zombie
- linux新建java文件夹删除不了怎么办_Linux无法删除文件夹 Device or resource busy
- 有哨兵的双向循环链表、单向循环链表
- VS2008内嵌水晶报表翻页BUG修正方法
- 宁可多花1000元租房,也绝不要去挤半小时地铁
- html立体音乐相册源码,印记工坊立体音乐相册 v 1.8 官方版|印记工坊立体音乐相册官方版|印记工坊立体音乐相册电脑版_最火软件站...
- Serverless+SCF=打倒服务器,解放程序员
- 《SVN宇宙版教程》:第七章 Subclipse更新与深度
- python 大数据入门教程
- Linux基础入门(详细教程)
- 自然语言处理入门 第一章 新手上路
- xp安全模式下如何修复计算机,xp系统如何进入安全模式|进入安全模式修复系统...
- Gromacs 伞形采样
- 推荐三款实用的录音转文字软件给你
- IC后端物理效应WPE--Well Proximity Effect(阱临近效应)
热门文章
- AliOS-Things--linkkitapp (6)打印日志
- 思想的肖像:苏格拉底(SOCRATES)(2)
- 用机器生成的音乐监控Linux 计算机1
- Python获取秒级时间戳与毫秒级时间戳以及python中时间、日期、时间戳的转换
- java毕业设计书籍影视评论系统源码+lw文档+mybatis+系统+mysql数据库+调试
- linux课程_滴滴!国内专业Linux云计算高手班即将发车!明年涨价!
- 听说丝袜哥(swagger)不好用试试JApiDocs吧
- CSS学习笔记(尚硅谷李立超老师)
- TCP/UDP 数据传输的链路解析
- three.js中聚光灯及其属性介绍