
Google ColaboratoryでPythonを始める-6
こんにちはロック204チャンネルです。
この記事では「Google ColaboratoryでPythonを始める 第6回」 を紹介しております。
今回の内容は
乱数の使用
日付
辞書
While文
ジャンケンゲームの作成
について説明します。
乱数の使用

日付を扱う-1
時、分、秒、マイクロ秒を指定
日付の要素を個別に取得する
辞書 キーと値がセットとなった配列
while文
条件が成り立っている間は処理を繰り返す。
参考/ジャンケンゲーム
こちらがジャンケンゲームのコードとなります。
最初にインポート命令でrandomとmathモジュールを取り込みます。
そして各変数の初期設定を行ないます。
変数winは勝ち数を入れる変数です。
変数lossは負けの数を入れる変数となります。
wakeは 引き分けの数を入れる変数になります
変数pは、ここで設定した数により勝つか負けるか によってゲームオーバーを決める変数になります。
tableは、 勝ち負けを判定する辞書になります。 キーとなるのがあなたの手とpcの手を合成した文字列で判定結果がそれに対応するデータとなります。

コードの続きです
まず ゲームがスタートすると グー チョキ パーで答えてくださいという表示が出てきます。
そとて ゲームは勝ち数がp回か負け数がp回以下の場合このwhileループを繰り返します。
まずpcの出し手はrandom関数を使用して発生させます。 ここでは0から2までの乱数を発生させていきます。
そして乱数が 0の場合はpcの出し手はグー
1の場合にはチョキ
それ以外の場合にパー とします。

こちらもコードの続きです。
そして変数hanteiに辞書テーブルより あなたの手とpcの出し手を合成した キーで 検索し勝ち負けを取得します。
勝ち負けを数を加算するにはif文を使用し、それぞれの場合でwin, wake, lossに加算します。

コードの最後の部分となります。
この記述はwhile文を脱出したときのものです。
勝ち数がp回以上になった場合と、それ以外の場合、つまり負けた場合の判定結果を出力する部分となります。

# ジャンケンゲーム
import random
import math
win=0 #勝ち数を入れる
loss=0 #負け数を入れる
wake=0 #引き分け数を入れる
p=2 #p回勝つか・負けるとゲームオーバー
#勝ち負けの判定辞書 'あなたの手・PCの手':'勝ち負け'
table = {'グー・グー':'引き分け','グー・チョキ':'勝ち','グー・パー':'負け',
'チョキ・グー':'負け','チョキ・チョキ':'引き分け','チョキ・パー':'勝ち',
'パー・グー':'勝ち','パー・チョキ':'負け','パー・パー':'引き分け'}
print('**Game Start** グー チョキ パー で答えてください。')
while win<p and loss<p: #「勝ち数win」がpを超えないかつ「負け数loss」がpを超えない間は繰り返す。
your_hand=input("あなたの手は=") #あなたの手を入力
pc=math.floor(random.random()*3) #0-2の乱数を発生する
#PCの手を判定
if pc == 0:
pc_hand='グー'
else:
if pc == 1:
pc_hand='チョキ'
else:
pc_hand='パー'
print('PC=',pc_hand)
hantei=table[your_hand+"・"+pc_hand] #キーを合成し値(勝ち負け)を取得
print(hantei)
#勝ち負け数を加算
if hantei == '勝ち':
win+=1
else:
if hantei == '引き分け':
wake+=1
else:
loss+=1
print('**Game Over**')
if win >= p:
print('{}勝 {}負 {}分け であなたの勝ちです。'.format(win,loss,wake))
else:
print('{}勝 {}負 {}分け であなたの負けです。'.format(win,loss,wake))
今回は乱数の使用、日付、辞書、While文、そしてこれらを使用したジャンケンゲームについて紹介しました。
次回はカレンダーと配列計算についてお送りする予定です。
ご視聴ありがとうございました。