LoginSignup
1
0

elifの使い道について ~スイカ割りゲーム~

Last updated at Posted at 2024-03-28

スイカ割りゲーム作成時の失敗
東西南北以外を入力すると怒られるようにしたい。
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("スイカを割ったよ!おめでとう!")
1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0