CPU玩家骰子游戏

2024-05-18 07:13:25 发布

您现在位置:Python中文网/ 问答频道 /正文

需要编程一个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)

打印(“El ganador es:”) 印刷品(罐)_turno.nombre公司)你知道吗


Tags: ifcpuelelsedecprintwhilesi
1条回答
网友
1楼 · 发布于 2024-05-18 07:13:25

我只懂一小部分西班牙语,所以我可能读错了你的代码,但看起来游戏就像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%的把握,如果线上有很多钱的话,在掷骰子的时候他们不会超过最大值。你知道吗

相关问题 更多 >