Numpy练习小例题(2)--创建一个8*8的国际象棋棋盘黑块为0,白块为1

创建的国际象棋棋盘如下图所示:

 首先可以创建一个全0或者全1的8*8数组--在这里我创建的是全0数组

Q=np.zeros((8,8),dtype=int)
print(Q)

第一步:观察到偶数行的第一个都为1,将全0的数组每偶数行都变为1 

Q[1::2]=1
Q

第二步:我们需要把偶数行的奇数列变为1,而不把每一行都变为1 

Q[1::2,::2]=1
print(Q)

 注意:不能像以下代码这样子去书写:(这样写会导致一直不能输出新的代码结果,不用问为什么,我已经尝试了半个小时,就是不能这样子分开写!!!!)

Q[1::2]=1
print(Q)
Q[1::2,::2]=1
print(Q)

第三步:又观察到奇数行的偶数列为1,先将奇数行都变为1

Q[::2]=1
print(Q)

第四步:将奇数行的偶数列为1

Q[::2,1::2]=1
print(Q)

 (注意:该部分和上述描述的坑一样,都是不能够分开写的,分开写不能获得新数组的结果,我的Anaconda和jupyter版本都是最新的)

总结完整代码如下:

#首先可以创建一个全0或者全1的8*8数组--在这里我创建的是全0数组
Q=np.zeros((8,8),dtype=int)

#第一步:观察到偶数行的第一个都为1,将全0的数组每偶数行都变为1   第二步:我们需要把行列交叉的点都变为1,而不把每一行都变为1
Q[1::2,::2]=1

#第三步:观察到奇数行的偶数列为1,先将奇数行都变为1    第四步:将奇数行的偶数列都变为1
Q[::2,1::2]=1
print(Q)

PS:国际象棋(Chess),又称西洋棋,是—种二人对弈的棋类游戏。棋盘为正方形,由64个黑白(深色与浅色)相间的格子组成;棋子分黑白(深色与浅色)两方共32枚,每方各16枚。

国际象棋的规则:

1、布子规则:

无论是白方视野还是黑方视野,棋盘的最右下角的一格一定要是白色,白后一定要放在白格上,黑后一定要放在黑格上。并且,白王一定在e1格,黑王一定在e8格。

2、行棋规则:

王(K):横、直、斜都可以走,但是每次限走一步。王是不可以送吃的,也就是任何被敌方控制的格子,己方王都不能走进去。否则,算“送王”犯规,三次就要判负。

(1)除易位时以外,王可以走到不被对方棋子攻击的任何相邻格子,而且只能走一步。

(2)易位是由王和己方任何一个车一起进行的仍被视作王的一步的走法。

后(Q):横、直、斜都可以走,步数不受限制,但是不能越子。

车(R):横、竖都可以走,步数不受限制,不能斜走。除王车易位外不能越子。

象(B):只能斜走。格数不限,不能越子。开局时每方有两象,一个占白格,一个占黑格。

马(N):每步棋先横走或者直走一格,然后再往外斜走一格;或者先斜走一格,最后再往外横走或者竖走一格(也就是走“日”字)。可以越子,没有中国象棋中的“蹩马腿”限制。

兵(P):只能向前直走,每次只能走一格。但是走第一步时,可以走一格或两格。兵的吃子方法与行棋方向不一样,它是直走斜吃,也就是如果兵的斜进一格内有对方棋子,就可以吃掉它而占据该格。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340