Python国际象棋棋盘(简单)

时间:2017-10-31 12:06:42

标签: python

我是编程中的新手,所以我不是堆栈,而是与这个Python棋盘任务相混淆。 我想我做了一点" overdo"用代码。

所以这是一项任务: 鉴于棋盘的两个单元格。如果它们涂成一种颜色,则打印单词YES,如果是不同的颜色 - NO。 程序接收从1到8的四个数字的输入,每个数字指定列和行号,前两个 - 对于第一个单元格,然后是最后两个 - 对于第二个单元格。

这是我的代码:

h1 = int (input()) #first cell height
w1 = int (input()) #first cell width
h2 = int (input()) #second cell height
w2 = int (input()) #second cell width

#Guessing first cell color
if ((h1 % 2 != 0) and (w1 % 2 != 0)) or ((h1 % 2 == 0) and (w1 % 2 == 0)):
    one = str ('black')
else:
    one = str ('white')

#Guessing second cell color
if ((h2 % 2 != 0) and (w2 % 2 != 0)) or ((h2 % 2 == 0) and (w2 % 2 == 0)):
    two = str ('black')
else:
    two = str ('white')

#compare two cells
if one == two:
    print ('YES')
else:
    print ('NO')

有些东西告诉我它可以比当前版本简单得多。

1 个答案:

答案 0 :(得分:-1)

试试这个

h1 = int(input())
w1 = int(input())
h2 = int(input())
w2 = int(input())

def is_same_colour(h1, w1, h2, w2):
    if ((h1 + w1) % 2) == ((h2 + w2) % 2):
        print('YES')
    else:
        print('NO')

is_same_colour(h1, w1, h2, w2)

它使用的事实是,当单元格为黑色时,单元格的行和列的总和是偶数,而当单元格为白色时,则为奇数。