introduction
Compte tenu de cette visualisation d'un terrain de jeu:
(0,0)
+----------------------+(map_width, 0)
| A |
|-----+-----------+----|
| D | W | B |
|-----+-----------+----|
| C |
+----------------------+(map_width, map_height)
(0, map_height)
La carte entière sur laquelle le jeu est joué est le rectangle avec les coordonnées des coins (0,0) et (map_width, map_height). Les points éligibles pour le frai des ennemis sont l'Union
Le défi
Écrivez du code qui renvoie un point aléatoire (x, y) qui est garanti d'être à l'intérieur de S. Votre code ne peut pas introduire de biais supplémentaire, ce qui signifie que la probabilité de chaque coordonnée est uniformément distribuée étant donné l'hypothèse que votre choix de générer de l'aléatoire (par exemple, fonction | bibliothèque | dev / urandom) est impartiale.
Les solutions les plus courtes en octets gagnent!
Contribution
Vous recevrez un total de 6 variables d'entrée entier positif dans l' ordre:
map_width, map_height, W_top_left_x, W_top_left_y, W_width, W_height
. Vous pouvez supposer que la surface (calculée) de toutes les régions (A, B, C, D, W) est chacune> 10, donc il n'y a pas d'espaces / régions vides.
Exemple d'entrée: 1000, 1000, 100, 100, 600, 400
L'entrée doit contenir les 6 valeurs décrites ci-dessus mais elle peut être transmise sous forme de moins d'arguments et dans n'importe quel ordre. Par exemple, le passage en (map_width, map_height)
tant que tuple python est autorisé. Ce qui n'est pas autorisé, bien sûr, ce sont les paramètres calculés comme le point inférieur droit du W.
Production
2 entiers générés aléatoirement (x, y) où
OU
ce qui signifie qu'au moins une des expressions logiques ci-dessus doit être vraie.
Exemples
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
Pour plus de détails et les limitations d'entrée / sortie, veuillez vous référer aux règles d'entrée / sortie par défaut
2 randomly generated integers (x, y)