python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
作者:哼嘿哈嘿 时间:2023-08-27 07:55:11
相信大家都做过九宫格的游戏,规则是要求填数字1-9在九个方格内,使横竖斜相加和相等。只填九个那可能有些简单,但是填25个,填49个,81个等奇数个那,这时候就要求我们去找其中的规律。找到规律又要如何用代码实现?
希望大家看代码之前,先来看下这个口诀:
首居上行正中央,依次斜向右上方,上出框时往下写,右出框时左边放,排重退回下格填,右上排重一个样。
释义:1要放在第一行的正中央,每次按依次向上的格式去填值,如果超出上边框就把它竖直往下移到最后一行,如果超出右边框就把它横着移动到最左边,在移动过程中如果要移动的地方已经存在值,就把这个放到前一个数字的下面,如果上边框和右边框都超过啦,就和排重一样,也把这个放到前一个数字的下面。过程如下图所示
代码如下:
#!/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()
思路:
主要还是理解最上面的那段口诀,口诀理解啦,代码也就懂啦
来源:https://blog.csdn.net/weixin_44208042/article/details/93330954
标签:python,9宫格,25宫格
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
JavaScript实现图片放大预览效果
2023-08-23 02:41:17
![](https://img.aspxhome.com/file/2023/8/56098_0s.png)
PyQt5 QLineEdit输入的子网字符串校验QRegExp实现
2022-05-08 16:47:58
![](https://img.aspxhome.com/file/2023/7/121437_0s.png)
python脚本爬取字体文件的实现方法
2022-09-07 18:20:55
如何有效防止sql注入的方法
2024-01-18 21:18:13
![](https://img.aspxhome.com/file/2023/4/116324_0s.png)
Python基础教程之tcp socket编程详解及简单实例
2021-04-18 12:04:29
vue2.0+vue-dplayer实现hls播放的示例
2024-05-29 22:46:56
![](https://img.aspxhome.com/file/2023/2/123002_0s.png)
django ajax发送post请求的两种方法
2022-06-21 07:06:51
使用PowerShell实现批量修改或替换文件名
2023-02-08 05:02:10
![](https://img.aspxhome.com/file/2023/0/120920_0s.png)
Python zip()函数用法实例分析
2022-10-28 21:39:53
Python生成器传参数及返回值原理解析
2022-03-17 08:58:40
Python制作微信好友背景墙教程(附完整代码)
2022-11-13 08:31:08
![](https://img.aspxhome.com/file/2023/3/114993_0s.jpg)
python tkinter库实现气泡屏保和锁屏
2021-09-17 22:37:57
![](https://img.aspxhome.com/file/2023/2/93602_0s.jpg)
解决tensorflow1.x版本加载saver.restore目录报错的问题
2023-08-09 15:48:24
HTML编辑器FCKeditor使用详解
2010-02-28 12:30:00
![](https://img.aspxhome.com/file/UploadPic/20102/28/fckeditor-87s.gif)
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2023-06-15 09:26:28
![](https://img.aspxhome.com/file/2023/3/76003_0s.png)
Django项目在pycharm新建的步骤方法
2021-01-19 11:46:32
python实现移位加密和解密
2022-03-20 09:09:27
![](https://img.aspxhome.com/file/2023/6/105726_0s.jpg)
python list 合并连接字符串的方法
2021-12-18 09:35:30
学会sql数据库关系图(Petshop)
2024-01-28 18:43:23
![](https://img.aspxhome.com/file/2023/2/99942_0s.png)
MYSQL大量写入问题优化详解
2024-01-24 04:26:56
![](https://img.aspxhome.com/file/2023/6/111426_0s.jpg)