mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-11-22 11:04:25 +01:00
Translate A tic-tac-toe where X wins in the first attempt! example
This commit is contained in:
parent
497b9de72b
commit
361ac5f49b
48
translations/README-ru.md
vendored
48
translations/README-ru.md
vendored
@ -874,3 +874,51 @@ False
|
|||||||
- В примере `(not None)` оценивается в `True`, поскольку значение `None` является `False` в булевом контексте, поэтому выражение становится `'something' is True`.
|
- В примере `(not None)` оценивается в `True`, поскольку значение `None` является `False` в булевом контексте, поэтому выражение становится `'something' is True`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
### ▶ Крестики-нолики, где X побеждает с первой попытки!
|
||||||
|
<!-- Example ID: 69329249-bdcb-424f-bd09-cca2e6705a7a --->
|
||||||
|
|
||||||
|
```py
|
||||||
|
# Инициализируем переменную row
|
||||||
|
row = [""] * 3 #row i['', '', '']
|
||||||
|
# Инициализируем игровую сетку
|
||||||
|
board = [row] * 3
|
||||||
|
```
|
||||||
|
|
||||||
|
**Результат:**
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>> board
|
||||||
|
[['', '', ''], ['', '', ''], ['', '', '']]
|
||||||
|
>>> board[0]
|
||||||
|
['', '', '']
|
||||||
|
>>> board[0][0]
|
||||||
|
''
|
||||||
|
>>> board[0][0] = "X"
|
||||||
|
>>> board
|
||||||
|
[['X', '', ''], ['X', '', ''], ['X', '', '']]
|
||||||
|
```
|
||||||
|
|
||||||
|
Мы же не назначили три `"Х"`?
|
||||||
|
|
||||||
|
#### 💡 Объяснение:
|
||||||
|
|
||||||
|
Когда мы инициализируем переменную `row`, эта визуализация объясняет, что происходит в памяти
|
||||||
|
|
||||||
|
![image](/images/tic-tac-toe/after_row_initialized.png)
|
||||||
|
|
||||||
|
А когда переменная `board` инициализируется путем умножения `row`, вот что происходит в памяти (каждый из элементов `board[0]`, `board[1]` и `board[2]` является ссылкой на тот же список, на который ссылается `row`)
|
||||||
|
|
||||||
|
![image](/images/tic-tac-toe/after_board_initialized.png)
|
||||||
|
|
||||||
|
Мы можем избежать этого сценария, не используя переменную `row` для генерации `board`. (Подробнее в [issue](https://github.com/satwikkansal/wtfpython/issues/68)).
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>> board = [['']*3 for _ in range(3)]
|
||||||
|
>>> board[0][0] = "X"
|
||||||
|
>>> board
|
||||||
|
[['X', '', ''], ['', '', ''], ['', '', '']]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
Loading…
Reference in New Issue
Block a user