题目

有1~9个数字,将他们填入一个3*3的九宫格中,使得他们的每行,每列,以及对角线上的和相等,且要求每个格子的数字不可以重复。使用python列出所有可能的组合。示例如下:

思路

1、每行,列,对角线的和相等,那么和一定为15。
2、找出所有三个数和为15的组合。
3、再上一步的基础上,找出使每行、每列、对角线和相等的所有组合。

代码

# 找出所有和为15的三个数的组合
from itertools import product
lst = range(1, 10)
arr = []
#这里使用itertools模块中的product()方法避免多次调用for循环,提高代码可读性与效率
for n1, n2, n3 in product(lst, lst, lst):#和为15且不重复if n1+n2+n3 == 15 and len({n1, n2, n3})==3:arr.append([n1, n2, n3])
#打印结果
print(arr)

以下就找出了所有三个数和为15的组合:

[[1, 5, 9], [1, 6, 8], [1, 8, 6], [1, 9, 5], [2, 4, 9], [2, 5, 8], [2, 6, 7], [2, 7, 6], [2, 8, 5], [2, 9, 4], [3, 4, 8], [3, 5, 7], [3, 7, 5], [3, 8, 4], [4, 2, 9], [4, 3, 8], [4, 5, 6], [4, 6, 5], [4, 8, 3], [4, 9, 2], [5, 1, 9], [5, 2, 8], [5, 3, 7], [5, 4, 6], [5, 6, 4], [5, 7, 3], [5, 8, 2], [5, 9, 1], [6, 1, 8], [6, 2, 7], [6, 4, 5], [6, 5, 4], [6, 7, 2], [6, 8, 1], [7, 2, 6], [7, 3, 5], [7, 5, 3], [7, 6, 2], [8, 1, 6], [8, 2, 5], [8, 3, 4], [8, 4, 3], [8, 5, 2], [8, 6, 1], [9, 1, 5], [9, 2, 4], [9, 4, 2], [9, 5, 1]]

这里说明一下,product()部分也可以使用三次for循环代替,即:

for n1 in lst:for n2 in lst:for n3 in lst:

以下同理

#在上一步的基础上找出所有满足条件的组合
from itertools import product
for a, b, c in product(arr, arr, arr):if len(set(a+b+c)) == 9:sum1 = a[0]+b[0]+c[0] #第一列求和sum2 = a[1]+b[1]+c[1] #第二列求和sum3 = a[2]+b[2]+c[2] #第三列求和sum4 = a[0]+b[1]+c[2] #对角线求和sum5 = a[2]+b[1]+c[0] #对角线求和if sum1 == sum2 == sum3 == sum4 == sum5: print(a, end ='\t')print(b, end ='\t')print(c, end ='\t')

找出所有组合:

[2, 7, 6]
[9, 5, 1]
[4, 3, 8]
--------
[2, 9, 4]
[7, 5, 3]
[6, 1, 8]
--------
[4, 3, 8]
[9, 5, 1]
[2, 7, 6]
--------
[4, 9, 2]
[3, 5, 7]
[8, 1, 6]
--------
[6, 1, 8]
[7, 5, 3]
[2, 9, 4]
--------
[6, 7, 2]
[1, 5, 9]
[8, 3, 4]
--------
[8, 1, 6]
[3, 5, 7]
[4, 9, 2]
--------
[8, 3, 4]
[1, 5, 9]
[6, 7, 2]
--------

【每日一练】python实现九宫格数独小游戏相关推荐

  1. python实现九宫格华容道小游戏

    python实现九宫格华容道小游戏 小时候经常玩的华容道小游戏,在9个格,可以随意移动8个格,完成拼图,现在我们可以用python来实现了 当时的游戏大概长这个样子,有的是拼图不是数字,但是实际上都是 ...

  2. python大作业数独_python做一个数独小游戏

    最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...

  3. C语言编写数独小游戏

    文章目录 1.前言 2.效果展示 3.代码 1.前言 这次数独小游戏的灵感来源于上次力扣做的题目,解数独.正好利用题目余热写了这一款小小游戏. 感兴趣的可以看看题目,哈哈 2.效果展示 3.代码 #p ...

  4. python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏

    Python编写贪吃蛇 前不久我们公众号发布了一篇C++编写贪吃蛇小游戏的推文,反响空前.看来大家对这类简单易上手小游戏还是很喜爱的. 恰逢2018年IEEE Spectrum编程语言排行榜新鲜出炉, ...

  5. python经典小游戏-用Python设计一个经典小游戏:猜大小

    码农那点事儿 关注我们,一起学习进步 本文主要介绍如何用Python设计一个经典小游戏:猜大小. 游戏规则: 初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额. 玩家选择下 ...

  6. 20行python代码的入门级小游戏-用Python设计一个经典小游戏

    本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是 ...

  7. python小游戏编程实例-Python实现的弹球小游戏示例

    本文实例讲述了Python实现的弹球小游戏.分享给大家供大家参考,具体如下: 弹球 1. Ball 类 draw负责移动Ball 碰撞检测,反弹,Ball检测Paddle 2.Paddle类 draw ...

  8. python小游戏代码大全-20行python代码的入门级小游戏的详解

    背景: 作为一个python小白,今天从菜鸟教程上看了一些python的教程,看到了python的一些语法,对比起来(有其他语言功底),感觉还是非常有趣,就随手添了一点内容,改了一个小例程,当着练练手 ...

  9. python经典小游戏-用Python设计一个经典小游戏

    本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是 ...

最新文章

  1. matlab怎么跑.cpp程序,MATLAB编译cpp文件
  2. numpy shape函数
  3. Yii实现Password Repeat Validate Rule
  4. ICG游戏:证明,先手不是必胜就是必败。
  5. sony android电视关机,【索尼 KDL-48WM15B 48英寸 LED电视使用体验】通电|待机|关机|加载|设置_摘要频道_什么值得买...
  6. MyEclipse导入项目后 js文件报错
  7. 光华科技光刻胶_光刻胶概念走强,6天5板!21只光刻胶概念出炉!(名单)
  8. 数据库索引的使用及优化
  9. MixGo V1.0 发布,混合型高性能 Go 框架
  10. 虚拟机服务器关机命令,ESXi主机定时开关机设置
  11. python教学ppt百度云_python教程ppt百度云盘-Python教程ppt课件类型的
  12. Linux服务器之Samba匿名访问配置
  13. Flare动画进阶——创建可互动的一拳超人动画
  14. 一键非自锁开关电路设计
  15. 编译原理学习笔记(十八)~LL(1)文法
  16. 递归判断回文字符串c语言,递归判断字符串是否为回文
  17. 智力题:一次测试找出1000瓶酒中的唯一一瓶毒酒
  18. 简述企业信息系统持续开发与持续集成相关主流技术(DI/CI)
  19. java条码扫描_Java上的条形码扫描仪实现
  20. EDIUS中的视频怎么才能添加字幕?

热门文章

  1. 课程笔记2:Scrapy框架——Selector(选择器)的用法
  2. thinkbook 15p安装ubuntu16.04 触摸板+无线网卡不能用问题解决
  3. 嵌入式系统定义组成调度等
  4. 大型电商分布式系统架构解析
  5. 知乎在商业化的道路上大动作频频,知乎,直乎,播乎?
  6. 将电脑硬盘的图片生成一个链接,提供外网访问
  7. 机构数据分析培训之关于Mysql定义及数据库相关小知识
  8. 四级,四级,四级!!!!
  9. java 日文全角转半角_java中全角转换为半角的方法
  10. VB基础版版务处理_20050126