雑記

プログラミング初心者はまず何を作ってみるとよいか【Python】

python ジャンケン

ジャンケンを作ってみよう

プログラミングをはじめてみると、こんなことを諸先輩方から言われると思います。

まずは何か作ってみると、勉強になるよ

しかし、

その何かがないんです!!

というそこのあなたは、ジャンケンを作ってみましょう!

要件

  • ジャンケンで自分の出す手は、実行後に入力するようにしてください。
  • 入力値は「グー」「チョキ」「パー」としてください。
  • 相手の出す手は、ランダムで取得してください。
  • 自分の手と相手の手と、勝敗をprintしてください。

ジャンケンのプログラムを書くことの何がいいのか

  1. 基礎知識のみで書くことができます。
  2. 正解が複数あるので、頭を使えます。
  3. 簡単なので、自信がつきやすく、もっとこうしてみたいと思えるようになります。

基礎知識のみで書くことができる

if文とライブラリの使用方法さえ覚えていれば、最低限動くものが作れるかと思います。

正解が複数あるため、頭を使える

勝敗はどうやって表現するか?グーチョキパーを数値に置き換えるのか?勝敗判定はまず最初に何をするか?あいこから判定するか、勝っているかどうかから判定するか?可読性を担保するにはどうしたらいいか?手の種類はリストで持つか、辞書型で持つか?

自信がつきやすく、もっとこうしてみたいと思える

やっていて、途中楽しくなってくると思います!

なーんだ、俺プログラム書けるじゃーん!

そして、これもやってみたい、あれもやってみたいと思えるようになったらこっちのものです。

  • グー、チョキ、パーがひらがなで入ってきても自動変換できるようにしたいな。
  • 間違った手を入力した時は繰り返し入力できるようにしたいな。
  • 3回勝負を実装してみたいな。
  • 勝敗が決まるまで繰り返し処理をいれたいな。
  • 勝敗を表示するまでに、3秒ほどタメが欲しいな。
  • 画像も表示させたいな。
  • 3人勝負させたいな。(これ、多分一気に難しくなります)

などなど、自分にしかできないじゃないかという錯覚を覚えながら楽しく書いていけたら最高です。のめり込んでいる証拠です。思うがままに書いてみてください。

参考:筆者のコード

筆者が何もみずに書いた、実力の底が見えてしまうコードです。。。

# coding: utf-8
import random

HANDS_LIST = ["グー", "チョキ", "パー"]

your_hand = input("何を出すか入力してください:")
if your_hand not in HANDS_LIST:
    raise ValueError("グー、チョキ、パーから選んでください")

cpu_hand = random.choice(HANDS_LIST)

print("===結果===")
print("あなたの手は{}です。相手の手は{}です。".format(your_hand, cpu_hand))

if your_hand == cpu_hand:
    print("あいこです")
elif (your_hand == "グー" and cpu_hand == "チョキ") or\
     (your_hand == "チョキ" and cpu_hand == "パー") or\
     (your_hand == "パー" and cpu_hand == "グー"):
    print("あなたの勝ちです")
else:
    print("あなたの負けです。")

 

コードとしても、実装としてもまだまだですが、初心者の頃にこれだけ書ければ十分なのではないかと思います。

皆さんも是非、ジャンケンプログラムを書いて遊んでみてください。

正解はないので、思うがままに!

ABOUT ME
hirayuki
今年で社会人3年目になります。 日々体当たりで仕事を覚えています。 テーマはIT・教育です。 少しでも技術に親しんでもらえるよう、noteで4コマ漫画も書いています。 https://note.mu/hirayuki