/ / Každý, kto vie, ako vytvoriť štruktúru údajov, vyzerá takto v Pythone? - python-3.x

Každý, kto vie, ako vytvoriť štruktúru údajov, vyzerá takto v Pythone? - python-3.x

Ako môžem získať niečo podobné v pytóne?

Here is the backyard with 0 bones buried:
0  1  2  3  4  5  6  7  8  9  10 11 12 13 14
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  0
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  1
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  2
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  3
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  4
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  5
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  6
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  7
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  10
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  11

Tiež musím 8 kosti s dĺžkou 6 náhodne umiestnené vo dvore. Kosti sú orientované buď zľava doprava alebo zhora nadol. Kosti môžu byť prekrytá na seba.

Here is the backyard with 1 bone buried:
0  1  2  3  4  5  6  7  8  9  10 11 12 13 14
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  0
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  1
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  2
B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  3
B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  4
B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  5
B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  6
B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  7
B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  10
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  11

alebo niečo podobné

Please, enter a bone number from 1 to 8 and this app shall show a location where this bone could be buried.Enter -1 to quit or 0 to display all bones at once: 5
Here is the backyard with 1 bone buried:
0  1  2  3  4  5  6  7  8  9  10 11 12 13 14
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  0
.  B  B  B  B  B  B  .  .  .  .  .  .  .  .  1
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  2
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  3
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  4
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  5
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  6
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  7
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  10
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  11

a ako by som mohol zobraziť všetky miesta naraz, keď používateľ zadá 0? To by malo byť takto:

Please, enter a bone number from 1 to 8 and this app shall show a location where this bone could be buried.
Enter -1 to quit or 0 to display all bones at once: 0

Here is the backyard with 8 bones buried:
0  1  2  3  4  5  6  7  8  9  10 11 12 13 14
.  .  .  .  .  .  B  .  .  .  .  .  .  .  .  0
.  B  B  B  B  B  B  B  B  .  .  .  .  .  .  1
.  .  .  .  .  .  B  .  .  .  .  .  .  .  .  2
B  .  .  .  .  .  B  .  .  .  .  .  .  .  .  3
B  .  .  .  .  .  B  .  .  .  .  .  .  .  .  4
B  .  .  .  .  B  B  .  .  .  .  .  .  .  .  5
B  .  .  .  .  B  B  .  .  .  .  .  .  .  .  6
B  .  .  .  .  B  .  .  .  .  .  .  .  .  .  7
B  .  .  .  .  B  .  .  .  .  .  .  .  .  .  8
B  .  .  .  .  B  .  .  .  .  .  .  .  .  .  9
B  .  .  .  .  B  .  .  .  .  .  .  .  .  .  10
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  11

odpovede:

0 pre odpoveď č. 1

Ak máte len osem "kostí", odporúčam ich len uložiť ako zoznam párov (x, y) začiatku konca.

Dve kosti by boli takto:

[((3,5), (8,5)), ((1,9), (6,9))]

Toto predstavuje dve kosti, z ktorých jedna ležia od (3,5) do (8,5) horizontálne a jedna ležiaca od (1,9) do (6,9) vertikálne.

Keď / ak potrebujete "kresliť dvor", skenujte cez kosti raz pre každú bunku a skontrolujte, či je bunka "medzi" súradnicami začiatku a konca.

Je to jednoduché, ak nie veľmi účinné.

Podobne, ak potrebujete len náhodne umiestnené kostiže sa nebudete visieť z dvora, vyberiete náhodnú súradnicu a náhodný smer. Ak by ste umiestnili kosť, urobili by to, keby to šlo z okraja, potom zvoľte nový náhodný bod.