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之用Python计算
Sep 12 Python
Python中关于使用模块的基础知识
May 24 Python
Python在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
Numpy数组的保存与读取方法
Apr 04 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
如何通过python实现IOU计算代码实例
Nov 02 Python
pytorch 使用半精度模型部署的操作
May 24 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
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
2014/06/24 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
Vue的生命周期操作示例
2019/09/17 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
python3中zip()函数使用详解
2018/06/29 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
基于Python解密仿射密码
2019/10/21 Python
使用python实现画AR模型时序图
2019/11/20 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
结构工程研究生求职信
2013/10/13 职场文书
考试违纪检讨书
2014/02/02 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
关于责任的演讲稿
2014/05/20 职场文书
民主生活会主持词
2015/07/01 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL