数独源程序py.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#!/usr/bin/python #coding=utf-8 #sudoku # import random class sudoku(object): ??? def __init__(self): ??????? self.col = 0 ??????? self.row = 0 ??????? self.num = [ i for i in range(9) ] ??????? # 初始化数独数据 ??????? self.sd = [ [ 0 for column in range(9)] for row in range(9) ] ??? def Clear(self ): ??????? ??????? 清空当前格的数值 ??????? ??????? self.sd[self.row][self.col] = 0 ??? def GenSudoku(self): ??????? pass ??? def isOK(self, bit ): ??????? ??????? 是否满足行、列和3X3区域不重复的要求 ??????? ??????? return ( self.checkRow( bit ) and self.checkCol(bit) and self.checkNine(bit)) ??? def checkRow(self, bit): ??????? ??????? 检查行是否符合要求,行没有重复 ??????? ??????? if bit in self.sd[self.row]: ??????????? return False ??????? return True ??? def checkCol(self, bit): ??????? ??????? 检查列是否符合要求, 列没有重复 ??????? ??????? for i in range(9): ??????????? if bit == self.sd[i][self.col]: ??????????????? return False ??????? return True ??? def checkNine(self, bit): ??????? ??????? 检查3X3区域是否符合要求, 区域中没有重复的记录 ??????? ??????? #获得左上角的坐标 ??????? i = self.row / 3 * 3 ??????? j = self.col/ 3 * 3 ??????? #横向检查 ??????? if bit in self.sd[i][j:j+3] or \ ??????????? bit in self.sd[i+1][j:j+3] or \ ??????????? bit in self.sd[i+2][j:j+3] : ??????????? return False ??????? return True ??? def Next(self): ??????? ??????? 下一填充格 ??????? ??????? if self.col == 8: ??????????? #Debug ??????????? #print row now..., self.row ??????????? self.row = self.row +1 ??????????? self.col = 0 ??????? else: ??????????? #print col now..., self.row, self.col ??????????? self.col = self.col +1 ??? def Prev(self): ??????? ??????? 上一填充格 ??????? ??????? if self.col == 0 : ??????????? self.row = self.row -1 ??????????? self.col = 8 ??????? else: ??????????? self.col = self.col -1 ??????? #清除当前的数字,方便重新填充 ??????? self.Clear() ??? def isEnd(self): ??????? ??????? 填充完成 ??????? ??????? return( self.row == 9 ) ??? def genNum(self): ??????? ??????? 生成随机数字[1-9] ??????? ??????? #初始化数字序列 ??????? num = [ n for n in range(1,10) ] ??????? for i

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档