python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等


Posted in Python onJuly 19, 2019

相信大家都做过九宫格的游戏,规则是要求填数字1-9在九个方格内,使横竖斜相加和相等。只填九个那可能有些简单,但是填25个,填49个,81个等奇数个那,这时候就要求我们去找其中的规律。找到规律又要如何用代码实现?

希望大家看代码之前,先来看下这个口诀:

首居上行正中央,依次斜向右上方,上出框时往下写,右出框时左边放,排重退回下格填,右上排重一个样。

释义:1要放在第一行的正中央,每次按依次向上的格式去填值,如果超出上边框就把它竖直往下移到最后一行,如果超出右边框就把它横着移动到最左边,在移动过程中如果要移动的地方已经存在值,就把这个放到前一个数字的下面,如果上边框和右边框都超过啦,就和排重一样,也把这个放到前一个数字的下面。过程如下图所示

python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等

代码如下:

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
num = int(input('请输入一个奇数:'))
# 定义一个长为num的列表
high = [[0] * num ]
# 先定义一个num*num的一个列表,之后在往里面赋值
for i in range(num-1):
  high += [[0]*num]
n = 1
# 先确定第一行中间值为1
high[0][num//2] = n
x = 0
y = num//2
# 依次向high列表赋值从2开始
for j in range(1,num*num):
  # x表示第几行,y表示第几列,j表示x,y坐标的值
  j = j + 1
  x = x - 1 
  y = y + 1
  # 判断符合哪几种可能性
  if y > (num - 1) and x < 0 :
   x = x + 2
   y = y - 1
   high[x][y]=j
  elif x < 0 :
   x = num - 1 
   high[x][y]=j
  elif y > num-1 :
   y = 0
   high[x][y]=j
  else:
   if high[x][y] == 0 :
     high[x][y]=j
   elif high[x][y] != 0 :
     x = x + 2
     y = y - 1
     high[x][y]=j
# 依次把high列表中值打印出来
for a in range(num):
  for b in range(num):
   # rjust表示输出01,02,03等这种格式,可看我上篇博文介绍
   print( str(high[a][b]).rjust(2,'0'),end=' ') 
  print()

思路:

主要还是理解最上面的那段口诀,口诀理解啦,代码也就懂啦

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用super()出现错误解决办法
Aug 14 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
python人民币小写转大写辅助工具
Jun 20 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
在Django中实现添加user到group并查看
Nov 18 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
Mar 23 Python
python图片指定区域替换img.paste函数的使用
Apr 09 Python
python re模块常见用法例举
Mar 01 Python
Django REST framework 视图和路由详解
Jul 19 #Python
Django使用模板后无法找到静态资源文件问题解决
Jul 19 #Python
Django模板Templates使用方法详解
Jul 19 #Python
python GUI图形化编程wxpython的使用
Jul 19 #Python
Django 外键的使用方法详解
Jul 19 #Python
python原类、类的创建过程与方法详解
Jul 19 #Python
Django 全局的static和templates的使用详解
Jul 19 #Python
You might like
Sony CFR 320 修复改造
2020/03/14 无线电
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
php抓取https的内容的代码
2010/04/06 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
2016/07/01 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
JavaScript字符串对象
2017/01/14 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
Python中的Numpy矩阵操作
2018/08/12 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
廉政教育的心得体会
2014/09/01 职场文书
分居协议书范本
2014/11/03 职场文书
2015年推普周活动总结
2015/03/27 职场文书
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery