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

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

0a2e5e6e75cb47678b1b7122b7178431.png5c9459d33296441fb2597c0c71f61b5e.png

 

 

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

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

bd529734dc2d4be9ae346d43fa678322.png

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

Q[1::2]=1
Q

7102c4f1f324407ebb6f559dd3e10477.png

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

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

2f08ccc7854047fda8ede1973760662a.png

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

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

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

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

259f47ce442f4ba994e6b548d0c0bab5.png

第四步:将奇数行的偶数列为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枚。28667aeae698440abbfcbcfa0f4b61bf.png

国际象棋的规则:

1、布子规则:

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

2、行棋规则:

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

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

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

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

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

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

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

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

 

 

  • 13
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏天的学习日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值