LoginSignup
0
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2021-01-04

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

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

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

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

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

意識しないと記憶には残りませんが、
意識すれば記憶に残すことはできそうなので、
勉強というのは意識して記憶に残す行為で、
記憶に残るというのは、自分の頭の中に玩具を格納していくようで、
のちのちまで、遊ぶ(=考える)楽しみにつながるのかもしれませんね

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

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

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

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)

上記は動画の内容と若干違っていまして、
1. 出力内容を少し派手にしたかった
2. 日本語変換が面倒だったので、コメントも英語にした
3. 0,1,2*以外*を入力したときのエラー処理を加えたかった

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

janken_flow.drawio_PNG.png

フロー図を作るにあたって、こちらのサイトの使いやすさを実感しました
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文を書く

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

新年の抱負(?)

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

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

0
0
1

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