我正在做一个双人骰子游戏,有五轮,但是我想保持前几轮的分数不变,我该怎么做?
游戏规则如下:
每个玩家骰子上滚动的分数会加到他们的分数上。如果总数是偶数,他们的分数会增加10分。如果总数是奇数,他们的分数会减去5分。如果他们掷出双倍,他们会多掷一个骰子,并将滚动的分数加到他们的分数上。玩家的分数在任何时候都不能低于0。在5轮结束时得分最高的人获胜。如果两个玩家在5轮结束时得分相同,他们每人投1个死,得分最高的人获胜(这一直重复到有人获胜)。
import random
import time
total_player2score = 0
total_player1score = 0
rounds = 0
player_1 = 0
player_2 = 0
while rounds != 5:
total_player2score = total_player2score + player_2
total_player1score = total_player1score + player_1
rounds = rounds + 1
number = random.randint(1, 6)
number2 = random.randint(1, 6)
total_player1score = number + number2
print("*"*50)
print("Round {}!".format(rounds))
print("*"*50)
print("Player 1's turn. Type 'roll' to roll the dice.")
player1_input = input(">>> ")
if player1_input == "roll":
time.sleep(0.5)
print("Player 1's first roll is", number)
print("Player 1's second roll.Type 'roll' to roll the dice")
player1_input = input(">>> ")
if player1_input == "roll":
time.sleep(0.5)
print("player 1's second roll is", number2)
if total_player1score % 2 == 0:
total_player1score = total_player1score + 10
print("Player 1's total is even so 10 points will be added")
print("*"*50)
print("Player 1 has", total_player1score, "points")
else:
total_player1score = total_player1score - 5
total_player1score = max(0, total_player2score)
print("player 1's total is odd so 5 points will be deducted")
print("*"*50)
print("Player 1 has", total_player1score, "points")
number = random.randint(1, 6)
number2 = random.randint(1, 6)
total_player2score = number + number2
print("*"*50)
print("Player 2's turn. Type 'roll' to roll the dice")
player2_input = input(">>> ")
if player2_input == "roll":
time.sleep(0.5)
print("Player 2's first roll is", number)
print("Player 2's second roll.Type 'roll' to roll the dice")
player2_input = input(">>> ")
if player2_input == "roll":
time.sleep(0.5)
print("player 2's second roll is", number2)
if total_player2score % 2 == 0:
total_player2score = total_player2score + 10
print("Player 2's total is even so 10 points will be added")
print("*"*50)
print("Player 2 has", total_player2score, "points")
else:
total_player2score = total_player2score - 5
total_player2score = max(0, total_player2score)
print("player 2's total is odd so 5 points will be deducted")
print("*"*50)
print("Player 2 has", total_player2score, "points")
def writeUp(score_1,score_2,nameoffile):
with open(f"{nameoffile}.txt","a") as logz:
print(f"score1 {score_1}\nscore2 {score_2}",file=logz)
def readUp(nameoffile):
with open(f"{nameoffile}.txt","r") as data:
lines = data.readlines()
last_2 = lines[:2]
score_1,score_2 = None,None
for element in last_2:
splitt = element.split(' ')
if element.find('score1') != -1:
score_1 = int(splitt[1])
elif element.find('score2') != -1:
score_2 = int(splitt[1])
return score_1,score_2
sci1,sci2 = 50,50
writeUp(sci1,sci2,'mysaves')
sc1,sc2 = readUp('mysaves')
print(sc1,sc2)
#这应该会有所帮助,给定的函数会创建一个txt文件并将分数存储到其中
问题内容: 我很难弄清楚为什么while循环实际上不会循环。它运行一次并停止。 我正在尝试使其循环,以便用户能够多次转换单位。任何帮助都欢迎! 问题答案: 问题在于,当您呼叫时,它会占用该号码,但不会占用该号码之后的换行符。要解决此问题,只需在调用后放一行代码。 示例和完整说明: 假设您输入“ km”,按回车,“ 123”,按回车。从程序的角度来看,输入流为。 该代码获取值,并且使输入超出第一个。
我试图用Java实现一个简单的客户机-服务器应用程序。 这是代码: 客户端.java 服务器.java 这是主要类: 代码的逻辑很简单:客户端和服务器都在等待< code>while(true)循环中的消息。 服务器的< code>listen方法中的< code>while循环执行得很好。但是,在< code>listenForMessages方法中,循环似乎只执行一次。我只看到一个“在循环”印
问题内容: 最终它将在jLabel上显示最终编号,但不会递增更新编号。任何帮助 问题答案: Swing是单线程的 。因此, 长时间运行的任务绝不应在EDT中进行 。这包括睡觉。而是使用。这将在后台线程中延迟,然后发布要在EDT中执行的操作。 也可以看看: 如何使用摇摆计时器 该SSCCE模仿一个计数器,该计数器从每秒开始计数(即更新实例),直到应用程序终止。
本文向大家介绍C#中for循环、while循环循环执行的方法,包括了C#中for循环、while循环循环执行的方法的使用技巧和注意事项,需要的朋友参考一下 先给大家介绍下C#中的循环执行for循环 在这一节练习中,我们向大家介绍一下C#中的另一种重要的循环语句,for循环。 表达式1:一般为赋值表达式,给控制变量赋初值; 表达式2:逻辑表达式,循环控制条件;当条件为真时,循环执行循环体中的语句。
我正在编写一个 Java 程序。它应该打印出年终账户余额,今年投资,年度回报和年度数量。前任: 第一年-投资10000美元,投资额为10%,最终投资额为11000美元第二年-在现有11000美元的基础上再投资10000美元,现在你有21000美元,年回报率为2100美元,最终投资额为23100美元,持续投资6年。 我的代码打印了所有6年,但与第一年的值相同。循环有什么问题吗?非常感谢。这里我的代码
我正在使用Vagrant VirtualBox CentOS 6.5(box)创建虚拟机。每次我向VM发出命令vagrant up和SSH时,我都会收到以下消息。 请注意以下几点。 虚拟机设置为静态IP(例如10.211.55.10) 我还尝试了引导,将/etc/ssh复制到/vagrant/ssh,然后在虚拟机提供上,将/vagrant/ssh/*复制回/etc/ssh,但这似乎没有帮助。 绕过