在我们学习了线性表一段时间后,来试图实现“俄罗斯轮盘赌”这个小游戏,很多人应该都在电影里见过图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语言实现,详细注释版)相关推荐

  1. 线性表:7.C语言链表实现俄罗斯轮盘赌小游戏

    俄罗斯轮盘赌,想必很多人都听说过,一种残忍的赌博游戏.游戏的道具是一把左轮手枪,其规则也很简单:在左轮手枪中的 6 个弹槽中随意放入一颗或者多颗子弹,在任意旋转转轮之后,关上转轮.游戏的参加者轮流把手 ...

  2. Python:利用if-elif编写一个逢7拍手的小游戏(附带知识点+详细注释)初学python的小伙伴快点看过来

    条件: 1.1~100之间的数字 2.是否是7的倍数/包含7 3.判断是否是7的倍数 代码: #知识点 #1.range()可以创建一个整数列表,一般用于for循环当中 #2.if-elif语句: # ...

  3. 单链表(线性表的链式存储)---C语言版

    目录 单链表(线性表的链式存储)---C语言版 一.相关说明 二.单链表的定义 三.单链表上具体操作的实现和时间复杂度 1.初始化表.构造一个空表. 2.根据数组创建单链表 3.求表长 4.插入操作. ...

  4. 双链表(线性表的链式存储)---C语言版

    目录 双链表(线性表的链式存储)---C语言版 一.双链表的定义 二.双链表上具体操作的实现和时间复杂度 1.初始化表.构造一个空表. 2.根据数组创建双链表(头插法和尾插法) 3.插入操作.在表L中 ...

  5. C语言可以敲哪些小游戏,C语言可以写哪些小游戏?

    C语言可以写哪些小游戏? C语言可以编手机游戏.你叫他去死不过我这有贪吃蛇的代码,你倒可以看看(用TC编译一定过( #包括 #包括 #包括 #包括 #包括 #定义输入7181 #定义ESC 283 # ...

  6. 【抖音小游戏】 Unity制作抖音小游戏方案 最新完整详细教程来袭【持续更新】

    前言 [抖音小游戏] Unity制作抖音小游戏方案 最新完整详细教程来袭[持续更新] 一.相关准备工作 1.1 用到的相关网址 1.2 注册字节开发者后台账号 二.相关集成工作 2.1 下载需要的集成 ...

  7. 控制台推箱子小游戏C语言

    自己开发的C语言控制台推箱子小游戏,基于二维数组实现,功能不多但是游戏整体较为完整,因为技术有限,所以代码暂未优化且整体显得较为臃肿,整体架构简单,代码全自主设计编写,仅作交流学习,还望大佬多多指点. ...

  8. windows经典地雷小游戏(C语言实现)

    地雷小游戏 实现游戏的流程 1.如何使用C语言表示双重身份的地雷图 2.打印一下showMap 3.让玩家输入坐标(row,col) 4.判断玩家是否踩雷 5.更新地图 6.如何判断玩家获胜 代码区域 ...

  9. 【数据结构】线性表的顺序存储结构及实现——C语言版

    文章目录 顺序表 1. 顺序表的存储结构定义 2. 顺序表的实现 2.1 初始化顺序表 2.2 建立顺序表 2.3 销毁顺序表 2.4 判空操作 2.5 求顺序表的长度 2.6 遍历操作 2.7 按值 ...

  10. java单链表输出_数据结构基础------1.线性表之单链表的创建与输出方法(Java版)...

    基础知识: 线性表(linear list),是其组成元素间具有线性关系的一种线性结构. 线性表有 ①顺序存储结构(sequential storage structure) 顺序存储结构可以简单的理 ...

最新文章

  1. 我如何查看要使用git推送的内容?
  2. 如何查找订单提示VPRS VE217 数量/值确定时出错
  3. 【黑金ZYNQ7000系列原创视频教程】06.ZYNQ来自FPGA的中断——按键中断实验
  4. 背景图层和普通图层的区别_008Photoshop四赞图层(图层样式)
  5. 在springBoot中使用Mapper类问题_@Mapper_@MapperScan_xml文件跟mapper分开_xml文件跟mapper在同一个目录下
  6. linux下的僵尸进程 - Zombie
  7. linux新建java文件夹删除不了怎么办_Linux无法删除文件夹 Device or resource busy
  8. 有哨兵的双向循环链表、单向循环链表
  9. VS2008内嵌水晶报表翻页BUG修正方法
  10. 宁可多花1000元租房,也绝不要去挤半小时地铁
  11. html立体音乐相册源码,印记工坊立体音乐相册 v 1.8 官方版|印记工坊立体音乐相册官方版|印记工坊立体音乐相册电脑版_最火软件站...
  12. Serverless+SCF=打倒服务器,解放程序员
  13. 《SVN宇宙版教程》:第七章 Subclipse更新与深度
  14. python 大数据入门教程
  15. Linux基础入门(详细教程)
  16. 自然语言处理入门 第一章 新手上路
  17. xp安全模式下如何修复计算机,xp系统如何进入安全模式|进入安全模式修复系统...
  18. Gromacs 伞形采样
  19. 推荐三款实用的录音转文字软件给你
  20. IC后端物理效应WPE--Well Proximity Effect(阱临近效应)

热门文章

  1. AliOS-Things--linkkitapp (6)打印日志
  2. 思想的肖像:苏格拉底(SOCRATES)(2)
  3. 用机器生成的音乐监控Linux 计算机1
  4. Python获取秒级时间戳与毫秒级时间戳以及python中时间、日期、时间戳的转换
  5. java毕业设计书籍影视评论系统源码+lw文档+mybatis+系统+mysql数据库+调试
  6. linux课程_滴滴!国内专业Linux云计算高手班即将发车!明年涨价!
  7. 听说丝袜哥(swagger)不好用试试JApiDocs吧
  8. CSS学习笔记(尚硅谷李立超老师)
  9. TCP/UDP 数据传输的链路解析
  10. three.js中聚光灯及其属性介绍