Introducción
Dada esta visualización de un campo de juego:
(0,0)
+----------------------+(map_width, 0)
| A |
|-----+-----------+----|
| D | W | B |
|-----+-----------+----|
| C |
+----------------------+(map_width, map_height)
(0, map_height)
El mapa completo en el que se juega es el rectángulo con las coordenadas de las esquinas (0,0) y (map_width, map_height). Los puntos elegibles para generar enemigos es la Unión
El reto
Escriba el código que devuelve un punto aleatorio (x, y) que se garantiza que está dentro de S. Su código no puede introducir ningún sesgo adicional, lo que significa que la probabilidad de cada coordenada se distribuye uniformemente dado el supuesto de que su elección de generar aleatoriedad (por ejemplo, función | biblioteca | dev / urandom) es imparcial.
¡Las soluciones más cortas en bytes ganan!
Entrada
Se le dará un total de 6 variables de entrada de enteros positivos en orden:
map_width, map_height, W_top_left_x, W_top_left_y, W_width, W_height
. Puede suponer que el área de superficie (calculada) de todas las regiones (A, B, C, D, W) es cada una> 10, por lo que no hay espacios / regiones vacíos.
Entrada de ejemplo: 1000, 1000, 100, 100, 600, 400
La entrada tiene que contener los 6 valores descritos anteriormente, pero se puede pasar como un menor número de argumentos y en cualquier orden. Por ejemplo, pasar (map_width, map_height)
como python tuple está permitido. Lo que no está permitido, por supuesto, son parámetros calculados como el punto inferior derecho de la W.
Salida
2 enteros generados aleatoriamente (x, y) donde
O
lo que significa que al menos una de las expresiones lógicas anteriores tiene que ser verdadera.
Ejemplos
Input Output(valid random samples)
1000 1000 100 100 600 400 10 10
1000 1000 100 100 600 400 800 550
1000 1000 100 100 600 400 800 10
1000 1000 100 100 600 400 10 550
Para obtener detalles y limitaciones para la entrada / salida, consulte las reglas predeterminadas de entrada / salida
2 randomly generated integers (x, y)