Reglas básicas (diferentes a las mías)
Historia
Es el año 4579, los humanos ahora tienen 2 manos con 1001 dedos cada una. Los palillos se han basado en puntos. Y @Dennis tiene más repeticiones que @Martin ... Los círculos rojos dibujados a mano ahora tienen un voto negativo ... Jon Skeet ha alcanzado 2 billones de repeticiones en cada sitio de SE ... Sí, lo sé.
Chopsticks es un juego de manos que se ha resuelto. Para evitar esto, lo he creado mutado. Aumenté la cantidad de dedos.
Reglas del juego
La forma en que esto se juega
Todos comienzan con 2 manos. Cada mano tiene 1001 dedos. Cada mano comienza con 1 (un) dedo hacia arriba en cada mano. Durante tu turno puedes "golpear" la mano de otros jugadores. Para golpear, elige 1 de tus manos para golpear y 1 de sus manos para golpear. La mano que fue golpeada ahora tiene la cantidad de dedos que tenía al principio Y la cantidad de dedos que tenía en la mano con la que golpeó.
EX
P1: 1,1
P2: 1,1
. P1[0]
éxitos P2[1]
. Ahora los dedos son P1:1,1
P2:1,2
. Ahora P2[1]
golpea p1[0]
. Los dedos ahora son P1: 3,1
P2 1,2
.
Si una mano llega a 1001 dedos hacia arriba o más, entonces esa mano está fuera. Entonces el jugador que obtuvo una mano (para su turno) puede "dividirse". Dividir es cuando tomas la mano que está adentro y reduces a la mitad la cantidad de dedos (redondeando hacia arriba) y le das esos dedos a la otra mano para que vuelva a entrar.
EX
P1: 1000,2
P2 7,7
. P2[0]
éxitos P1[0]
. La puntuación es P1: 0,2
P2 1,1
. P1[1]
se divide por su turno y el puntaje es P1: 1,1
y P2 7,7
.
El juego termina cuando un jugador tiene ambas manos. Los puntos se obtienen por la cantidad de dedos que tiene el ganador. Más puntos = mejor. El perdedor no gana puntos.
Hay otras reglas que se usan, pero estas son las que se usan aquí.
Todos juegan a todos (round robin)
Juego final
Suma tus puntos de cada ronda que ganes. Luego promedie los puntos de todos. Divide tu total entre los puntos promedio y obtén tu puntaje final. La mayoría de los puntos ganan.
Reglas reales
Por favor, no intentes resolver el juego. De hecho, tengo que poder ejecutarlo: P
Asegúrate de que el bot pueda correr rápido. Con la duración de las rondas a juzgar, esto llevará un tiempo
Todas las bibliotecas necesarias en su programa deben estar en la biblioteca de python predeterminada. También enumere los que necesita importar. Las importaciones serán sólo la importación básica (para las matemáticas que hago: import math
)
Las respuestas deben funcionar en Python 3.x
Manipulador
Su bot será su propio archivo Python 3 con una play
función.
play
Se pasarán dos listas de dos números cada una. Este número indica cuántos dedos hay en cada mano. La primera lista es tu propia mano.
Si eliges golpear la mano del otro jugador, entonces devuelve una lista de dos bits. El primer bit es el índice de la mano que estás usando para golpear ( 0
para el primero,1
para el último), y el segundo bit es el índice de la mano que estás golpeando al oponente.
Si elige dividir, devuelva cualquier otro valor verdadero.
Tada!
El controlador se puede encontrar aquí . Guarde cada bot en su propio archivo y enumere el nombre de archivo de cada bot (sin .py
) en botnames
.
Nota final:
Usted y el otro bot se turnarán para ir primero. Si el juego no termina en 100,000 (cien mil) rondas, el juego terminará y ninguno de los bot ganará.
El controlador no está protegido contra movimientos que duran una eternidad, pero la sobrecarga innecesaria será muy mal vista.
My handler is very simple, your bot must do it's logic then adjust the the finger scores as needed, remember!
¿Qué, entonces nosotros somos los que hacemos los cálculos para el KoTH?