2017-04-19 14 views
0

サイコロをもう一度スローするか、ターンを終了するかを決めるCPUをプログラムする必要があります。CPUプレーヤーのサイコロゲーム

ゲームはすでに2人のプレーヤーで動作します。今私は第二のプレーヤーがそれ自身で意思決定をする必要があります。

私は何をしますか?これは、コードの一部です:

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)

+0

人間のプレーヤー(手動で入力を提供する人)とコンピュータプレーヤー(何らかのアルゴリズムに基づいて再度ロールするかどうかを決定する人)に異なるロジックを使用するにはどういう質問ですか?コンピュータのプレーヤーはロールバックするかどうかを決定するために使用する? –

+0

実際の人のように、CPU(プレイヤー2を代用する)をどのようにしてサイコロを投げるかターンを終了するかを決める方法。 すでに2人の本物のプレーヤーで動作します。今はCPUを実装する必要があります。 – angelustt

答えて

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)部分は、本質的に再びダイスを転がすことは、最大の上に私を置くことを50%の確率未満がある場合」、と言っている:あなたが使用できる最も単純なアルゴリズムのためのコードは、おそらく次のようになりますロールバック "。そこから、ゲームのルールに応じて絞り込むことができます。たとえば、毎回お金が賭けられている場合、コンピュータは、金額が多い場合に金型が転がったときに最大値を超えないことを75%確かめることができます。

+0

"最大<最大(最高の合計):(最大 - 合計):"という部分を試していますが、常にダイスを回し続けます。 – angelustt

+0

Hmm - コードを見ずに何をすべきかを知るのは難しいです。私はたぶんループにステートメントを追加して、毎回変数のすべてを出力し、期待通りの方法を変更していることを確認してください(増加し続ける合計でなければなりません)。 –

関連する問題