👊UIデザイナーが✌️Pythonに挑戦して✋じゃんけんゲームをつくってみた話
こんにちは。coconalaプロダクトデザイナーの、さかけんです🐶
前回、初めてPythonを体験してみた話を記事にしたのですが、今回は1歩進んでPythomでじゃんけんゲームのプログラムを書いてみた話をしたいと思います🙋どうぞよろしくお願いします!
前回の記事はこちら↓
👨💻ざっくりサマリー
💫今回の成果物はこちら
前回はオンラインセミナーに参加したのですが、今回は別のところが運営しているオフラインの無料ハンズオンセミナーだったのでコーディングで行き詰まったら質問しながら進めることができました🙌
具体的な内容を紹介していけたらと思うので、興味のある方は是非見ていってください〜!👁️
今回参加した講座
今回はオフラインの無料ハンズオンセミナーに参加!🙌
プリントで演習問題が配られて、ひとつずつ演習を解いていく形式でした👨💻
演習を進めることでじゃんけんゲームが進化していくので、ステップbyステップで楽しみながら進めることができました😊
最初の演習問題
import random
print('じゃんけんスタート')
print('自分の手を入力してください')
my_hand = int(input('0:グー, 1:チョキ, 2:パー'))
you_hand = random.randint(0, 2)
if my_hand == 0:
if you_hand == 0:
print('あいこ')
elif you_hand == 1:
print('勝ち')
elif my_hand == 1:
if you_hand == 0:
print('負け')
elif you_hand == 1:
print('あいこ')
👆最初に解いた演習がこちら
現状では「パー」が無いじゃんけんゲームを、「パー」が出せるじゃんけんゲームに改修しようというものでした✋
最終的なコード
import random
hands = ['グー', 'チョキ', 'パー']
results = {'win':'勝ち', 'lose':'負け', 'draw':'あいこ'}
def start_message():
print('じゃんけんスタート')
def get_my_hand():
print('自分の手を入力してください')
input_message = ''
index = 0
for hand in hands:
input_message += str(index) + ':' + hand
if index < 2:
input_message += ', '
index += 1
return int(input(input_message))
def get_you_hand():
return random.randint(0, 2)
def get_hand_name(hand_number):
return hands[hand_number]
def view_hand(my_hand, you_hand):
print('自分の手は ' + get_hand_name(my_hand))
print('相手の手は ' + get_hand_name(you_hand))
def get_result(hand_diff):
if hand_diff == 0:
return 'draw'
elif hand_diff == -1 or hand_diff == 2:
return 'win'
else:
return 'lose'
def view_result(result):
print(results[result])
start_message()
my_hand = get_my_hand()
you_hand = get_you_hand()
hand_diff = my_hand - you_hand
view_hand(my_hand, you_hand)
result = get_result(hand_diff)
view_result(result)
👆そして最終的にはこのような形に!✨(その途中に6つの演習をやりました)
0〜2の中から自分の手を入力すると、じゃんけんを開始して勝敗がわかるようになっています👌自分の手と相手の手も表示されるように、それぞれ関数も定義しました🙌
具体的に習ったこと
if文と条件分岐
def get_result(hand_diff):
if hand_diff == 0:
return 'draw'
elif hand_diff == -1 or hand_diff == 2:
return 'win'
else:
return 'lose'
👆じゃんけんゲームではこんな感じ👀
もし変数「hand_diff」が0なら「draw」、-1か2なら「win」、それ以外なら「lose」。といった感じです😌
リストと辞書型
hands = ['グー', 'チョキ', 'パー']
results = {'win':'勝ち', 'lose':'負け', 'draw':'あいこ'}
👆じゃんけんゲームではこんな感じ👀
上がhandsのリストで「グー」「チョキ」「パー」が格納されています✊
それぞれ0から順番にインデックスが割り振られて、「グー」を取り出したいときはhands[0]と書きます⚙️
下がresultsの辞書型で、この辞書には「win」、「lose」、「draw」というキーと、それぞれの日本語「勝ち」、「負け」、「あいこ」がペアで入っています。例えば、results['win']とすると「勝ち」が取り出せます。
for文と繰り返し処理
hands = ['グー', 'チョキ', 'パー']
for hand in hands:
input_message += str(index) + ':' + hand
if index < 2:
input_message += ', '
index += 1
return int(input(input_message))
👆じゃんけんゲームではこんな感じ👀
「グー」「チョキ」「パー」が格納されているhandsのリストから順番に文字列を取り出して数字(index)や記号(:や,)と組み合わせてinput_messageに文字列を繰り返し追加しています。
これによって、最終的に「0:グー, 1:チョキ, 2:パー」という文字列が出来上がり、テキストボックスと一緒に表示するメッセージができました!🙌
おわりに
いかがだったでしょうか?
前回はじめてPythonを触ってみて、その楽しさの一端に触れた感じだったのですが、今回はさらに1歩踏み込んでいけた実感があって、すごく楽しかったです!次は何できるかなとワクワクしてます〜!😊
おすすめのイベントやサイトがあったら是非コメントで教えてください!🙌
エンジニアの方、プログラミングに興味のある方は、是非ココナラのテックブログもご覧ください〜!👇
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?