python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等

作者:哼嘿哈嘿 时间:2023-08-27 07:55:11 

相信大家都做过九宫格的游戏,规则是要求填数字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()

思路:

主要还是理解最上面的那段口诀,口诀理解啦,代码也就懂啦

来源:https://blog.csdn.net/weixin_44208042/article/details/93330954

标签:python,9宫格,25宫格
0
投稿

猜你喜欢

  • JavaScript实现图片放大预览效果

    2023-08-23 02:41:17
  • PyQt5 QLineEdit输入的子网字符串校验QRegExp实现

    2022-05-08 16:47:58
  • python脚本爬取字体文件的实现方法

    2022-09-07 18:20:55
  • 如何有效防止sql注入的方法

    2024-01-18 21:18:13
  • Python基础教程之tcp socket编程详解及简单实例

    2021-04-18 12:04:29
  • vue2.0+vue-dplayer实现hls播放的示例

    2024-05-29 22:46:56
  • django ajax发送post请求的两种方法

    2022-06-21 07:06:51
  • 使用PowerShell实现批量修改或替换文件名

    2023-02-08 05:02:10
  • Python zip()函数用法实例分析

    2022-10-28 21:39:53
  • Python生成器传参数及返回值原理解析

    2022-03-17 08:58:40
  • Python制作微信好友背景墙教程(附完整代码)

    2022-11-13 08:31:08
  • python tkinter库实现气泡屏保和锁屏

    2021-09-17 22:37:57
  • 解决tensorflow1.x版本加载saver.restore目录报错的问题

    2023-08-09 15:48:24
  • HTML编辑器FCKeditor使用详解

    2010-02-28 12:30:00
  • Python3+PyCharm+Django+Django REST framework配置与简单开发教程

    2023-06-15 09:26:28
  • Django项目在pycharm新建的步骤方法

    2021-01-19 11:46:32
  • python实现移位加密和解密

    2022-03-20 09:09:27
  • python list 合并连接字符串的方法

    2021-12-18 09:35:30
  • 学会sql数据库关系图(Petshop)

    2024-01-28 18:43:23
  • MYSQL大量写入问题优化详解

    2024-01-24 04:26:56
  • asp之家 网络编程 m.aspxhome.com