数独是一个很好玩的游戏,可以锻炼推理能力。下面的代码可以自动生成数独游戏题目。

from random import shuffle, randrange

def generate():
    # 初始网格
    result = []
    line = list(range(1,10))
    for i in range(9):
        result.append(line)
        line.append(line.pop(0))
        # 注意,这里的切片很重要
        line = line[:]

# Python允许函数的嵌套定义
    def switchRows(first, second):
        # 这里的括号和换行不是必须的
        # 只是为了方便手机阅读
        (result[first],
         result[second]) =\
         (result[second],
          result[first])

def switchColumns(first, second):
        for index in range(9):
            (result[index][first],
             result[index][second]) =\
             (result[index][second],
              result[index][first])

# 随机交换行
    randomRows = list(range(9))
    shuffle(randomRows)
    for i in range(0,7,2):
        switchRows(randomRows[i],\
                   randomRows[i+1])

# 随机交换列
    randomColumns = list(range(9))
    shuffle(randomColumns)
    for i in range(0,7,2):
        switchColumns(randomColumns[i],\
                      randomColumns[i+1])

# 随机清空一些格子

num = randrange(25, 50)
    positions = {(randrange(9),randrange(9))\
                 for i in range(num)}
    for row, col in positions:
        result[row][col] = ' '

return result

def output(grids):
    print('+'+'-+'*9)
    for row in range(9):
        line = '|'.join(map(str,grids[row]))
        line = line.join(['|']*2)
        print(line)
        print('+'+'-+'*9)

grids = generate()
output(grids)

运行结果一:

运行结果二:

运行结果三:

-----------我是分割线----------

相关阅读:

使用Python编写程序求解数独游戏答案

----------我是分割线-----------

热烈庆祝拙作《Python可以这样学》被宝岛台湾的博硕文化股份有限公司(出版社)引入宝岛台湾发行繁体版。

使用Python编写数独游戏自动出题程序相关推荐

  1. python漂亮界面 数独游戏源代码_使用Python编写数独游戏自动出题程序

    原标题:使用Python编写数独游戏自动出题程序 数独是一个很好玩的游戏,可以锻炼推理能力.下面的代码可以自动生成数独游戏题目. fromrandom importshuffle, randrange ...

  2. python数独游戏源代码_使用Python编写数独游戏自动出题程序

    数独是一个很好玩的游戏,可以锻炼推理能力.下面的代码可以自动生成数独游戏题目. from random import shuffle, randrange def generate(): # 初始网格 ...

  3. 数独游戏python制作_使用Python编写数独游戏自动出题程序

    数独是一个很好玩的游戏,可以锻炼推理能力.下面的代码可以自动生成数独游戏题目. from random import shuffle, randrange def generate(): # 初始网格 ...

  4. 一分钟教你学会python_十分钟教你学会python编写小游戏

    原标题:十分钟教你学会python编写小游戏 看过,估计大家都已经精通了吧,好的,话不多说,今天就活学活用,用python来编写纸牌游戏21点,江湖人称黑杰克,BLACK JACK-(注意法式卷舌). ...

  5. python编写小游戏17_十分钟教你学会python编写小游戏

    原标题:十分钟教你学会python编写小游戏 看过,估计大家都已经精通了吧,好的,话不多说,今天就活学活用,用python来编写纸牌游戏21点,江湖人称黑杰克,BLACK JACK-(注意法式卷舌). ...

  6. python编写剪刀石头布游戏_闲着也是闲着:PYTHON 编写剪刀石头布游戏

    闲着也是闲着:PYTHON 编写剪刀石头布游戏 突如其来的一场变故,使得这个假期尤为的漫长,特别是不知什么时候终结的假期,尤其的漫长.闲着也是闲着,不如来学习学习Python吧. 我学习新的语言,不喜 ...

  7. Python编写的桌面图形界面程序实现更新检测和下载安装

    在Python中我们有很多种方案来编写桌面图形用户界面程序,譬如内置的 Tkinter .强大的 PyQt5 和 PySide2 ,还有 wxPython .借助这些或内置或第三方的模块,我们可以轻松 ...

  8. python 儿童 游戏_少儿编程分享:手把手教你用Python编写战斗机游戏(完)

    原标题:少儿编程分享:手把手教你用Python编写战斗机游戏(完) 加入图像 现在我们已经能够玩游戏了,但这个游戏丑确实有点丑 .接下来,我们要把单调的白色矩形换成好看的图片. 在前面的代码中,我们用 ...

  9. 怎么用python做战斗机_少儿编程分享:手把手教你用Python编写战斗机游戏(四)

    游戏分享:手把手教你用Python编写 战斗机游戏(四) 2018.1.25 飞机大战就到这里啦 你的飞机大战做出来了吗 加入图像 现在我们已经能够玩游戏了,但这个游戏丑确实有点丑.接下来,我们要把单 ...

最新文章

  1. MODS: Fast and Robust Method for Two-View Matching
  2. 从明面上学习ASP.NET Core
  3. 【转】ABP源码分析二十九:ABP.MongoDb
  4. wxpython显示图片_wxpython下图片局部显示的方法
  5. python-模块的嵌套调用-随堂草稿件
  6. web.config forms节点中的属性的含义和用途
  7. 使用@property
  8. Postman系列之Tests断言
  9. 统信系统UOS桌面版V20 用户手册
  10. SSH婚庆策划系统案例
  11. 游戏辅助制作技术分析
  12. zigbee学习之JN5169 ADC外设
  13. 关于ADL的查找顺序
  14. x3650服务器引导盘制作,IBM X System ServerGuide 8.41 服务器 系统安装 引导盘图文教程...
  15. 第一次作业——肖祥英
  16. 在Ubuntu上编译gptfdisk的方法
  17. 微巨科技:公众号迁移公证流程及注意事项
  18. python最好用的助手_python 好用
  19. c语言编写f16仿真程序,想学习一下 用C语言开发PIC的F16和F18系列单片机, 结果让IDE开发环境给搞悲剧,巨难用,...
  20. 伪代码基本规范~呦呦呦

热门文章

  1. html代码id,浅谈html中id和name的区别实例代码
  2. bootstrap 图片居中,浅谈Bootstrap中的垂直水平居中
  3. C语言socket发送json,C++实现Socket传输json封装的Mat
  4. 长兴哪里有免费学计算机,2020年曲靖长兴职业技术学校计算机应用专业介绍
  5. java 类型转换原理_9.java数据类型的转换
  6. idea server日志乱码_windows下,Kiwi_Syslog日志服务器的搭建
  7. linux判断字符串命令行,bash – 将命令行参数与字符串进行比较
  8. git学习3--关联不同的网址的远程分支
  9. git commit之后后面的操作步骤
  10. 关于腾讯应用管理中心,认领应用