Rozdział 17 · Model i zasady
Indeksy, wiersze i kolumny
Pole wygląda jak tabela 3×3 — ale w pamięci jest jednym lista z dziewięciu elementów.
Ciało to płaska lista dziewięciu elementów
0
1
2
3
4
5
6
7
8
Chociaż wizualnie pole to Tabela 3×3, w pamięci jest to JEDEN płaski lista na dziewięć
Elementy (board[0] .. board[8]),
Zgodnie z artykułem 17.3.
→ łańcuch znaków Indeks i kolumna
indeks_v_koordinaty.py
row = index // 3
column = index % 3
| index | row | column |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 2 | 0 | 2 |
| 3 | 1 | 0 |
| 4 | 1 | 1 |
| 5 | 1 | 2 |
| 6 | 2 | 0 |
| 7 | 2 | 1 |
| 8 | 2 | 2 |
Rewers: łańcuch znaków i indeks kolumny →
koordinaty_v_indeks.py
index = row * 3 + column
Przyda się nie tylko tutaj
Wzór
row * ширина + column jest ogólną techniką dla dowolnej prostokątnej siatki przechowywanej na płaskiej liście (obrazy, mapy poziomów, arkusze kalkulacyjne).Praktyka: indeks, łańcuch znaków, kolumna
Automatyczna kontrola – konwersja współrzędnych do przodu i do tyłu dla wszystkich 9 komórek