Introdução
Dada esta visualização de um campo de jogo:
(0,0)
+----------------------+(map_width, 0)
| A |
|-----+-----------+----|
| D | W | B |
|-----+-----------+----|
| C |
+----------------------+(map_width, map_height)
(0, map_height)
O mapa inteiro em que o jogo é jogado é o retângulo com as coordenadas dos cantos (0,0) e (map_width, map_height). Os pontos elegíveis para desovar inimigos são a União
O desafio
Escreva um código que retorne um ponto aleatório (x, y) com garantia de estar dentro de S. Seu código não pode introduzir nenhum viés adicional, o que significa que a probabilidade de cada coordenada é distribuída uniformemente, considerando que sua escolha de gerar aleatoriedade (por exemplo, função | library | dev / urandom) é imparcial.
As soluções mais curtas em bytes ganham!
Entrada
Você será dado um total de 6 variáveis de entrada inteiro positivo na ordem:
map_width, map_height, W_top_left_x, W_top_left_y, W_width, W_height
. Você pode assumir que a área de superfície (calculada) de todas as regiões (A, B, C, D, W) é cada> 10, portanto, não há espaços / regiões vazios.
Exemplo de entrada: 1000, 1000, 100, 100, 600, 400
A entrada deve conter os 6 valores descritos acima, mas pode ser passada como menor número de argumentos e em qualquer ordem. Por exemplo, passar (map_width, map_height)
como tupla python é permitido. O que não é permitido, é claro, são parâmetros calculados, como o ponto inferior direito do W.
Resultado
2 inteiros gerados aleatoriamente (x, y) em que
OU
ou seja, pelo menos uma das expressões lógicas acima deve ser verdadeira.
Exemplos
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 detalhes e limitações para entrada / saída, consulte as regras padrão de entrada / saída
2 randomly generated integers (x, y)