当前位置: 首页 > news >正文

如何建设一个属于自己的网站龙岗天气

如何建设一个属于自己的网站,龙岗天气,做网站还是做淘宝,网站建设期末试题一、游戏介绍 三子棋,英文名为 Tic - Tac - Toe,是一款简单而经典的棋类游戏。游戏在一个 33 的棋盘上进行,两名玩家轮流在棋盘的空位上放置自己的棋子(通常用 * 和 # 表示),率先在横、竖或斜方向上连成三个…

一、游戏介绍

          三子棋,英文名为 Tic - Tac - Toe,是一款简单而经典的棋类游戏。游戏在一个 3×3 的棋盘上进行,两名玩家轮流在棋盘的空位上放置自己的棋子(通常用 '*' 和 '#' 表示),率先在横、竖或斜方向上连成三个相同棋子的玩家获胜。如果棋盘被填满且没有玩家获胜,则游戏平局                 

二、程序设计思路

(一)棋盘的表示

      使用一个二维字符数组 board[3][3] 来表示棋盘,数组的每个元素对应棋盘上的一个位置。初始时,棋盘上的每个位置都用空格字符 ' ' 表示空位。

(二)游戏流程控制

  1. 初始化棋盘:将棋盘上的每个位置都设置为空位。
  2. 打印棋盘:   在每次玩家下棋后,将当前的棋盘状态打印出来,方便玩家查看。
  3. 玩家下棋:   轮流让两个玩家输入下棋的位置,检查位置是否合法(是否为空位),如果合法则在相应位置放置玩家的棋子。
  4. 判断胜负:   在每次玩家下棋后,检查是否有玩家获胜或者游戏是否平局。
  5. 游戏结束:   如果有玩家获胜或者游戏平局,打印相应的结果并结束游戏。

 三、代码实现

  游戏逻辑:

解析游戏逻辑:

先创建棋盘,对棋盘初始化为‘ ’(空格),接下来就进入游戏环节,玩家先下棋,下完棋判断输赢,如果返回值为“C”就继续,反之胜负已定,跳出循环,对返回值进行判断,如果是*玩家赢,#电脑赢,!平局,这个时候整个游戏的逻辑就完了,下面的菜单啥的都很普通,我就不讲解了

如何生成随机数:

在三子棋游戏中,若涉及电脑下棋,其坐标通常是随机生成的。在 C 语言里,rand函数可用于生成随机数。然而,它生成的是一种 “伪随机数”,这是因为rand()括号内的种子默认值为 1。若不手动给种子赋值,每次运行程序时,种子始终为 1,那么生成的随机数序列也会是一样的。这是由于随机数的生成会随着种子的变化而变化。

为解决这一问题,我们引入srand函数,它是初始化随机数生成器。只要srand函数的种子不断变化,rand函数生成的随机数序列也会相应地不断变化。

在实际程序中,通常会使用程序运行的时间作为种子,因为时间是时刻在变化的。C 语言提供了time函数来获取当前时间。time函数会返回自 1970 年 1 月 1 日 0 时 0 分 0 秒起至程序当前运行时刻的差值,单位为秒,返回值类型为time_t。当time函数的参数为NULL时,它仅返回这个时间差值,该差值也被称为 “时间戳”。通过srand((unsigned int)time(NULL))这样的语句(因为srand的参数是unsigned int 类型,所以我们将time的返回类型强转为无符号整型),就能以当前时间作为随机数生成器的种子,使得每次程序运行时rand生成的随机数都不同,从而实现电脑下棋坐标的随机化

在程序中srand((unsigned int)time(NULL))一般放在程序开头合适的位置,比如main函数开头,且只调用一次来设置种子,后续多次调用rand生成不同随机数。否则如果在程序中多次调用srand((unsigned int)time(NULL))可能达不到预期随机效果(因为短时间内时间戳变化不大,可能生成相近随机数序列)

棋盘的初始化:

棋盘的打印:

玩家下棋:

 如果要正确访问棋盘中的每个位置的话,理应是用下标访问,但是玩游戏的人可不知道有下标这样的说法,他们只知道数学中的行和列,所以在判断断这个位置有没有棋时,给玩家输入的坐标-1,刚好对应了数组中的下标

电脑下棋:

 判断输赢:

 判断获胜的情况有三种:某一行棋子相同、某一列棋子相同以及两条对角线上的棋子相同

 如果满足其中某一个条件,就返回第一个位置的棋,这个时候就和解析逻辑那块对应着了

判断平局:

只要棋盘上还有一个空的位置,就没有结束,如果棋盘下满了还没有决出胜负,那就是平局

如果判断输赢那块的判断没有一个满足,就返回C,继续游戏

完整代码:

test.c:

game.h :

game.c :

通过以上代码实现了一个简单的三子棋游戏。这个小游戏不仅帮助我们巩固了 C 语言中数组、循环、条件判断等基础知识,还让我们对游戏编程的基本流程有了一定的了解。你可以进一步对游戏进行扩展,比如添加电脑对战模式、优化界面等,以提升游戏的趣味性和可玩性 

http://www.yayakq.cn/news/695602/

相关文章:

  • 如何制造一个网站WordPress主题加验证码
  • 网站建设上传文件有经验的赣州网站建设
  • 博物馆门户网站建设手机版网站模板
  • 网站模板好建设银行海淀支行 网站
  • 百度经验官方网站登录入口上海搬家公司哪家好
  • 做软件赚钱的网站有哪些wordpress如何添加自定义元素
  • 网页设计与制作做网站网站内部链接优化
  • 做任务赚q币网站wordpress订阅功能
  • 网站定位与建设沈阳网站建设设计
  • 用.net做网站如何查询网站哪个公司做的
  • 网站设计 成都南昌大学南昌网站建设公司
  • 北京网站建设浩森宇特公众号 微网站建设方案
  • 电子商务网站的建设流程图seo网站推广实例
  • 深圳专门做写字楼的网站海南建设厅网站
  • win2012 iis配置网站个人做公司网站
  • 仿站怎么修改成自己的网站开发手机网站用什么好
  • 专门做超市dm网站中国风电商网站建设
  • 网站后台登录界面保定 网站建设软件开发
  • 邯郸建移动网站费用扫wordpress漏洞工具
  • 明星用什么软件做视频网站putty搭建wordpress
  • 济南网站建站推广昆明做商城网站多少钱
  • 多语种网站建设公司梅州建站网络科技有限公司
  • 成都电商平台网站设计企业邮箱账号是什么
  • 域名解析网站公司官网搭建
  • 青岛西海岸新区建设网站wordpress 备份插件 汉化
  • 加强网站建设的意见百度网址
  • 嘉兴网站建设系统北京核子华曦检测所
  • 网站开发与设计实训心得一千字帮别人做设计图的网站
  • 电子商务网站建设试卷及答案南宁网站建设方案报价
  • 模块化局域网网站建设软件网页设计师中级技能要求