【2日目】pythonの基礎とスイカ割りゲーム

投稿日 最終更新日

pythonで音楽系人工知能を作るまでの日記【2日目】pythonの基礎とスイカ割りゲーム

Python Japanの「ゼロからのPython入門講座」をとりあえず一通りやった。

ここからは練習問題を解くのが良いらしいので、練習問題を解いたり、簡単な作りたいものがあればそれを作ってみるフェーズに入る。

ゼロからのPython入門講座の最後はスイカ割りゲームを作るという実習系のお勉強だった。自分で考えて作るのが面白いので、「ゲームを構成する手続きの」部分だけ参考にして自分で作ってみた。

num = input("好きな自然数を入力してください")
num = int(num)

#自然数から4桁の番号を作りだして座標にする
while num < 1000 or num >= 10000:
    if num < 1000:
      num = num * 10 - 1
    else:
      num = num // 10 + 1

#4桁の数字を座標に指定
num = str(num)
WM_X,WM_Y,P_X,P_Y = num
WM_X = int(WM_X)
WM_Y = int(WM_Y)
P_X  = int(P_X)
P_Y  = int(P_Y)

while (WM_X,WM_Y) != (P_X,P_Y):
    Xdis = abs(WM_X - P_X)
    Ydis = abs(WM_Y - P_Y)
    print("スイカとの距離は横方向に",Xdis,"個。縦方向に",Ydis,"個離れています")
    print("東西南北から進みたい方向を英語小文字で入力してください(北=n,南=s,東=e,西=w)")
    inp = input()
    
    if inp == "e":
        P_X = P_X + 1
    elif inp == "w":
        P_X = P_X - 1
    elif inp == "n":
        P_Y = P_Y + 1
    elif inp == "s":
        P_Y = P_Y - 1
    else:
        print("入力に失敗しました")
        print("北=n,南=s,東=e,西=wのいずれかの英語小文字を入力してください")
        continue
print("スイカを割ることができました!")
print("やったね!")

今の自分でわかるツッコミどころとしては、

  • 乱数の生成方法がわからなかったから座標が正の値にしかならない
  • 方向さえわかってしまえばあとは作業ゲーム

といったところがあるけど、一応形としては作ることができたから満足。

機械学習も楽しみ。