Einführung
Angesichts dieser Visualisierung eines Spielfelds:
(0,0)
+----------------------+(map_width, 0)
| A |
|-----+-----------+----|
| D | W | B |
|-----+-----------+----|
| C |
+----------------------+(map_width, map_height)
(0, map_height)
Die gesamte Karte, auf der das Spiel gespielt wird, ist das Rechteck mit den Eckkoordinaten (0,0) und (map_width, map_height). Die Punkte, die für das Laichen von Feinden in Frage kommen, sind: Union
Die Herausforderung
Schreiben Sie Code, der einen zufälligen Punkt (x, y) zurückgibt, der garantiert innerhalb von S liegt. Ihr Code kann keine zusätzliche Verzerrung einführen, was bedeutet, dass die Wahrscheinlichkeit jeder Koordinate unter der Annahme, dass Sie Zufälligkeit erzeugen (z. B. Funktion), gleichmäßig verteilt ist | library | dev / urandom) ist unvoreingenommen.
Kürzeste Lösungen in Bytes gewinnen!
Eingang
Sie erhalten insgesamt 6 positive ganzzahlige Eingabevariablen in der Reihenfolge:
map_width, map_height, W_top_left_x, W_top_left_y, W_width, W_height
. Sie können davon ausgehen, dass die (berechnete) Oberfläche aller Regionen (A, B, C, D, W) jeweils> 10 ist, sodass keine Leerstellen / Regionen vorhanden sind.
Beispiel Eingabe: 1000, 1000, 100, 100, 600, 400
Die Eingabe muss die oben beschriebenen 6 Werte enthalten, kann jedoch als weniger Argumente und in beliebiger Reihenfolge übergeben werden. Zum Beispiel vorbei(map_width, map_height)
als Python-Tupel erlaubt. Was natürlich nicht erlaubt ist, sind berechnete Parameter wie der untere rechte Punkt des W.
Ausgabe
2 zufällig generierte ganze Zahlen (x, y) wobei
ODER
Mindestens einer der obigen logischen Ausdrücke muss wahr sein.
Beispiele
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
Einzelheiten und Einschränkungen für die Ein- / Ausgabe finden Sie in den Standard-Ein- / Ausgaberegeln
2 randomly generated integers (x, y)