π𧫠БоздаСм ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΠΆΠΎΠ½Π° ΠΠΎΠ½Π²Π΅Ρ Π½Π° Python
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ ΠΊΠ»Π΅ΡΠΎΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ² ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (CLI) Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΈΠ³ΡΠΎΠΉ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» β ΡΡΠΎ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΡΠ΅ΡΠΈΡΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΠΊΡ (ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅) ΠΆΠΈΠ·Π½ΠΈ ΠΈ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³ΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌ Π½Π° ΡΠ΅ΡΠ΅ΡΠΊΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π»ΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ:
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΠΎΠ½Π²Π΅Ρ Π½Π° Python.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ curses Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ».
- Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ argparse Π΄Π»Ρ ΠΈΠ³ΡΡ.
- ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³ΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°.
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Python, ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (CLI) Ρ ΠΏΠΎΠΌΠΎΡΡΡ argparse
ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° Python.
ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄: ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π·Π΄Π΅ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (.zip) Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΠΎΠ½Π²Π΅Ρ Π½Π° Python.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ³ΡΠ° Β«ΠΠΈΠ·Π½ΡΒ» Π±ΡΠΈΡΠ°Π½ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° ΠΠΆΠΎΠ½Π° Π₯ΠΎΡΡΠΎΠ½Π° ΠΠΎΠ½Π²Π΅Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ³ΡΠΎΠΉ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. Π‘ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΊΠ»Π΅ΡΠΎΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΊΠ°ΠΊ ΡΠΈΠΌΡΠ»ΡΡΠΈΡ, ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π΅Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΡΠ°ΡΡΠΈΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ².
ΠΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΠΊΡ ΠΊΠ»Π΅ΡΠΎΠΊ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠ»Π΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ:
- ΠΠΈΠ²Π°Ρ.
- ΠΠ΅ΡΡΠ²Π°Ρ.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠ»Π΅ΡΠΊΠ° ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΅Π΅ ΡΠ°ΠΌΠΎΠΉ ΠΈ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ. ΠΠΎΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ» ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ:
- ΠΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΠ³ΠΈΠ±Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅ Π΄Π²ΡΡ (Β«ΠΌΠ°Π»ΠΎΠ½Π°ΡΠ΅Π»Π΅Π½Π½ΠΎΡΡΡΒ») ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Ρ ΠΆΠΈΠ²ΡΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ (Β«ΠΏΠ΅ΡΠ΅Π½Π°ΡΠ΅Π»Π΅Π½ΠΈΠ΅Β»).
- ΠΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌΠΈ, Π΅ΡΠ»ΠΈ Ρ Π½ΠΈΡ Π΅ΡΡΡ Π΄Π²Π° ΠΈΠ»ΠΈ ΡΡΠΈ ΠΆΠΈΠ²ΡΡ ΡΠΎΡΠ΅Π΄Π°.
- ΠΠ΅ΡΡΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΡΠΎΠ²Π½ΠΎ ΡΡΠΈ ΠΆΠΈΠ²ΡΡ ΡΠΎΡΠ΅Π΄Π°, ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΆΠΈΠ²ΡΠΌΠΈ (ΡΠ°Π·ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅).
ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ β ΡΡΠΎ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·Π΅Ρ, ΠΈΠ»ΠΈ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΆΠΈΠ·Π½ΠΈ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΆΠΈΠ·Π½ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΆΠΈΠ²ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ. ΠΠ΅ΡΠ²Π°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ» ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠ΅ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΡΠΎΡΠ°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ.
ΠΠ°Π΄Π°ΡΠ° ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° β Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ Π½Π° Python, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (CLI) Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ³ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΆΠΈΠ·Π½ΠΈ.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ
ΠΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π² ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π²Π°Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ ΠΎΠ±ΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° Python ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ΅ΠΌΠ°ΠΌ:
- Π Π°Π±ΠΎΡΠ° Ρ ΡΡΠ»ΠΎΠ²Π½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ.
- ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΠΊΠ»ΠΎΠ² ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ².
- Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ, ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ Π² Python.
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π°Π½Π½ΡΡ .
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
argparse
. - Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ TOML Π² Python.
ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΠ΅ Π½Π΅Ρ Π²ΡΠ΅Ρ ΡΡΠΈΡ Π·Π½Π°Π½ΠΈΠΉ β Π½Π΅ Π±Π΅Π΄Π°! ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅, Π½Π°ΡΠ°Π² ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΡΠ°ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π·ΠΎΡΠ° ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΈ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΎΠΊ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅. ΠΠΎΠ»ΡΡΠ°ΠΉΡΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ ΠΎΡ ΠΊΠΎΠ΄ΠΈΠ½Π³Π°!
π Π‘ΡΠ°ΡΡΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
- π Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
. Π§Π°ΡΡΡ 5. ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΠΏΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ
- π Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
. Π§Π°ΡΡΡ 7: ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ
- π Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
. Π§Π°ΡΡΡ 8: ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ
- π Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
. Π§Π°ΡΡΡ 9: ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠΈΠΊΠ»Π° for
- π Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . Π§Π°ΡΡΡ 10: Π£ΡΠ»ΠΎΠ²Π½ΡΠΉ ΡΠΈΠΊΠ» while
Π¨Π°Π³ 1: ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ»
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Python, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΠΊΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ.
ΠΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° Python, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΠΎΠ½Π²Π΅Ρ, Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΠΌΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠΎΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ», Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ΡΠΊΡ ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΡΠ΅ΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π·ΡΡ
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠΊΠΈ ΠΈ Π΅Π΅ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ
- ΠΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ³ΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ.
Π‘Π»Π΅Π΄ΡΡ ΡΡΠΈΠΌ ΠΈΠ΄Π΅ΡΠΌ, Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ»:
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π·Π²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ rplife
, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ Real Python (rp
) ΠΈ life
. Π€Π°ΠΉΠ» README.md
Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π€Π°ΠΉΠ» pyproject.toml
β ΡΡΠΎ TOML-ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ Python ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΊΡΠΈΠΏΡ setup.py
, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π½ΡΡΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pyproject.toml
Π²ΠΌΠ΅ΡΡΠΎ setup.py
.
ΠΠ½ΡΡΡΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° rplife/
Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ:
__init__.py
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ rplife/ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ Python.__main__.py
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠΊΡΠΈΠΏΡ Π²Ρ ΠΎΠ΄Π° Π² ΠΈΠ³ΡΡ.cli.py
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΈΠ³ΡΡ.patterns.py
ΠΈpatterns.toml
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΠ³ΡΡ.views.py
ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠΊΠΈ ΠΈ Π΅Π΅ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ.
grid.py
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²ΡΠ΅ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΌ Π»ΡΠ±ΠΈΠΌΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ IDE. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ°Π²ΠΈΠ» ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» Π½Π° Python.
Windows:
Linux + macOS:
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ Π΄Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ Python ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ venv Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.
Π¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΊΠΈ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ»
ΠΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅, ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½Π°Ρ ΡΠ΅ΡΠΊΠ° ΠΈΠ· ΡΡΠ΅Π΅ΠΊ. ΠΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ΅Π½. ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΠ΅ΡΡ Π½Π° ΠΆΠΈΠ²ΡΡ ΠΊΠ»Π΅ΡΠΊΠ°Ρ , Π° Π½Π΅ Π½Π° Π²ΡΠ΅Ρ ΠΊΠ»Π΅ΡΠΊΠ°Ρ ΡΠ΅ΡΠΊΠΈ.
Π§ΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΆΠΈΠ²ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ, Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ Pattern
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ³ΡΡ. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ LifeGrid
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·ΡΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½ ΠΈ ΡΠ°Π·ΠΎΠ²ΡΠ΅Ρ Π΅Π³ΠΎ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΆΠΈΠ²ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³ΡΡ. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΊΠΈ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΅Π΅ Π½Π° ΡΠΊΡΠ°Π½Π΅.
ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° ΡΡΠΎΠ³ΠΎ ΡΠ°Π³Π° ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠ»ΠΊΠ΅ ΠΈ Π·Π°Π³Π»ΡΠ½ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ source_code_step_2/
:
ΠΠ°Π±ΡΠΎΡΠΎΠΊ ΠΊΠ»Π°ΡΡΠΎΠ² Pattern ΠΈ LifeGrid
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΈΠ³ΡΡ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ°ΠΉΠ»Ρ patterns.py
. Π’Π°ΠΌ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Pattern
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ @dataclass
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ dataclasses
:
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Pattern ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈ ΠΆΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ. ΠΡΡΠΈΠ±ΡΡ .alive_cells
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ Ρ Π΄Π²ΡΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ ΠΆΠΈΠ²ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ Π² ΡΠ΅ΡΠΊΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΆΠΈΠ²ΡΡ
ΡΡΠ΅Π΅ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ΅Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΆΠΈΠ²ΡΠΌΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΊΠ»Π°ΡΡ LifeGrid
, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠ°ΡΡ Π΄Π²Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ:
- ΠΠ²ΠΎΠ»ΡΡΠΈΡ ΡΠ΅ΡΠΊΠΈ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠΊΠΈ
ΠΡΠ°ΠΊ, Π²Π°Ρ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ grid.py
:
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π°Π·Ρ LifeGrid
Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ pass
. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠ°Π±Π»ΠΎΠ½. ΠΡΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΠΆΠΈΡΡ Pattern
. ΠΠ°ΡΠ΅ΠΌ Π΅ΡΡΡ .evolve()
, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠ°Ρ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΆΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΈ ΠΈΡ
ΡΠΎΡΠ΅Π΄Π΅ΠΉ, Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΆΠΈΠ²ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π² .as_string()
Π²Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΠ΅ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΠΌΠΊΡ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΈ. ΠΡΠ° ΠΎΠ±Π»Π°ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊΡΡ ΡΠ°ΡΡΡ ΡΠ΅ΡΠΊΠΈ Π²Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΊΠΈ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ .evolve()
, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ΅ΠΉΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΆΠΈΠ²ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΆΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΈ ΠΈΡ
ΡΠΎΡΠ΅Π΄Π΅ΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΡΠ»Π΅Π½ΠΎΠ² ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠ»Π΅ΡΠΊΠ° ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π² ΠΆΠΈΠ²ΡΡ
, ΠΊΠ°ΠΊΠ°Ρ ΡΠΌΡΠ΅Ρ, Π° ΠΊΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΡΠΎΠ΄ΠΈΡΡΡ. ΠΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ ΠΊΠ»Π΅ΡΠΎΠΊ:
- ΠΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΠ³ΠΈΠ±Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅ Π΄Π²ΡΡ (Β«ΠΌΠ°Π»ΠΎΠ½Π°ΡΠ΅Π»Π΅Π½Π½ΠΎΡΡΡΒ») ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Ρ ΠΆΠΈΠ²ΡΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ (Β«ΠΏΠ΅ΡΠ΅Π½Π°ΡΠ΅Π»Π΅Π½Π½ΠΎΡΡΡΒ»).
- ΠΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΠΆΠΈΠ²ΡΠΌΠΈ, Π΅ΡΠ»ΠΈ Ρ Π½ΠΈΡ Π΅ΡΡΡ Π΄Π²Π° ΠΈΠ»ΠΈ ΡΡΠΈ ΠΆΠΈΠ²ΡΡ ΡΠΎΡΠ΅Π΄Π°.
- ΠΠ΅ΡΡΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΡΠΎΠ²Π½ΠΎ ΡΡΠΈ ΠΆΠΈΠ²ΡΡ ΡΠΎΡΠ΅Π΄Π°, ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΆΠΈΠ²ΡΠΌΠΈ (ΡΠ°Π·ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅).
ΠΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅, Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΆΠΈΠ²ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ. ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΆΠΈΠ²ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ? Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ΅ΡΠΊΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Π² ΡΠΎΡΠΊΠ΅ (1, 1), Π° ΠΎΠ½ΠΈ Π²ΡΠ΅ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°. ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² ΡΠ΅ΡΠΊΠ΅? Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ΄Π° ΡΡΠ΅Π΅ΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΠΠ»Ρ (0, 0) ΠΏΡΠΈΠ±Π°Π²ΡΡΠ΅ (-1, -1) ΠΊ (1, 1) Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
- ΠΠ»Ρ (0, 1) Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ (-1, 0) ΠΊ (1, 1) ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
- ΠΠ»Ρ (0, 2) ΠΏΡΠΈΠ±Π°Π²ΡΡΠ΅ (-1, 1) ΠΊ (1, 1) ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ· ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄, ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠΈ (-1, -1), (-1, 0), (-1, 1) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΎΠΉ ΠΈ Π΅Π΅ ΡΠΎΡΠ΅Π΄ΡΠΌΠΈ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎ Π΄Π΅Π»ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π΅ ΡΠΎΡΠ΅Π΄Π΅ΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΠΈΡΡ ΡΡΡ ΡΡ Π΅ΠΌΡ Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΈ Π½Π°ΠΉΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π΄Π΅Π»ΡΡ.
Π‘ ΡΡΠ΅ΡΠΎΠΌ ΡΡΠΈΡ
ΠΈΠ΄Π΅ΠΉ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° .evolve()
:
ΠΠΎΡ ΡΠ°Π·Π±ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄ (ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ):
- Π‘ΡΡΠΎΠΊΠΈ Ρ 6 ΠΏΠΎ 15 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π΅Π»ΡΡΠ°-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ.
- Π ΡΡΡΠΎΠΊΠ΅ 16 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΆΠΈΠ²ΡΡ
ΡΠΎΡΠ΅Π΄Π΅ΠΉ. Π ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π²Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ
defaultdict
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρcollections
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° Ρ ΠΊΠ»Π°ΡΡΠΎΠΌint
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. - Π ΡΡΡΠΎΠΊΠ΅ 17 Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΈΠΊΠ» ΠΏΠΎ ΠΆΠΈΠ²ΡΠΌ ΡΡΠ΅ΠΉΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅
.pattern
. ΠΡΠΎΡ ΡΠΈΠΊΠ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΆΠΈΠ²ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅. - Π‘ΡΡΠΎΠΊΠ° 18 Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΈΠΊΠ» ΠΏΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡΠΌ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ. ΠΡΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΈΠΊΠ» ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ, ΡΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ ΡΠΎΡΠ΅Π΄ΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠ΅ΠΉΠΊΠ°. ΠΡΠΎΡ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΆΠΈΠ²ΡΡ , ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΌΠ΅ΡΡΠ²ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ.
- Π ΡΡΡΠΎΠΊΠ°Ρ
21-23 ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°Π½ΡΡΡΡ Π² ΠΆΠΈΠ²ΡΡ
. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΌΠΈ ΠΈΠΌΠ΅ΡΡ Π΄Π²ΡΡ
ΠΈΠ»ΠΈ ΡΡΠ΅Ρ
ΠΆΠΈΠ²ΡΡ
ΡΠΎΡΠ΅Π΄Π΅ΠΉ. ΠΠ°ΡΠ΅ΠΌ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ
.alive_cells
. - Π ΡΡΡΠΎΠΊΠ°Ρ
24-26 ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΠΎΠ·ΡΠΎΠΆΠ΄Π°ΡΡΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π³ΡΡΠΏΠΏΡ ΠΊΠ»Π΅ΡΠΎΠΊ, Ρ ΠΊΠΎΡΠΎΡΡΡ
ΡΠΎΠ²Π½ΠΎ ΡΡΠΈ ΠΆΠΈΠ²ΡΡ
ΡΠΎΡΠ΅Π΄Π°. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ Π²ΠΎΡΠΊΡΠ΅ΡΡΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΈΡΠΊΠ»ΡΡΠ°Ρ ΡΠ΅, ΡΡΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ Π²
.alive_cells
. - Π‘ΡΡΠΎΠΊΠ° 28 ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ
.alive_cells
ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΆΠΈΠ²ΡΡ , ΠΈ ΠΊΠ»Π΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΡΠΎΠΆΠ΄Π°ΡΡΡΡ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΈ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΆΠΈΠ²ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² LifeGrid
:
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ .__str__()
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΈΠ΄Π΅. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ print()
Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° LifeGrid
, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΈΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΆΠΈΠ²ΡΡ
ΡΡΠ΅Π΅ΠΊ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π°Π΅Ρ Π²Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠ΅ΡΠΊΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄. ΠΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°ΡΠ΅ΠΌ Π½Π°ΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡ Python REPL ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° Π²Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ grid
ΠΈ patterns
ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° rplife
. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π·Π΅Ρ Pattern
. Π Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ΠΌ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ². Π ΠΏΠΎΠΊΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Blinker.
ΠΠ°Π»Π΅Π΅ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ LifeGrid
. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π½Π° ΡΠΊΡΠ°Π½ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΠΌΡ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° ΠΈ ΠΆΠΈΠ²ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ. Π£ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠ΅ΡΠΊΠ° Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠΊΡ, Π²ΡΠ·Π²Π°Π² .evolve()
. ΠΠ° ΡΡΠΎΡ ΡΠ°Π· Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΆΠΈΠ²ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ½ΠΎΠ²Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ΅ΡΠΊΡ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΡ ΠΆΠ΅ Π½Π°Π±ΠΎΡ ΠΆΠΈΠ²ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π΄Π»Ρ ΠΈΠ³ΡΡ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½ Blinker ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΡΡΠΈΠ»Π»ΡΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π¨Π°Π±Π»ΠΎΠ½ Blinker ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΆΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ ΠΈ ΡΡΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΆΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ. ΠΠ°Ρ ΠΊΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΠ°ΠΊ ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ .evolve()
, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΈΠ³ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ .as_string()
. ΠΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΅Π΅ Π½Π° ΡΠΊΡΠ°Π½Π΅.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄:
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π²Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ Π΄Π²Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ALIVE ΠΈ DEAD. ΠΡΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΆΠΈΠ²ΡΡ ΠΈ ΠΌΠ΅ΡΡΠ²ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ Π½Π° ΡΠ΅ΡΠΊΠ΅.
ΠΠ½ΡΡΡΠΈ .as_strings()
Π²Ρ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΌΠΊΠΈ Π² ΡΠ΅ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊΡΡ ΡΠ°ΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΊΠΈ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ display
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΠΈΡΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ .center()
Π΄Π»Ρ ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΈΡΠΈΠ½Π΅ ΡΠ΅ΡΠΊΠΈ.
Π ΡΠΈΠΊΠ»Π΅ for
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ ΡΡΡΠΎΠΊ Π²Π½ΡΡΡΠΈ ΠΎΠΊΠ½Π°. Π ΡΠΈΠΊΠ»Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΆΠΈΠ²ΡΠ΅ ΠΈ ΠΌΠ΅ΡΡΠ²ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΡΠ΄Ρ. Π§ΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΆΠΈΠ²Π° Π»ΠΈ Π΄Π°Π½Π½Π°Ρ ΡΡΠ΅ΠΉΠΊΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ, Π΅ΡΡΡ Π»ΠΈ Π΅Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² Π½Π°Π±ΠΎΡΠ΅ ΠΆΠΈΠ²ΡΡ
ΡΡΠ΅Π΅ΠΊ.
ΠΠ°ΡΠ΅ΠΌ Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΡΡΡΠΎΠΊΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π ΠΊΠΎΠ½ΡΠ΅ ΡΠΈΠΊΠ»Π° Π²Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (\n
), ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΠΊΡ ΠΆΠΈΠ·Π½ΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ.
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Π°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅:
ΠΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π½Π° ΡΠΊΡΠ°Π½ ΡΠ΅ΡΠΊΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΡΠ΄Π΅ΡΠΊΠΈ. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΠΎΠ²Π΅ΡΠ΅ .evolve()
ΠΈ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠ΅ΡΠΊΡ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ. ΠΠ΄ΠΎΡΠΎΠ²ΠΎ, Π½Π΅ ΠΏΡΠ°Π²Π΄Π° Π»ΠΈ?
Π¨Π°Π³ 3: ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π΄Π»Ρ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ»
ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠ»Π°ΡΡ LifeGrid
ΠΈ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΠΊΠ»Π°ΡΡΠ° Π΄Π°Π½Π½ΡΡ
Pattern
. ΠΠ°Ρ ΠΊΠΎΠ΄ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π²ΡΡΡΠ½ΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈΡ
Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ³ΡΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠ°Π·Π΄Π΅Π»Π°Ρ
Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ²ΡΡ
ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅ TOML ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΡ Pattern
.
Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½ΠΈΠΆΠ΅ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ°ΠΏΠ°, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ. ΠΡ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ source_code_step_3/
:
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΆΠΈΠ·Π½ΠΈ Π² ΡΠ°ΠΉΠ»Π΅ TOML
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° ΠΈ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π΄Π»Ρ ΠΆΠΈΠ²ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π° TOML, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½ Blinker ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ TOML ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π½Π΅ΠΉ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ°ΡΠ° ΠΊΠ»ΡΡΠ΅Π²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ². ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΆΠΈΠ²ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ Blinker. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΡΠΌΠ°Ρ TOML Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°Π±ΠΎΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ.
Π‘Π»Π΅Π΄ΡΡ ΡΡΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Ρ ΠΎΡΠΈΡΠ΅. ΠΠ°ΡΡΠ΅ΡΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ patterns.toml:
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΠ°ΠΉΠ»Π΅ patterns.toml
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π²ΠΎΡΠ΅ΠΌΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ². ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, Π½ΠΎ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈ ΡΡΠΎΠ³ΠΎ.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΠΆΠΈΠ·Π½ΠΈ ΠΈΠ· TOML
Π£ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΠ» TOML Ρ ΠΊΡΡΠ΅ΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ». Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠΈΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π² Π²Π°Ρ ΠΊΠΎΠ΄. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π² ΠΊΠ»Π°ΡΡ Pattern
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΠ· Π΄Π°Π½Π½ΡΡ
TOML:
ΠΠ΅ΡΠΎΠ΄ .from_toml()
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ @classmethod
. ΠΠ»Π°ΡΡΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π² ΡΠΎΡΡΠ°Π² ΠΊΠ»Π°ΡΡΠ°. ΠΠ΅ΡΠΎΠ΄Ρ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° (cls
).
ΠΠ°ΡΠ΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π²Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈ Π΄Π°Π½Π½ΡΠ΅ TOML. ΠΠ½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ cls
. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ .alive_cells
, Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ.
Π Π½Π΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π½Π°Π±ΠΎΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠ½Ρ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° TOML. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΆΠΈΠ²ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° ΡΠ΅ΡΠΊΠ΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΆΠΈΠ²ΡΠΌ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌ Π² Π΄Π°Π½Π½ΡΡ TOML ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ .
ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΈΠ· ΡΠ°ΠΉΠ»Π° TOML. ΠΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π΅ΡΠ°Π»ΠΈ Π·Π° ΡΠ°Π·.
Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ» TOML ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΊΡΡ Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ tomllib
, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Python 3.11 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ tomli
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ tomllib
.
Π§ΡΠΎΠ±Ρ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π» Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ· ΡΡΠΈΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈΠΌΠΏΠΎΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ TOML Π² Π±Π»ΠΎΠΊ try ... except
:
ΠΠΌΠΏΠΎΡΡ Π² ΡΡΡΠΎΠΊΠ΅ try
Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ tomllib
. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Python Π²Π΅ΡΡΠΈΠΈ Π½ΠΈΠΆΠ΅ 3.11, ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ except
ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΡΠΎΡΠΎΠ½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ tomli
, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠ³Π΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° TOML Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, Π½Π°ΡΡΠ°Π½Π΅Ρ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ get_pattern()
Π² ΡΠ°ΠΉΠ» patterns.py
:
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° TOML ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Pattern
, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ name
.
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ get_pattern()
Π²Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° patterns.toml
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ Π²Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ TOML. ΠΠ΅ΡΠΎΠ΄ .loads()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ Pattern
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° .from_toml()
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ filename
ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Π·Π°Π΄Π°Π΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠΌΠΏΠΎΡΡΠ°:
ΠΡΠ° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ pathlib.Path
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ°ΠΉΠ» patterns.toml
. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ rplife/
. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡ __file__
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ» Π·Π°Π³ΡΡΠΆΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ patterns.py
. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡ .parent
Π² Path
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
Π€ΡΠ½ΠΊΡΠΈΡ get_pattern()
ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΡΠ΅ΡΠ½ ΠΈΠ· ΡΠ°ΠΉΠ»Π° TOML, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΡ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΡΠ΅ΡΠ½. Π Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΠΎΠ΄ΡΡΠ΄? Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° TOML.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ:
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ TOML. ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° ΡΡΡΠΎΠΊΠ΅ get_pattern()
. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Pattern
Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ .items()
Π΄Π»Ρ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ .loads()
.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΡΠΈ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄ΡΡ Π²Π²Π΅Π΄Π΅Π½Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΡΡΠ°ΡΡ ΠΈΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ:
ΠΠ΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎ! ΠΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½ Blinker Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ get_pattern()
. ΠΠ°ΡΠ΅ΠΌ Π²Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ get_all_patterns()
.
Π¨Π°Π³ 4: ΠΠΈΡΠ΅ΠΌ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³ΡΡ
ΠΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ». Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΈΠ³ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ curses
ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈΠ³ΡΡ. ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ curses
, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (TUI) Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
Π§ΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°Π³Π°, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½ΠΈΠΆΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ source_code_step_4/
:
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ CursesView
:
ΠΠ»Π°ΡΡΠΎΠ²ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΡ ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
pattern
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΆΠΈΠ·Π½ΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡPattern
.gen
β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΈΠ³ΡΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΎ 10 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ.frame_rate
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 7 ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.bbox
β ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°ΠΌΠΊΠ° Π΄Π»Ρ ΡΠ΅ΡΠΊΠΈ. ΠΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° (start_col
,start_row
,end_col
,end_row
).
ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. ΠΠ΅ΡΠΎΠ΄ .show()
Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΊΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅:
ΠΠ΅ΡΠΎΠ΄ .show()
Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΊΡΠ°ΡΠΎΠΊ. ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ wrapper()
ΠΈΠ· curses
. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ curses
ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΊΡΡΡΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ._draw()
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ
Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π΅ΠΊ.
ΠΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° ._draw()
:
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΡΡΡΠΎΡΠ½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ:
- Π ΡΡΡΠΎΠΊΠ΅ 2 ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
sleep()
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρtime
. ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. - Π‘ΡΡΠΎΠΊΠ° 4 ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ
LifeGrid
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρgrid
Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅rplife
. - Π ΡΡΡΠΎΠΊΠ΅ 8 ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ
._draw()
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡscreen
ΠΈΠ»ΠΈcurses window
. ΠΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅curses.wrapper()
Ρ._draw()
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. - Π ΡΡΡΠΎΠΊΠ΅ 9 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠΊΠ° ΠΏΡΡΠ΅ΠΌ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°
LifeGrid
Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. - Π ΡΡΡΠΎΠΊΠ΅ 10 Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ
.curs_set()
Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΡΡΡΠΎΡΠ°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ 0, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΡΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ. - Π ΡΡΡΠΎΠΊΠ°Ρ
Ρ 13 ΠΏΠΎ 18 ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π±Π»ΠΎΠΊ
try ... except
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ValueError
, Π΅ΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠΊΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΅Π΅ Π² ΡΠΈΠΊΠ» Π² ΡΡΡΠΎΠΊΠ΅ 20. - Π‘ΡΡΠΎΠΊΠ° 20 Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΈΠΊΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ.
- Π‘ΡΡΠΎΠΊΠ° 21 Π²ΡΠ·ΡΠ²Π°Π΅Ρ
.evolve()
Π½Π° ΡΠ΅ΡΠΊΠ΅ Π΄Π»Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈΠ³ΡΡ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ. - Π‘ΡΡΠΎΠΊΠ° 22 Π²ΡΠ·ΡΠ²Π°Π΅Ρ
.addstr()
Π½Π° ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΠΊΡΠ°Π½Π°. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΡΡΠΎΠ»Π±Π΅Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠΊΡ ΠΆΠΈΠ·Π½ΠΈ. Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ Π²Ρ Π½Π°ΡΠ½Π΅ΡΠ΅ ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠΎΡΠΊΠΈ (0, 0), ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡ Π½ΠΈΠΌ Π»Π΅Π²ΡΠΌ ΡΠ³Π»ΠΎΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. - Π‘ΡΡΠΎΠΊΠ° 23 ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΊΡΠ°Π½, Π²ΡΠ·ΡΠ²Π°Ρ
.refresh()
. ΠΡΠΎΡ Π²ΡΠ·ΠΎΠ² Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΊΡΠ°Π½, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π·ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.addstr()
. - Π ΡΡΡΠΎΠΊΠ΅ 24 Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
sleep()
, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΡΡΠΎΡΡ ΠΊΠ°Π΄ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΡΠΊΠ΅.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ», Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ Π²Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ CursesView
ΠΈΠ· views
ΠΈ ΡΡΠ½ΠΊΡΠΈΡ get_pattern()
ΠΈΠ· patterns
. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ CursesView
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Glider Gun ΠΈ ΡΠΎΡΠ½Ρ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ .show()
Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΡΠΎΡ ΠΊΠΎΠ΄ Π·Π°ΠΏΡΡΡΠΈΡ ΠΈΠ³ΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ Π΅Π΅ ΡΠ²ΠΎΠ»ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠ½Ρ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ ΠΆΠΈΠ·Π½ΠΈ.
Π£Ρ
ΡΡ! ΠΠ΄ΠΎΡΠΎΠ²ΠΎ! ΠΠ°ΡΠ° ΠΈΠ³ΡΠ° Β«ΠΠΈΠ·Π½ΡΒ» Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΎΠ±ΠΎΡΠΎΡΡ. Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
Π΄Π²ΡΡ
ΡΠ°Π³Π°Ρ
Π²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (CLI) Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ ΠΈΠ³ΡΠΎΠΉ, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠΎΠ±Π΅ΡΠ΅ΡΠ΅ Π²ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈΠ³ΡΡ, __main__.py
.
Π¨Π°Π³ 5: Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ CLI
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (CLI) Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ». ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΈΠ³ΡΠΎΠΉ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΅Π΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΆΠΈΠ·Π½ΠΈ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ CLI Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ argparse
ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
--version
ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π·Π°Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ.-p, --pattern
Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π½ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ», ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β Blinker.-a, --all
ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.-v, --view
ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠ΅ΡΠΊΡ ΠΆΠΈΠ·Π½ΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡCursesView
.-g, --gen
Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 10.-f, --fps
β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 7.
Π§ΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°Π³Π°, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠ»ΠΊΠ΅ ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ source_code_step_5/
:
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΏΠΈΡΠ°ΡΡ CLI, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² cli.py
:
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° Π²Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ argparse
. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° rplife
.
ΠΠΎ ΡΡΠΎΠ³ΠΎ ΡΡΠ°ΠΏΠ° Π²Ρ Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π»ΠΈ __version__
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» __init__.py
. ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡΠΎΠΊΡ __version__ = "1.0.0"
Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠΎΡ Π°ΡΡΠΈΠ±ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΠΎΠΏΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ --version
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² CLI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°Π»Π΅Π΅ Π²Ρ Π·Π°Π΄Π°Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ get_command_line_args()
, ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ CLI. ΠΠ½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ get_command_line_args()
Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΏΠ°ΡΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ArgumentParser
. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° Π²Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΊΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΎΠΏΡΠΈΠΉ:
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π² CLI Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ, Π²ΡΠ·ΡΠ²Π°Ρ .add_argument()
Π½Π° ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅. ΠΠ°ΠΆΠ΄Π°Ρ ΠΎΠΏΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠΏΡΠΈΡ -p, --pattern
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π²ΡΠ±ΠΎΡΠ°, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΈΠΌΠ΅ΡΡΠΈΡ
ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ get_all_patterns()
.
Π€ΡΠ½ΠΊΡΠΈΡ get_command_line_args()
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠΌΠ΅Π½, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΈ ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡΠ΅ΡΠ½ΡΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΈΠΌΠ΅Π½. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° --view
, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ: get_command_line_args().view
.
ΠΠΏΡΠΈΡ -v, --view
ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π²ΡΠ±ΠΎΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΠ· Π°ΡΡΠΈΠ±ΡΡΠ° __all__
, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ views
. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ __all__
, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» views.py
ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ°:
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ __all__
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ __all__
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠΊΠ° Π²ΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡ
Π² ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈΠ³ΡΡ.
ΠΡΠ»ΠΈΡΠ½ΠΎ! Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ Π΅ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²Ρ ΠΎΠ΄Π° Π² ΠΈΠ³ΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈΠΌ Π²Ρ ΠΈ Π·Π°ΠΉΠΌΠ΅ΡΠ΅ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
Π¨Π°Π³ 6: ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Π½Π°ΡΠ°Π»Π° ΠΈΠ³ΡΡ
Π Python Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠΌΠ΅ΡΡ ΡΠΊΡΠΈΠΏΡ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π·Π°ΠΏΡΡΠΊΠ°. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΠΊΡΠΈΠΏΡ Π²Ρ
ΠΎΠ΄Π° β ΡΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ main()
.
ΠΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°Π³Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΈ Π·Π°Π³Π»ΡΠ½ΡΠ² Π² ΠΏΠ°ΠΏΠΊΡ source_code_step_6/
:
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ Python, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΠΉΠ» __main__.py
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΌΠ΅ΡΡΠΎΠΌ Π΄Π»Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΎΡΡΠΎΠΌΡ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» __main__.py
Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π°. ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΡ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π°:
- Π ΡΡΡΠΎΠΊΠ΅ 1 ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
sys
ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Ρsys.stderr
, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. - Π ΡΡΡΠΎΠΊΠ΅ 3 ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ
patterns
ΠΈviews
ΠΈΠ·rplife
. Π‘ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. - Π‘ΡΡΠΎΠΊΠ° 4 ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ
get_command_line_args()
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρcli
. ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΎΠΏΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. - Π ΡΡΡΠΎΠΊΠ΅ 6 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
main()
. - Π‘ΡΡΠΎΠΊΠ° 7 Π²ΡΠ·ΡΠ²Π°Π΅Ρ
get_command_line_args()
ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈΠΌΠ΅Π½ Π² args. - Π ΡΡΡΠΎΠΊΠ΅ 8 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
args.view
Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π΅views
. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ, Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡgetattr()
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡmain()
. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ·ΠΎΠ²getattr()
Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ, Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π·Π°Π³Π»Π°Π²Π½ΡΡ Π±ΡΠΊΠ²Ρ Π² ΡΠ»ΠΎΠ²Π΅View
, ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°ΠΊΡ. - Π ΡΡΡΠΎΠΊΠ΅ 9 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΉ, Π²ΡΠ±ΡΠ°Π» Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΡΠΊ Π²ΡΠ΅Ρ
Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΠΎΠ΄ΡΡΠ΄. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎ ΡΡΡΠΎΠΊΠΈ 10 ΠΈ 11 Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΈΠΊΠ» ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌ ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡ ΠΈΡ
Π½Π° ΡΠΊΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
_show_pattern()
. ΠΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ. - Π‘ΡΡΠΎΠΊΠΈ Ρ 13 ΠΏΠΎ 17 Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ³ΡΡ.
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ _show_pattern()
ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ main()
. ΠΠΎΡ Π΅Π΅ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠ°:
Π ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ΅ΠΊΡΡΠΈΠΉ Π²ΠΈΠ΄, ΡΠ°Π±Π»ΠΎΠ½ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΠ°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π»ΠΎΠΊΠ° try ... except
Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ view
ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ .show()
. ΠΡΠΎΡ Π±Π»ΠΎΠΊ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈΠ³ΡΡ, ΠΈ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
ΠΡΠ»ΠΈΡΠ½ΠΎ! Π‘ΠΊΡΠΈΠΏΡ Π²Ρ
ΠΎΠ΄Π° ΠΏΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ². ΠΡΡΠ°Π»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ Π΄Π΅ΡΠ°Π»Ρ. ΠΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ main()
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»Π°:
Π‘ΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ main()
Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ΅ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π·Ρ name-main
, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π°. ΠΡΠ° ΠΈΠ΄ΠΈΠΎΠΌΠ° Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ main()
Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π‘ΠΎΠ·Π΄Π°Π² ΡΠΊΡΠΈΠΏΡ Π²Ρ ΠΎΠ΄Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ». ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ³ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΆΠΈΠ·Π½ΠΈ:
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΡΡΠ°ΡΡΠ΅, Π½Π΅ ΠΏΡΠ°Π²Π΄Π° Π»ΠΈ? ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅! ΠΠΏΡΠΈΡ --help
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CLI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π¨Π°Π³ 7: ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ³ΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°
ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΠΎΠ½Π²Π΅Ρ. Π’Π΅ΠΏΠ΅ΡΡ Ρ ΠΈΠ³ΡΡ Π΅ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΅Π΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΎΠΏΡΠΈΡΠΌΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ³ΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ, ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΠΈΠ³ΡΠ° Β«ΠΠΈΠ·Π½ΡΒ» ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ³ΡΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ python. ΠΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠ³ΡΠ° Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ CLI.
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠ°Π·Π΄Π΅Π»Π°Ρ
Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΉΠ»Π° pyproject.toml
. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ³ΡΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ Python, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π΅ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ CLI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π§ΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π³Π°, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠ»ΠΊΠ΅ ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ source_code_step_7/
:
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° pyproject.toml
Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Python ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² pyproject.toml
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Python. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» pyproject.toml
Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ».
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, pyproject.toml
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ TOML. ΠΠΎΠ»Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² pyproject.toml
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² PEP 621. Π‘Π»Π΅Π΄ΡΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ°ΠΉΠ» pyproject.toml
Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ»:
ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ°ΠΊΠ΅Ρ setuptools
.
Π ΠΏΠΎΠ»Π΅ Β«ΠΡΠΎΠ΅ΠΊΡΒ» Π²Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° β rplife
. ΠΠ°ΡΠ΅ΠΌ Π²Ρ Π·Π°Π΄Π°Π΅ΡΠ΅ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊΠ°ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π° Π² ΡΡΡΠΎΠΊΡ tool.setuptools.dynamic
Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π°.
ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ README
ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π°Π²ΡΠΎΡΠΎΠ². ΠΠ»ΡΡ dependencies ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π½Π΅ΡΠ½ΠΈΡ
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ tomli
Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΠ»Π° TOML, Π΅ΡΠ»ΠΈ Π²Π΅ΡΡΠΈΡ Python ΠΌΠ΅Π½ΡΡΠ΅ 3.11.
Π ΡΡΡΠΎΠΊΠ΅ project.scripts
Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΡΡΠ°ΡΡΠΎΠ²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ main()
ΠΈΠ· __main__.py
ΠΏΠ°ΠΊΠ΅ΡΠ° rplife
.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π²Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ __version__ dunder
, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π² ΡΠ°ΠΉΠ»Π΅ __init__.py
Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° rplife
.
ΠΠΎΡ ΠΈ Π²ΡΠ΅! Π£ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΡΠ°ΠΉΠ» pyproject.toml
Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ». Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΈ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π·Π°ΠΏΡΡΠΊ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ»
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ°ΠΉΠ» pyproject.toml
Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ», ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ Python. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎΠ³ΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°Π³Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°:
Windows:
Linux + macOS:
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΠ΅ Π½ΠΎΠ²ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΡΠ΅Π΄Π° Π±ΡΠ΄Π΅Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ -e
Π² pip install
.
Π Π΅ΠΆΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π½Π° Python. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅. Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΡΠ΅ΡΡΠΈΡΡΡ Π΅Π³ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ rplife
Π½Π°ΠΏΡΡΠΌΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ³ΡΡ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ Glider Gun Π½Π° ΡΡΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ python
. Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π Π°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ Π·Π΄ΠΎΡΠΎΠ²ΠΎ?
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΠΎΠ½Π²Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ³ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π²Ρ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΠ»ΠΈΡΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ argparse
. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π²Ρ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΠΎΡΠΌΠ»ΡΡΡ CLI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΠΏΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° Python.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ:
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠΠ
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
curses
Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠΊΠΈ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» - ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΈΠ³ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
argparse
- ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΈΠ³ΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°
ΠΠΎΠ»ΡΡΠΈΠ² Π²ΡΠ΅ ΡΡΠΈ Π·Π½Π°Π½ΠΈΡ ΠΈ Π½Π°Π²ΡΠΊΠΈ, Π²Ρ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ ΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌ.
ΠΠΏΡΡΡ ΠΆΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½ΠΈΠΆΠ΅:
ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄: ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π·Π΄Π΅ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (.zip) Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ Β«ΠΠΈΠ·Π½ΡΒ» ΠΠΎΠ½Π²Π΅Ρ Π½Π° Python.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ³ΡΠΎΠΉ Β«ΠΠΈΠ·Π½ΡΒ», Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ Π²ΠΏΠ΅ΡΠ΅Π΄, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π‘Π°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ·Π½Π°ΡΡ ΠΎ ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΡ Π²Π΅ΡΠ°Ρ .
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ΄Π΅ΠΉ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ:
- ΠΠ½Π΅Π΄ΡΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ: ΠΠ°Π»ΠΈΡΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°
curses
, Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Tkinter, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ΅ΡΠΊΡ ΠΆΠΈΠ·Π½ΠΈ Π² ΠΎΠΊΠ½Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. - ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΆΠΈΠ·Π½ΠΈ: ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΆΠΈΠ·Π½ΠΈ Π² ΡΠ°ΠΉΠ»
patterns.toml
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈΠ³ΡΡ. - ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°: ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠ΅ΡΡΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΡΡΠ΅ΠΌΡ ΠΆΠΈΠ²ΡΠΌΠΈ ΡΠΎΡΠ΅Π΄ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΠΆΠ΄Π°ΡΡΡΡ, Π° ΠΆΠΈΠ²ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ Π΄Π²ΡΠΌΡ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΌΡ ΠΆΠΈΠ²ΡΠΌΠΈ ΡΠΎΡΠ΅Π΄ΡΠΌΠΈ Π²ΡΠΆΠΈΠ²Π°ΡΡ. Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎ ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ B3/S23, Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°ΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ. ΠΠ΅Π½ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π²ΡΠ΅Π»Π΅Π½Π½ΡΠΌΠΈ, ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ Π½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΡΡ ΠΆΠΈΠ·Π½Ρ.
Π‘ΡΠ°ΡΡΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
- ππΉοΈ ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ³ΡΡ Π½Π° Python: 5 ΠΈΠ³ΡΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ²
- π ΠΠΈΡΠ΅ΠΌ Π’Π΅ΡΡΠΈΡ Π½Π° Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Pygame