🎍

じゃんけんゲームを作ってみる

2021/01/04に公開

近所に富士そばができるらしいです

その前、そこには何があったっけ?
と思い出そうとしても全く思い出せませんでした

何十回(何百回?)と通り過ぎたり、向かいのマクドナルドから
窓越しに見ていたはずなのに、まったく思い出せませんでした

家に戻り、ストリートビューで確認すると、
去年一昨年は工事中の幕が張られていました。
それを見ても、出てきた感想は「そうだったかな〜...?」でした

人の記憶はあやふやなものであることを、あらためて経験しました

最近はもっぱらエンジニアVtuber凛さんのチャンネルで勉強しています。

こういう方がたくさん出てくると楽しく学べそうです
自分でやってみても良いかも?

じゃんけんゲームを作ってみる

from random import randint
import time

hands = ["Goo", "Choki", "Paa"]
rules = ["Draw ", "Lose... ", "Win!!! "]
draw = 0
lose = 0
win = 0

print("----------------------------------------------")
print("      Let's JAN-KEN Start!!!!")
print("----------------------------------------------")

while True:
  # Player
  print("【 0 : Goo 】", "【 1 : Choki 】", "【 2 : Paa 】")

  while True:
    try:
        p = int(input("You choose ==========> "))
        if p in [0, 1, 2]:
          print("Yes!")
          break
        else:
          print("0か1か2て言うたやん!お願いしますわ!") 
    except:
        print("数字ですらないですやん!せめて!せめて数字でお願いしますわ!") 
  
  print("----------------------------------------------")
  print("■ You 【 " + hands[p] + " 】 play")
  time.sleep(0.9)
  #CPU
  m = randint(0, 2)
  print("● CPU 【 " + hands[m] + " 】 play")
  print("----------------------------------------------")
  time.sleep(0.9)
  #gameset
  i = (p - m) % 3
  print("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■")
  print(rules[i])
  print("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■")
  if i == 0:
      draw = draw + 1
  elif i == 1:
      lose = lose + 1
  else:
      win == win + 1
  time.sleep(0.9)
  #result
  print("{}...Win / {}...Lose / {}...Draw".format(win, lose, draw))
  print("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■")
  if win == 3:
      print("▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼")
      time.sleep(3)
      print("3wins!!!! You win!!!!")
      print("▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲")
      break
  if lose == 3:
      print("▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼")
      time.sleep(3)
      print("3loses... You lose...")
      print("▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲")
      break
  time.sleep(1)

0,1,2以外を入力したときのエラー処理について、まずはフロー図を描いてみた

フロー図を作るにあたって、こちらのサイトの使いやすさを実感しました
https://app.diagrams.net/

そして、追記したwhile文がこちら

while True:
    try:
        p = int(input("You choose ==========> "))
        if p in [0, 1, 2]:
          print("Yes!")
          break
        else:
          print("0か1か2て言うたやん!お願いしますわ!") 
    except:
        print("数字ですらないですやん!せめて!せめて数字でお願いしますわ!") 

意図した結果になりました
もっとスマートな書き方があるかもしれませんが、今のところはこんな感じです

勉強結果に寄せて

上記は去年の勉強の一部ですが、

  1. フロー図を書く
  2. 例外処理を書く
  3. 自分でwhile文を書く

ということができたのが嬉しく、記憶に残っていましたので
ここにも記述した次第です

新年の抱負(?)

周りの方々がハイレベルな処理をしているなか、
わたしはまだこの辺か、と思ったりもしますが、自分のペースで進めていこうと思います

あと、最近は食べるとすぐ眠くなってしまいますし、
また太りだしたので食事を見直していきます

Discussion