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加pyGame实现的简单拼图游戏实例
May 15 Python
举例讲解Linux系统下Python调用系统Shell的方法
Nov 07 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
python字符类型的一些方法小结
May 16 Python
Python实现Youku视频批量下载功能
Mar 14 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
Django学习笔记之为Model添加Action
Apr 30 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 Python
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 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
日本十大惊悚动漫
2020/03/04 日漫
简单的cookie计数器实现源码
2013/06/07 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
JS作用域链详解
2017/06/26 Javascript
Vue精简版风格概述
2018/01/30 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
Eclipse面试题
2014/03/22 面试题
2014年社区工会工作总结
2014/12/18 职场文书
初中军训感想
2015/08/07 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
九年级英语教学反思
2016/02/15 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android