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中join和split用法实例
Apr 14 Python
python控制台中实现进度条功能
Nov 10 Python
Python实现的密码强度检测器示例
Aug 23 Python
PyQt5实现拖放功能
Apr 25 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 Python
python MultipartEncoder传输zip文件实例
Apr 07 Python
基于python调用jenkins-cli实现快速发布
Aug 14 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
php发送post请求的三种方法
2014/02/11 PHP
PHP new static 和 new self详解
2017/02/19 PHP
让焦点自动跳转
2006/07/01 Javascript
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
Python中获取对象信息的方法
2015/04/27 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
个人自荐书
2013/12/20 职场文书
小学开学典礼主持词
2014/03/19 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
杜甫草堂导游词
2015/02/03 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
Python简易开发之制作计算器
2022/04/28 Python
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers