スイカ割りゲーム作成時の失敗
東西南北以外を入力すると怒られるようにしたい。
if文のみを使った場合
import random
suikaido = random.randint(1,9)
suikakeido = random.randint(1,9)
hitoido = random.randint(1,9)
hitokeido = random.randint(1,9)
suikaichi = (suikaido,suikakeido)
hitoichi = (hitoido,hitokeido)
kyori = abs(hitoido-suikaido) + abs(hitokeido - suikakeido)
print("スイカ割りゲームへようこそ!")
print("現在地は",hitoichi,"だよ!")
print("スイカまでの距離は",kyori,"だよ!")
while suikaichi != hitoichi:
dousa = input("東西南北どれかを入力してね!")
if dousa == "北":
if hitoido < 9:
hitoido = hitoido + 1
else:
print("これ以上北には行けないよ!")
if dousa == "西":
if hitokeido > 0:
hitokeido = hitokeido -1
else:
print("これ以上西には行けないよ!")
if dousa == "南":
if hitoido > 0:
hitoido = hitoido -1
else:
print("これ以上南には行けないよ!")
if dousa == "東":
if hitokeido < 9:
hitokeido = hitokeido +1
else:
print("これ以上東には行けないよ!")
else:
print("東西南北どれかにせい言うたやろ!")
hitoichi = (hitoido,hitokeido)
kyori = abs(hitoido-suikaido) + abs(hitokeido - suikakeido)
print("現在地",hitoichi)
print("スイカまでの距離",kyori)
print("スイカを割ったよ!おめでとう!")
print("東西南北どれかにせい言うたやろ!") 部分のelseが東のifにしか対応しておらず、北西南を入力したときにも東でないという理由で怒られる。
北より後ろのifをelifに変えることで東西南北のifを連結させ、elseを意図した通りに作用させる。
elif使ったver
import random
suikaido = random.randint(1,9)
suikakeido = random.randint(1,9)
hitoido = random.randint(1,9)
hitokeido = random.randint(1,9)
suikaichi = (suikaido,suikakeido)
hitoichi = (hitoido,hitokeido)
kyori = abs(hitoido-suikaido) + abs(hitokeido - suikakeido)
print("スイカ割りゲームへようこそ!")
print("現在地は",hitoichi,"だよ!")
print("スイカまでの距離は",kyori,"だよ!")
while suikaichi != hitoichi:
dousa = input("東西南北どれかを入力してね!")
if dousa == "北":
if hitoido < 9:
hitoido = hitoido + 1
else:
print("これ以上北には行けないよ!")
elif dousa == "西":
if hitokeido > 0:
hitokeido = hitokeido -1
else:
print("これ以上西には行けないよ!")
elif dousa == "南":
if hitoido > 0:
hitoido = hitoido -1
else:
print("これ以上南には行けないよ!")
elif dousa == "東":
if hitokeido < 9:
hitokeido = hitokeido +1
else:
print("これ以上東には行けないよ!")
else:
print("東西南北どれかにせい言うたやろ!")
hitoichi = (hitoido,hitokeido)
kyori = abs(hitoido-suikaido) + abs(hitokeido - suikakeido)
print("現在地",hitoichi)
print("スイカまでの距離",kyori)
print("スイカを割ったよ!おめでとう!")