CPU玩家骰子游戏
需要对CPU进行编程,决定是再次掷骰子还是结束掷骰子。CPU玩家骰子游戏
该游戏已与两名球员合作。现在我只需要第二个玩家自己做出决定。
我该怎么办?这是代码的一部分:
while not juego_termina:
print("")
jug_turno.lanzar_dado(dado)
jug2.dec_cpu()
while jug_turno.jugando:
jug2.dec_cpu() #Se anida un while para cada turno del jugador
print("Puntaje parcial acumulado:",end=' ')
print(jug_turno.p_parcial)
continuar = ""
jug2.dec_cpu()
while continuar != "SI" and continuar != "NO": #Pregunta si continua el turno
print("Desea seguir jugando? (SI/NO)")
continuar = input().upper() #.upper para la mayuscula
if continuar == "SI":
jug_turno.lanzar_dado(dado)
else:
jug_turno.terminar_turno()
if jug_turno.p_total >= meta: #Compara el puntaje total con la meta asignada al inicio
juego_termina = True #Se acaba el juego y salta a nombrar el ganador
else:
if jug_turno == jug1:
jug_turno = jug2
else:
jug_turno = jug1
mostrar_puntajes(jug1,jug2)
打印(“厄尔尼诺ganador ES:”) 打印(jug_turno.nombre)
我只知道西班牙的量小,因此有可能我不正确地阅读你的代码,但它看起来像是21点的游戏 - 胜出的玩家是没有超过某个最大值的玩家总数最高(在21点的情况下为21)。你可以用最简单的算法的代码可能看起来是这样的:
def dec_cpu(maximum):
total = 0
while total < maximum and (highest_possible_die_roll/2) < (maximum - total):
total = total + roll_die()
return total
的(highest_possible_die_roll/2) < (maximum - total)
部分基本上等于在说,“如果有小于50%的几率使滚动再死将让我在最高,再次滚动“。从那里,你可以根据游戏规则进行改进。例如,如果每次有大量金钱下注,那么计算机可能希望75%的人确信,如果线上有很多钱,那么当骰子滚动时它们不会超过最大值。
尝试执行“total
嗯 - 很难知道该怎么做,但没有看到代码。我可能会在循环中添加一个语句,以便每次都打印所有变量,并确保它们按照您期望的方式进行更改(它应该只是总量不断增加)。 –
问题:“我如何为人类播放器(谁手动提供输入)和计算机播放器(谁决定是否基于某种算法再次滚动)使用不同的逻辑?”,或者是“什么逻辑应该电脑播放器用来决定是否再次滚动?“ –
如何让CPU(代替玩家2)决定是投掷骰子还是结束回合,就像真人一样。 它已经与2个真正的球员合作。现在我只需要执行CPU – angelustt