サイコロゲーム
【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと
【正多面体で無い時エラーを表示するには】
「dice.py」のクラスDiceを改造する
import random
class Dice:
def __init__(self,val = 6):
self.face_num = val
def shoot(self):
return random.randint(1,self.face_num)
改造後
import random
class Dice:
def __init__(self,val=6):
if val in [4,6,8,12,20]:
self.face_num = val
else:
raise Exception('そんな多面はありません')
def shoot(self):
return random.randint(1,self.face_num)
実行してみる
Python 3.8.9 (tags/v3.8.9:a743f81, Apr 2 2021, 11:10:41) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import dice
>>> sai = dice.Dice()
>>> sai.face_num
6
>>> sai = dice.Dice(7)
Traceback (most recent call last):
File "
sai = dice.Dice(7)
File "D:\pg\Python38\dice.py", line 9, in __init__
raise Exception('そんな多面はありません')
Exception: そんな多面はありません
>>>
【サイコロゲーム】
4、6、8、12、20面体サイコロのどれか1つを選んで、そのサイコロでコンピュータと勝負します。勝敗は、出た目の大きさで決める簡単なゲーム
・サイコロゲームのソースコードを「dice_game.py」ファイルに書く
import dice
num = input('4、6、8、12、20のどれで勝負しますか?:')#input関数で値を受け入れる
num = int(num) #文字列を整数に変換
my_dice = dice.Dice(num) #ユーザー用のサイコロ
cpu_dice = dice.Dice(num) #コンピュータ用のサイコロ
my_pip = my_dice.shoot() #pipはサイコロの目の意味
cpu_pip = cpu_dice.shoot() #コンピュータの出た目
#出目を画面に出力 数字はstr関数を使って文字列に変更
print('cpu: {}/あなた:{}'.format(cpu_pip,my_pip))
#状況によってメッセージを変える
if my_pip > cpu_pip:
print('おめでとうございます。あなたの勝ちです!')
elif my_pip < cpu_pip:
print('残念!あなたの負けです。')
else:
print('引き分けです')
実行
Python 3.8.9 (tags/v3.8.9:a743f81, Apr 2 2021, 11:10:41) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
========================= RESTART: D:/Data/dice_game.py ========================
4、6、8、12、20のどれで勝負しますか?:8
cpu: 6/あなた:1
残念!あなたの負けです。
>>>
※コメント投稿者のブログIDはブログ作成者のみに通知されます