Вступ
З огляду на таку візуалізацію ігрового поля:
(0,0)
+----------------------+(map_width, 0)
| A |
|-----+-----------+----|
| D | W | B |
|-----+-----------+----|
| C |
+----------------------+(map_width, map_height)
(0, map_height)
Вся карта, на якій грається гра, - це прямокутник з кутовими координатами (0,0) та (ширина карти, висота карти). Окуляри, придатні для нересту ворогів, - це союз
Змагання
Напишіть код, який повертає випадкову точку (x, y), яка гарантовано знаходиться всередині S. Ваш код не може ввести додаткового зміщення, тобто імовірність кожної координати розподілена рівномірно враховуючи припущення, що ваш вибір генерує випадковість (наприклад, функція | бібліотека | dev / urandom) є неупередженою.
Найкоротші рішення в байтах виграють!
Вхідні дані
Вам буде дано загалом 6 позитивних цілих змінних вхідних даних у порядку:
map_width, map_height, W_top_left_x, W_top_left_y, W_width, W_height
. Можна припустити, що (обчислена) площа поверхні всіх регіонів (A, B, C, D, W) кожна> 10, тому немає порожніх просторів / областей.
Приклад введення: 1000, 1000, 100, 100, 600, 400
Вхід повинен містити описані вище 6 значень, але його можна передавати як меншу кількість аргументів і в будь-якому порядку. Наприклад, (map_width, map_height)
дозволено передавати як кортеж пітона. Звичайно, те, що не дозволено, розраховуються такими параметрами, як нижня права точка W.
Вихідні дані
2 випадково генеровані цілі числа (x, y) де
АБО
тобто хоча б одне з вищезазначених логічних виразів має бути істинним.
Приклади
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
Для отримання детальної інформації та обмежень щодо введення / виводу, будь ласка, зверніться до правил вводу / виводу за замовчуванням
2 randomly generated integers (x, y)