CPU播放器骰子游戏

时间:2017-04-19 02:17:42

标签: 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)

print(“El ganador es:”) 打印(jug_turno.nombre)

1 个答案:

答案 0 :(得分:0)

我只知道少量的西班牙语,所以我可能会错误地阅读你的代码,但看起来游戏的工作方式就像二十一点一样 - 获胜的玩家就是总数最高的玩家没有超过一些最大值(在二十一点的情况下为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)部分基本上是在说,&#34;如果不到50%的几率再次滚动骰子将使我超过最大值,再次滚动&#34;。从那里,您可以根据游戏规则进行优化。例如,如果每次下注都有一定数量的钱,那么计算机可能希望75%确定当骰子滚动时他们不会超过最大值,如果有很多钱的话。钱就行了。