職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

サイコロゲーム

2021年04月19日 | Python
サイコロゲーム

【開発環境】
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 "", line 1, in <module>
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
残念!あなたの負けです。
>>>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする