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查询Mysql时返回字典结构的代码
Jun 18 Python
python网络编程学习笔记(六):Web客户端访问
Jun 09 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
Python中logging实例讲解
Jan 17 Python
django解决订单并发问题【推荐】
Jul 31 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
TensorFlow 显存使用机制详解
Feb 03 Python
Python configparser模块操作代码实例
Jun 08 Python
Python基于mediainfo批量重命名图片文件
Dec 29 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
服务器端解压缩zip的脚本
2006/12/22 PHP
PHP学习之数组值的操作
2011/04/17 PHP
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
eclipse php wamp配置教程
2016/06/30 PHP
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
python PyTorch预训练示例
2018/02/11 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
解决Django中多条件查询的问题
2019/07/18 Python
pytorch之添加BN的实现
2020/01/06 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
口腔医学技术应届生求职信
2013/11/09 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
担保书格式及范文
2014/04/01 职场文书
保险公司开门红口号
2014/06/21 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
个人年终总结开头
2015/03/06 职场文书
业务员岗位职责范本
2015/04/03 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书