点击空白处退出提示
作品详情
这段代码是用C语言实现的简单数独游戏。简化版数独的基本规则如下。
它有一个5x5的网格。
目标是用1到9的数字填满棋盘。
电脑会自动为玩家填上一些槽位。玩家在游戏开始时选择要填的槽的数量。
然后玩家需要通过选择自己的数字来填补其余的空位。
当玩家填满棋盘时,棋盘内的行和列不应该有重复的地方。
这个程序中涉及的函数有
printboard()
这个函数接收一个二维数组棋盘,代表棋盘的当前状态,并以格式化的方式将其打印在屏幕上。当需要的时候,这个函数被调用来在不同场合打印棋盘。
isunique()
这个函数接收一个棋盘--一个二维数组,一个int checkrow,一个int checkcol,和一个char numberinchar。
如果输入值在当前行和列中是唯一的,它将检查并返回真。
如果一个数字已经存在于给定的行中,检查所有可用的列
如果数字已经存在于给定的列中,检查所有可用的行槽。
如果数字已经存在于该行或列中,返回false。
如果数字在该行或该列中没有重复,返回true。
initboard()
这个函数用于初始化游戏板。
传递的第一个参数是gameboard--一个2-D字符数组。
第二个参数包括需要用随机数初始化的槽的数量。
然后,棋盘的所有索引都被清空,包含空格''。
循环浏览给定数量的槽,并产生以下结果。
通过调用rand()%5找到一个随机的空槽
生成1-9之间的唯一数字,然后通过将数字转换为字符格式,将它们存储在找到的棋盘空位中。
isboardfull()
这个函数遍历游戏棋盘的棋盘,如果所有的东西都被一个数字占据,则返回真。换句话说,如果有些空间没有被占用,则返回false。
main()
主函数初始化了一些整数和字符。
复制
插入
新的
* `slots`, `row`, `col`, `number`, `repeatcount`。这些整数存储特定的值,并在适用时被更新。
* `numberinchar`:存储转换为char值的整数。
所有必要的数组都被声明、定义,在运行时根据它们的大小分配内存,并在运行过程中的下一阶段之前,必要时输入/修改它们的值,直到完成。
注意 这段代码使用time.h库作为伪随机发生器的种子,用于随机选择游戏板上的单元格/数字。因此,它通过随机化随机数发生器确保每次程序执行时都能进行不同的游戏。
最后,main()函数调用initboard()函数来初始化游戏板并开始游戏。游戏继续进行,直到满足两个结束条件之一。
* 棋盘完全被填满,行或列中没有任何两个重复的数字。
* 玩家在某一行或某一列中重复的数字超过三次。
结束后,最后的棋盘会被打印出来,然后是关于玩家是赢是输的相关信息等。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论