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 logging模块学习笔记
May 24 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
python flask实现分页效果
Jun 27 Python
Python代码缩进和测试模块示例详解
May 07 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
Nov 29 Python
python 执行文件时额外参数获取的实例
Dec 18 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
python列表插入append(), extend(), insert()用法详解
Sep 14 Python
PyTorch预训练的实现
Sep 18 Python
Python tkinter制作单机五子棋游戏
Sep 14 Python
Anaconda详细安装步骤图文教程
Nov 12 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
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
子页向父页传值示例
2013/11/27 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
nodejs操作mysql实现增删改查的实例
2017/05/28 NodeJs
微信小程序动态添加分享数据
2017/06/14 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
python学习教程之使用py2exe打包
2017/09/24 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
django使用channels实现通信的示例
2020/10/19 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
大学毕业的自我鉴定
2013/10/08 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
大学活动总结范文
2014/04/29 职场文书
导游词范文
2015/02/13 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
排查MySQL生产环境索引没有效果
2022/04/11 MySQL