2017-10-31 13 views
0

私はコーディングで初心者です。だから私はスタックしていないが、このPythonのチェスボードのタスクと混同している小さなビットです。 私はコードで少し「過酷」に思った。Python Chess Board(簡単)

ここにタスクがあります。 チェス盤の2つのセルが指定されています。それらが1つの色で塗られている場合は、YESという語を印刷し、別の色であればNOを印刷します。 プログラムは1から8までの4つの数字の入力を受け取ります。各数字は列と行の番号を示し、最初の2つは最初のセル、最後の2つは2番目のセルです。

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') 

何かが、それははるかに簡単で、現在のバージョンであることができることを私に語っている:

そしてここでは私のコードです。

+3

これが改善されると思われる** working code **の場合は、[codereview.se]を参照してください。そうでない場合は、[mcve]で問題を明確にしてください。 – jonrsharpe

+1

文字列を 'str'にキャストする必要はありません。文字列はすでに文字列です。 – khelwood

+0

'if(h1 + w1)%2 == 0'のようなものを試して白いタイルかどうかを調べることができます。そうでなければ黒いタイルです。 'h2'と' w2'でも同じです。 –

答えて

-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) 

を試してみてください。