じゃんけんしたいね
どうもこんにちは、突然ですがじゃんけんってとても奥深いと思いませんか?思いますよね????ね?????
日々じゃんけんに精進したい
私は一人ぼっちでドMなのでそんな私にぴったりなコードをpythonで書きました。なるべく初心者にわかりやすいように簡単なコードにしています。条件分岐や変数を理解していればきっとこのコードを理解できます。
import random
#人間側の手を入力
whatyourhand = input("what your hand?")
#1:グー 2:チョキ 3:パー
if whatyourhand == "グー":
userhand = 1
elif whatyourhand =="チョキ":
userhand = 2
elif whatyourhand == "パー":
userhand = 3
#userhand = 4 はグーチョキパー以外が入力されたとき
else:
userhand = 4
cpuhand = random.randint(1,3)
if cpuhand == 1:
returnhand = "グー"
elif cpuhand == 2:
returnhand = "チョキ"
elif cpuhand == 3:
returnhand = "パー"
status = (userhand - cpuhand + 2) % 3
#0:負け 1:勝ち 2:あいこ 基準は出した人
if status == 0:
message = "あなたは負け犬です。惨めですね。"
elif status == 1:
message = "機械相手に勝って何が楽しいんですか"
elif status == 2:
message = "あいこ"
#userhandが4のときエラー文を出力してそれ以外のときに返答文を返す
if userhand == 4:
finalreturn = "グー、チョキ、パーをカタカナで入力してね♡"
else:
finalreturn = "私は"+returnhand+"をだしました"+ message
print(finalreturn)
簡単な解説
このコードはCPU側の手を
random.randint(1,3)
で生成しています。random.randint(1,3)というのは1から3の整数のうち(つまり1,2,3)無作為に1つの整数を選んで返す関数です。これによってCPU側がランダムな手を出すようにしていています(逆に言うと対人戦のような心理戦はできませんね)random関数をつかうにはrandomモジュールをインポートする実用があるため最初の行で
import random
と宣言しています。よくわからないうちは
"randomを使うにはimport randomを最初に書く"
と覚えておいてください。
次は
status = (userhand - cpuhand + 2) % 3
の部分です。ここは勝敗判定を行っています。ここは数学的思考が試されるのでぜひ考えてみてください。(ヒント:mod3の値で場合分け)
もし理解が難しいのであれば代わりにこのコードを埋め込んでみても同じ動作をします
if userhand == cpuhand:
status = 2
elif userhand == 1 and cpuhand == 2:
status = 1
else userhand == 1 and cpuhand == 3:
status = 0
elif userhand == 2 and cpuhand == 1:
status = 0
elif userhand == 2 and cpuhand == 3:
status = 1
elif userhand == 3 and cpuhand == 1:
status = 1
elif userhand == 3 and cpuhand == 2:
status = 0
これがたったの一行で収まるというのは不思議ですね。考え方次第でいくらでも楽ができるのはコードを書く上でぜひ意識しておいてほしいです。もちろんこのコード以外にも様々な方法でじゃんけんのプログラミングを作成することができます。ぜひ一から自分自身で開発してみてください。きっと新たな発見や喜びが見いだせますよ