- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我必须创建一个考虑到作业赌注的掷骰子游戏。到目前为止,我的代码的工作原理是掷骰子是正确的,并且作业要求的其他小花絮。但是现在我不知道如何将每场比赛记录为玩家或计算机的输赢,以便将彩池添加到赢家的钱中。我意识到我的代码是半成品,还没有完成,也没有按原样运行,但我真的需要某人的帮助。谢谢,麻烦您了。以下是我的作业的更具体说明:
http://www.ics.uci.edu/~kay/courses/i42/hw/labA.html
import random
def craps():
print("Welcome to Sky Masterson's Craps Game")
handle_commands()
def handle_commands(): # Collection -> Collection (plus interaction)
""" Display menu to user, accept and process commands
"""
playerInitial = 500
compInitial = 500
MENU = "How much would you like to bet?: "
while True:
bet = float(input(MENU))
if bet <= playerInitial:
human_game()
elif bet > playerInitial:
print("Sorry, you can't bet more than you have")
def handle_commands2():
MENU2 = "Would you like to play again? (y or n): "
while True:
response = input (MENU2)
if response=="y":
counter = counter + multipleGames()
elif response=="n":
while ( counter < 2000):
roll = random.randint(1, 6) + random.randint(1,6)
updateCount(roll)
counter += 1
print ("Thank you for playing." + "\n" + "\n" + "Distribution of dice rolls: " + "\n")
return
else:
invalid_command(response)
def invalid_command(reponse):
"""print message for invalid menu command.
"""
print("Sorry; '" + response + "' isn't a valid command. Please try again.")
def play_game():
"""prints shooters roll results
"""
diceRoll = 0
roll = random.randint(1, 6) + random.randint(1, 6)
updateCount(roll)
diceRoll = diceRoll + 1
point = 0
print("The roll is " + str(roll))
response = (roll)
if response== 7 or response== 11:
print("Natural; shooter wins" + "\n" + "Thank you for playing")
handle_commands2()
elif response== 2 or response== 3 or response== 12:
print("Crapped out; shooter loses" + "\n" + "Thank you for playing")
handle_commands2()
else:
print("The point is " + str(roll))
point = roll
secondRoll = 0
handle_commands()
while (secondRoll !=point) and (secondRoll != 7):
secondRoll = random.randint(1, 6) + random.randint(1, 6)
updateCount(secondRoll)
diceRoll += 1
print("The roll is " + str(secondRoll))
handle_commands()
if secondRoll== point:
print ("Made the point; shooter wins." + "\n" + "Thank you for playing")
handle_commands2()
elif (secondRoll == 7):
print ("Crapped out; shooter loses." + "\n" + "Thank you for playing")
handle_commands2()
return diceRoll
def multipleGames():
gameCounter = 0
while (gameCounter <= 2000):
print("Your game: ")
gameCounter += play_game()
print("\n")
print("Computer's game: ")
gameCounter += play_game()
print( "\n")
return gameCounter
def updateCount(point):
count =List[point] + 1
List[point] = count
List = {2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0, 10:0, 11:0, 12:0}
def human_game():
playerInitial = 500
compInitial = 500
while True:
play_game()
if
playerInitial += bet
compInitial += bet
counter = 0
counter = counter + multipleGames()
playerInitial -= bet
craps()
for point in List:
print("%2d" %(point) + ": " + "%3d" %(List[point]) + " " + "(" + ("%2d" % (int((List[point])/2000*100)))+ "%" + ")" + " " + ("*" *(int((List[point])/2000*100))))
最佳答案
使用类:
import random
class Human:
def __init__(self):
self.name = 'Human'
self.wins = []
self.losses = []
self.bets = []
self.total = 0
class Computer:
def __init__(self):
self.name = 'Computer'
self.wins = []
self.losses = []
self.bets = []
self.total = 0
class Game:
def __init__(self):
self.rolls = []
self.currentPlayer = None
def roll(self):
self.rolls.append(random.randint(1, 6))
if __name__ == '__main__':
human = Human()
computer = Computer()
game = Game()
game.roll()
print games.rolls
我不会为您编写所有代码,但使用类会让事情变得很多更简单。
关于python - 记录掷骰子游戏的输赢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9027996/
我是 Java 新手,我正在尝试创建一个数组列表。 我制作了一个小程序,要求用户提供要掷的骰子数量: System.out.println("How many dices do you wan
我目前需要一些关于“简单”问题的建议。我正在构建一个游戏助手,用户可以在其中掷骰子(6 面骰子、20 面骰子等)。实际上,我只向用户显示号码。但是,为了更好用,我想在屏幕上显示骰子(例如,在带有自定义
我刚刚开始学习 Java 编程,并编写了一个程序来掷 x 面骰子 x 次。边数和卷数由用户输入定义。该程序以 JTable 格式给出每个数字的绝对频率和相对频率。一切都很顺利,直到您为侧面和卷数选择较
这段代码的用途:模拟100场CRAPS,记录第一轮输,第一轮赢,第二轮负加分,第二轮赢加分的#。 那些不熟悉掷骰子规则的人;您基本上掷两个骰子,如果结果不是 2、3 或 12 的总数,您可以再次掷骰(
所以我为龙与地下城创建了一个基本的掷骰子 dicord 机器人。 我到目前为止的代码可以掷任何类型的骰子,(例如“roll xdy”“roll 1d20”,“roll 100d100”) 当有人发送匹
我有一些关于java的问题。代码中有两个问题(我将它们作为注释留下)。另外使用设置和获取方法的目的是什么?您能简单地解释一下吗?我是初学者。谢谢:) public class Die { pri
尝试绘制 2 个骰子总和的 pmf,但出现一些右尾问题。 我尝试过使用 numpy 和其他 python 库,但问题仍然存在: import tensorflow as tf tf.enable_ea
当掷 2 个六面骰子时,最常见的结果应该是 7,而 2 和 12 是最不常见的结果。 当我执行下面的代码时,数字 12 的出现频率很高,这是错误的。 #include #include #incl
我正在尝试学习 Python 库 itertools,我认为一个好的测试是模拟掷骰子。使用 product 并使用 collections 库计算可能的方法数,很容易生成所有可能的滚动。我正在尝试解决
所以我做了这个掷骰子 100 次的方法,有 50% 的机会掷出 6。基本思想是 1 到 6 之间有 50% 的奇数和 50% 的偶数,所以如果掷出偶数,系统打印 6,否则打印 1 到 5 之间的随机数
我是 C++ 的初学者,这是家庭作业,但我卡住了。我还有一个问题,然后我就完成了。我想不出一种算法可以判断用户输入的是小直线 (1234) 还是 (2345) 还是 (3456)。我知道如何使用循环来
我是一名优秀的程序员,十分优秀!