数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)

  上次给大家讲了如何绘制游戏主界面及数字面板,今天接着往下面讲,如何生成默认固定数字。游戏开始之前,我们要在数字面板上随机初始化一些数字并显示出来,我们来看看该如何实现。

  首先看看html页面代码

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(1)

  runGame()函数增加了一行代码g_oGameObj.initGame();此函数负责调用生成随机数字的函数,我们接着看它的代码

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(2)

  g_oGameData.genereateFixed()函数是在固定位置生成随机数的函数,它的代码如下:

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(3)

  首先将保存数字的aFixed数组初始化,接下来逐行逐列生成随机数字,并验证每一行、每一列、每3×3方块内是否有重复数字,最后在每一行内随机删除2至5个数字。

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(4)

  我们再看看g_oGameObj.drawScene()函数的代码

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(5)

  加了一个g_oSpriteManage.draw()函数,在这个数独游戏中,将使用了图片且不需要与用户交互的绘制操作封装到一个叫gxsSpriteManage的类,下面让我们来瞧瞧它的代码

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(6)

  此类的init成员函数很简单,对初始化参数数组中的每一个gxsSprite对象依次执行init()函数并将它们添加到aSprites数组中。g_aSpritePara对象定义如下:

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(7)

  是一个gxsSprite类的对象数组,目前只有一个数组成员,即代表固定数字的g_oFixNum对象(继承gxsSprite类)。我们先看看gxsSprite类定义及成员函数

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(8)

  注意那个initParameter()函数,根据执行时绑定对象的不同调用不同子对象的initParameter()函数。最后看看gxsFixNumSprite类(继承自gxsSprite)的代码

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(9)

  最后看看initParameter()函数和draw()函数代码

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(10)

  draw()函数中我打了个懒主意,用一个g_oFixNum对象绘制所有固定的数字,在绘制之前先初始化固定数字的参数,然后再将它绘制出来。

数独游戏里的数字是唯一位置吗(数独游戏开发生成默认固定数字)(11)

最后将今天讲的内容录了视频,文章中没有讲到的地方大家可以看视频。

数独游戏开发——生成随机固定数字

未完待续,敬请关注!后续更精彩,谢谢大家!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页