簡體   English   中英

CPU玩家骰子游戲

[英]CPU player dice game

需要對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:”)print(jug_turno.nombre)

我只知道少量的西班牙語,所以可能我讀錯了您的代碼,但看起來游戲像二十一點一樣工作-獲勝的玩家是在沒有超過某個最大值的情況下擁有最高總籌碼的玩家(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)部分本質上是在說:“如果再次(highest_possible_die_roll / 2) < (maximum - total)機會少於50%,則我會再次滾回最大值”。 從那里,您可以根據游戲規則對其進行優化。 例如,如果每次都下注一定數量的錢,那么計算機上可能想要確保75%的情況是,如果線上有很多錢,當骰子滾動時它們不會超過最大金額。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM