Dilema del prisionero
oleh Gabriel González Zamudio @gabogza
- 126
- 0
- 0
Introducción
El dilema del prisionero es un problema de la teoría de juegos, de la rama de la economía y matemáticas, esta parte se dedica a analizar comportamientos de las personas en diversos contextos, como economía, política, videojuegos, etc.
Este problema nos plantea que dos sospechosos son arrestados por un crimen, sin embargo, no se encuentran pruebas para condenarlos, por lo que un policia decide interrogar a cada uno por separado. Si alguno de los dos confiesa y el otro miente, el que miente recibira 3 años de prisión mientras que el otro saldrá libre. Si ambos confiesan, cada uno recibira 1 año de prisión. Por el contrario, si ambos mienten se les darán 2 años de prisión.

Materiales
Python importando random
Objetivo
Es demostrar cómo la toma de decisiones individuales puede llevar a un resultado peor para todos, incluso cuando existe una opción mutuamente beneficiosa, comprobar como cada jugador actúa de manera racional para su propio beneficio, aunque si no sale bien esto podría llevar a un peor resultado grupal.

Programa
import random
juegos = {
("cooperar", "cooperar"): (1, 1),
("cooperar", "mentir"): (0, 3),
("mentir", "cooperar"): (3, 0),
("mentir", "mentir"): (2, 2)
}
opciones = ["cooperar", "mentir"]
def menu():
print("***********************")
print("Bienvenido al juego del prisionero")
print("¿QUE QUIERE HACER?")
print("0: Explicación del juego")
print("1: Jugar con la ia")
print("2: Jugar con otro jugador")
print("3: Salir del menú")
def juego_solitario():
print("¿Que eliges tú? Eres el jugador 1")
print("cooperar o mentir")
print("ESCRIBE TU RESPUESTA")
print("**************")
jugador2 = random.choice(opciones)
jugador1 = input()
if (jugador1 == "cooperar") and (jugador2 == "cooperar"):
print("Jugador 1 eligió:", jugador1)
print("Jugador 2 eligió:", jugador2)
print("A los dos jugadores les dan 1 año de prisión ")
elif (jugador1 == "cooperar") and (jugador2 == "mentir"):
print("Jugador 1 eligió:", jugador1)
print("Jugador 2 eligió:", jugador2)
print("El jugador uno sale libre, al jugador 2 se le dan 3 años de prisión")
elif (jugador1 == "mentir") and (jugador2 == "cooperar"):
print("Jugador 1 eligió:", jugador1)
print("Jugador 2 eligió:", jugador2)
print("El jugador uno se le dan 3 años, el jugador 2 sale libre")
elif (jugador1 == "mentir") and (jugador2 == "mentir"):
print("Jugador 1 eligió:", jugador1)
print("Jugador 2 eligió:", jugador2)
print("A los dos jugadores se les dan 2 años")
else:
print("Pon un texto valido")
def juego_pareja():
print("Jugador 1 elija su respuesta")
print("cooperar o mentir")
print("ESCRIBE TU RESPUESTA")
print("**************")
jugador1 = input()
print("Jugador 2 elija su respuesta")
print("cooperar o mentir")
print("ESCRIBE TU RESPUESTA")
print("**************")
jugador2 = input()
if (jugador1 == "cooperar") and (jugador2 == "cooperar"):
print("Jugador 1 eligió:", jugador1)
print("Jugador 2 eligió:", jugador2)
print("A los dos jugadores les dan 1 año de prisión ")
elif (jugador1 == "cooperar") and (jugador2 == "mentir"):
print("Jugador 1 eligió:", jugador1)
print("Jugador 2 eligió:", jugador2)
print("El jugador uno sale libre, al jugador 2 se le dan 3 años de prisión")
elif (jugador1 == "mentir") and (jugador2 == "cooperar"):
print("Jugador 1 eligió:", jugador1)
print("Jugador 2 eligió:", jugador2)
print("El jugador uno se le dan 3 años, el jugador 2 sale libre")
elif (jugador1 == "mentir") and (jugador2 == "mentir"):
print("Jugador 1 eligió:", jugador1)
print("Jugador 2 eligió:", jugador2)
print("A los dos jugadores se les dan 2 años")
else:
print("Uno de los jugadores puso mal la respuesta")
while True:
menu()
respuesta = int(input())
if respuesta == 0:
print("Dos prisioneros son arrestados por un delito menor")
print("La policía no tiene pruebas suficientes para condenarlos por el cargo principal")
print("A cada prisionero se le ofrece un acuerdo: delatar al otro para rebajar la pena")
print("LAS CONSECUENCIAS SON:")
print(" -Si ambos cooperan, se les condena a un año de prisión")
print(" -Si ambos mienten, ambos recibirán 2 años de prisión")
print(" -Si uno coopera y el otro no, el que coopera sale de prsión, mientras que el otro recibirá una sentencia de 3 años")
elif respuesta == 1:
juego_solitario()
elif respuesta == 2:
juego_pareja()
elif respuesta == 3:
print("Gracias por jugar, tenga buen día")
break
else:
print ("Por favor eliga un número que este disponible")

1 komentar
Masuk atau bergabung Gratis untuk berkomentar