数独生成(UI界面可玩)——软件工程2018年个人作业项目附加

这是一个2018年的个人作业项目,实现了带有UI界面的数独生成器。用户可以开始游戏、重开游戏,并在游戏过程中进行数字输入判断。程序在WPF环境中创建,使用预先编写的Sudoku类,通过随机函数生成数独谜题并挖空部分数字。输入限制为1-9的数字,每次输入或更改后都会检查数独是否完成和正确。
摘要由CSDN通过智能技术生成

最近更新时间2018.12.29

写在前面

github链接见上一篇文章。感觉自己的性能可能拼不过各位大佬,所以花了一下午时间赶出来了一个UI界面(大佬们也做了UI界面我就没辙了),目前只完成了开始游戏/重开游戏/判断是否胜利的简易功能。

参考资料

实现过程

首先在VS中建立了一个WPF工程,因为之前写了一个Sudoku类,所以可以直接拿过来用,然后再把之前工程文件Program.cs中的随机函数复制粘贴到了这个工程文件的Program.cs中。

先搭了一个丑丑的界面:

图1 丑丑的数独界面

点击开始游戏就可以生成谜题,点击重新来过就重开程序(是的,重开程序)

 private void Btn_Start_Click(object sender, EventArgs e)
        {
            GeneratePuzzles();
            GenerateAllButtons();
            btn_Start.Enabled = false;
            btn_Reset.Enabled = true;
        }

        private void Btn_Reset_Click(object sender, EventArgs e)
        {
            Application.Restart();
        }

然后,我们先处理数独,我们在加载窗体的时候就可以直接生成一个数独终局:

Sudoku sudoku = new Sudoku();
private void Form1_Load(object sender, EventArgs e)
        {
            sudoku.GenerateSudokuEnding();
        }

然后是挖空,根据要求,每个数独3×3格子中至少要挖掉两个,并且总共会生成[30,60]个空,所以我们要先随机出一个总空白数,然后先让每个3×3小矩阵中挖掉两个空(置0),然后再在整个数独矩阵上随机挖空。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值