Pygame β ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ 2D ΠΈΠ³Ρ Π½Π° Python: Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π²ΠΈΠ΄Π΅ΠΎ, ΡΠΏΡΠ°ΠΉΡΠ°ΠΌΠΈ, ΡΡΠΈΡΡΠ°ΠΌΠΈ ΠΈ Π·Π²ΡΠΊΠΎΠΌ, Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ ΠΌΡΡΠΈ. ΠΠ»Π°Π²Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Pygame β Π»Π΅Π³ΠΊΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π Ρ ΠΎΡΡ Pygame Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ³Ρ, ΡΡΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΠΎΠ½Π° Π’Π΅ΡΡΠΈΡΠ°. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π΄Π΅ΡΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Pygame
Pygame Π½Π΅ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ Python. ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² cmd ΠΊΠΎΠΌΠ°Π½Π΄Ρ py -m pip install -U pygame --user
. ΠΠΎΠ»Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° β ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ 8 ΠΠ±.
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΉ Β«ΡΡΠ°ΠΊΠ°Π½Β», Π² ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π΅ΡΡ Ρ ΠΏΠ°Π΄Π°ΡΡ ΡΠΈΠ³ΡΡΡ β ΡΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π±ΡΠΊΠ²Ρ L, S, Z, J, O, I ΠΈ T.
ΠΠ°ΠΆΠ΄Π°Ρ Π±ΡΠΊΠ²Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 4 Π±Π»ΠΎΠΊΠΎΠ²:
ΠΠ³ΡΠΎΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠ³ΡΡ Π²Π½ΠΈΠ· β Π΄Π²ΠΈΠ³Π°Π΅Ρ ΠΈΡ
Π²ΠΏΡΠ°Π²ΠΎ ΠΈ Π²Π»Π΅Π²ΠΎ (Π½ΠΎ Π½Π΅ Π²Π²Π΅ΡΡ
), ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π½Π° 90 Π³ΡΠ°Π΄ΡΡΠΎΠ², ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ/ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡΠΈ β
ΠΈΠ»ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΠΈΠ³ΡΡΡ Π½Π° Π΄Π½ΠΎ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Enter.
ΠΡΠΈΠ·Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠ³ΡΡΠ° ΠΏΠ°Π΄Π°Π΅Ρ Π½Π° Π΄Π½ΠΎ ΡΡΠ°ΠΊΠ°Π½Π° ΠΈΠ»ΠΈ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠΈΠ³ΡΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π²ΡΠ·Π²Π°Π»ΠΎ Π»ΠΈ ΠΏΡΠΈΠ·Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ (Π±Π΅Π· ΠΏΡΡΡΠΎΡ) Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΄Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΡΡΠ΄Ρ (ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡ 1 Π΄ΠΎ 4 Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ) ΡΠ΄Π°Π»ΡΡΡΡΡ; Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²Π½ΠΈΠ· Π½Π° ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΄ΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠ»ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΎ; Π²Π²Π΅ΡΡ Ρ ΡΡΠ°ΠΊΠ°Π½Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΡΡΡΡ ΡΡΠ΄ΠΎΠ². ΠΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ 10 Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΡΡΠ΄ΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, ΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡ ΡΡΠΊΠΎΡΡΠ΅ΡΡΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ³ΡΡ
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π½ΡΠΆΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ:
ΠΠ°ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ β ΠΊΠ°Π΄ΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠΎΡΡ fps
, Π²ΡΡΠΎΡΡ ΠΈ ΡΠΈΡΠΈΠ½Ρ ΠΎΠΊΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°Π·ΠΌΠ΅Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΈΠ³ΡΡ-Π±ΡΠΊΠ² block
(20 Ρ
20 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ), ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ°ΠΊΠ°Π½Π°, ΡΠΈΠΌΠ²ΠΎΠ» Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΡΡΡΡ
ΡΡΠ΅Π΅ΠΊ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅:
Π ΡΠ°Π·ΠΌΠ΅ΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° block
ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ: ΡΠΈΡΠΈΠ½Π° ΠΈ Π²ΡΡΠΎΡΠ° ΡΡΠ°ΠΊΠ°Π½Π°, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠ°Π²Π½Ρ 10 ΠΈ 20 Π±Π»ΠΎΠΊΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ; ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ»Π°Π²ΠΈΡΡ β
ΠΈΠ»ΠΈ β
, ΡΠΈΠ³ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° 1 Π±Π»ΠΎΠΊ Π² Π½ΡΠΆΠ½ΡΡ ΡΡΠΎΡΠΎΠ½Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ side_freq
ΠΈ down_freq
Π·Π°Π΄Π°ΡΡ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΈΠ»ΠΈ Π²Π½ΠΈΠ·, Π΅ΡΠ»ΠΈ ΠΈΠ³ΡΠΎΠΊ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ»Π°Π²ΠΈΡΡ Π½Π°ΠΆΠ°ΡΠΎΠΉ:
ΠΠ»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ°ΠΊΠ°Π½Π° ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ
Π½Π°Π΄ΠΏΠΈΡΠ΅ΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ side_margin
ΠΈ top_margin
β ΠΏΠ΅ΡΠ²Π°Ρ Π·Π°Π΄Π°Π΅Ρ Π΄ΠΈΡΡΠ°Π½ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΠΈ Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ ΠΎΠΊΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΡΠ°ΠΊΠ°Π½ΠΎΠΌ; Π²ΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡ
Π½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΠ΅ΠΉ ΡΡΠ°ΠΊΠ°Π½Π° ΠΈ ΠΎΠΊΠ½ΠΎΠΌ:
Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΈ ΡΠ²Π΅Ρ ΡΠΈΠ³ΡΡ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΈΠ³ΡΡΡ-Π±ΡΠΊΠ²Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ Π½Π° 90 Π³ΡΠ°Π΄ΡΡΠΎΠ², Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠ²ΠΎΡΠΎΡΠΎΠ² ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ figures
Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΡΠΏΠΈΡΠΊΠΎΠ², ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΡΡ
ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΡΡΠΎΠΊ: ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ x ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ Π·Π°Π½ΡΡΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ, o β ΠΏΡΡΡΡΠ΅. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ°ΡΠ΅Π½ΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΡΠΌΡ Π±ΡΠΊΠ²Ρ: Ρ O, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΈΠ³ΡΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 4 Π±Π»ΠΎΠΊΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ 5 Ρ
5: fig_w, fig_h = 5, 5
.
Π¦Π²Π΅ΡΠ° ΡΠΈΠ³ΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π΄Π²ΡΠΌΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ: colors
ΠΈ lightcolors
. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π΅ΡΠ»ΡΠ΅ ΠΎΡΡΠ΅Π½ΠΊΠΈ ΡΠ΅Ρ
ΠΆΠ΅ ΡΠ²Π΅ΡΠΎΠ², ΡΡΠΎ ΠΈ colors
β Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎ 2.5 D ΡΡΡΠ΅ΠΊΡΠ°.
FPS ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
Pygame Π½Π΅ΠΌΠΈΠ»ΠΎΡΠ΅ΡΠ΄Π½ΠΎ Π½Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ: ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΈΠ³ΡΠ° Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ CPU Π½Π° 100% ΠΈ Π½Π°Π³ΡΠ΅Π²Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠΈΠ»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ 3D-ΡΡΡΠ΅Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π΅ Π½Π° Python:). ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° pygame.time.Clock()
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π½ΡΠΆΠ½ΠΎΠΉ fps
β ΠΊΠ°Π΄ΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ.
Π¨ΡΠΈΡΡΡ
ΠΠΎΠ΄ΡΠ»Ρ Pygame ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΡΠΈΡΡΠΎΠΌ β freesansbold.ttf. ΠΡΠΈ ΡΡΠΎΠΌ Pygame ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠΈΡΡΡ β ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠ°ΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΡΡΠΈΡΡΠΎΠ², ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ pygame.font.get_fonts()
.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ΅ΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
ΠΡΠ»ΠΈ ΡΡΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ Windows\Fonts\, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Arial β Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ pygame.font.SysFont: pygame.font.SysFont('arial', 15)
.
ΠΡΠ»ΠΈ ΡΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ β ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΊ Π½Π΅ΠΌΡ ΠΏΡΡΡ Π² pygame.font.Font('/User/Tetris/game.ttf', 18).
Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠΈΡΡ Π² ΠΎΠ΄Π½Ρ ΠΏΠ°ΠΏΠΊΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ: pygame.font.Font('game.ttf', 18)
ΠΠ°ΡΠ·Π°, ΡΠΊΡΠ°Π½ ΠΏΠ°ΡΠ·Ρ ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ
ΠΠ°ΡΠ·Π° Π² Π½Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ±Π΅Π»Π° event.key == K_SPACE
. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Β«Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΒ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ°ΡΠ·Ρ, Π½ΡΠΆΠ½ΠΎ Π·Π°Π»ΠΈΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΡΠ²Π΅ΡΠΎΠΌ.
ΠΠ°Π»ΠΈΠ²ΠΊΡ ΡΠΏΠ»ΠΎΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ, Π½ΠΎ ΠΏΠΎΠ»ΡΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΡ Π·Π°ΡΡΠ°Π²ΠΊΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ β ΠΊΠ°ΠΊ Π½ΠΈ ΡΡΡΠ°Π½Π½ΠΎ, ΠΌΠ΅ΡΠΎΠ΄ draw
Π² Pygame Π΄ΠΎ ΡΠΈΡ
ΠΏΠΎΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΡ ΠΎΠΏΡΠΈΡ. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠΈ Ρ ΠΏΠΎΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠΌ Π°Π»ΡΡΠ°-ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΡΡ Π·Π°Π»ΠΈΠ²ΠΊΡ ΡΠΊΡΠ°Π½Π° ΠΏΠ°ΡΠ·Ρ ΡΠ²Π΅ΡΠΎΠΌ Ρ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΡ ΠΎΠΊΠ½Π° ΠΈΠ³ΡΡ:
ΠΠΊΡΠ°Π½ ΠΏΠ°ΡΠ·Ρ ΡΠ°ΠΊΠΆΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠΈΠ³ΡΡΡΠ°, Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΠ³ΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°
.
Π€ΡΠ½ΠΊΡΠΈΡ main()
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Pygame, ΡΠΈΡΡΠ΅Ρ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠ³ΡΡ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π·Π°ΠΏΡΡΠΊ Π’Π΅ΡΡΠΈΡΠ° runTetris()
ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΡΠ΅:
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ΄ Π’Π΅ΡΡΠΈΡΠ°
ΠΠΎΠ΄ ΠΈΠ³ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ runTetris()
:
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΡΡΠΎΠ³ΠΎ ΡΡΠ°ΠΊΠ°Π½Π° emptycup()
, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π²Π»Π΅Π²ΠΎ, Π²ΠΏΡΠ°Π²ΠΎ ΠΈ Π²Π½ΠΈΠ· ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° False
:
ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° True
Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΡΡΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² Π½ΡΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ:
ΠΠ»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΈΠ³ΡΡ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΈΠ³ΡΡ, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Π½ΠΈΠ· ΠΈ ΠΏΠΎΠΊΠ°Π·ΠΎΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΈΠ³ΡΡΡ:
ΠΠΎΡΠ»Π΅ ΠΏΡΠΈΠ·Π΅ΠΌΠ»Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΠ³ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ fallingFig
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° None
, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Β«ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠΈΠ³ΡΡΠ°Β» nextFig
, ΡΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Π°Ρ Π² ΠΏΡΠ΅Π²ΡΡ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Β«ΠΏΠ°Π΄Π°ΡΡΠ΅ΠΉΒ» fallingFig
. Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΠΈΠ³ΡΡΠ° Π΄Π»Ρ ΠΏΡΠ΅Π²ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ getNewFig()
. ΠΠ°ΠΆΠ΄Π°Ρ Π½ΠΎΠ²Π°Ρ ΠΏΠ°Π΄Π°ΡΡΠ°Ρ ΡΠΈΠ³ΡΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° ΡΡΡΡ Π²ΡΡΠ΅ ΡΡΠ°ΠΊΠ°Π½Π°. Π€ΡΠ½ΠΊΡΠΈΡ checkPos()
Π²Π΅ΡΠ½Π΅Ρ False
, Π΅ΡΠ»ΠΈ ΡΡΠ°ΠΊΠ°Π½ ΡΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ· Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΠ³ΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°
. ΠΡΠ° ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ checkPos()
ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΡΠΈΠ³ΡΡΠ° Π² Π³ΡΠ°Π½ΠΈΡΠ°Ρ
ΡΡΠ°ΠΊΠ°Π½Π° ΠΈ Π½Π΅ Π½Π°ΡΡΠΊΠ°Π΅ΡΡΡ Π»ΠΈ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΡΡΠ³ΠΈΡ
ΡΠΈΠ³ΡΡ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠΌ ΡΠΈΠΊΠ»Π΅:
Π¦ΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ·Ρ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΈ ΠΎΡΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΡΠΎ ΡΡΡΠ΅Π»ΠΊΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ β
, β
ΠΈ β
Π½Π΅ Π½Π°ΠΆΠ°ΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° False
:
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠ³ΡΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² Π²Π΅ΡΠΊΠ΅ elif event.type == KEYDOWN
: Π΅ΡΠ»ΠΈ Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° ΡΠΎ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ checkPos()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True
, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ:
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΎΡΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠ»Π°Π²ΠΈΡΡ, ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ side_freq
ΠΈ down_freq
. Π‘Π»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ»Π°Π²ΠΈΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ΅ΠΊΡΠ½Π΄, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½ΠΈΠΆΠ΅.
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ β
ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡΡ β Π²Π°ΡΠΈΠ°Π½ΡΡ Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΡΠ»ΠΎΠ²Π°ΡΡ figures
. Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ IndexError: list index out of range, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π½ΡΠ»ΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: fallingFig['rotation'] + 1) % len(figures[fallingFig['shape']]
. ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ checkPos()
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ΅ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΈΠ³ΡΡΠ° Π½Π°ΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π±Π»ΠΎΠΊ, Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°:
ΠΠ»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠΊ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ»Π°Π²ΠΈΡΡ β
:
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ
ΠΎΡΠ΅Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠΈΠ³ΡΡΡ Π½Π° Π΄Π½ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΆΠ°ΡΡ Enter.
Π¦ΠΈΠΊΠ» for
Π·Π΄Π΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½ΠΈΠ·ΠΊΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΡΠ°ΠΊΠ°Π½Π΅:
Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ»Π°Π²ΠΈΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΡ:
ΠΈ
Π ΡΡΠΈΡ
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ»Π°Π²ΠΈΡΡ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ 0.15 ΠΈΠ»ΠΈ 0.1 ΡΠ΅ΠΊΡΠ½Π΄Ρ β Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ True
, ΠΈ ΡΠΈΠ³ΡΡΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈΠ·Π±Π°Π²Π»ΡΡΡ ΠΈΠ³ΡΠΎΠΊΠ° ΠΎΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ β Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡ
ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ.
Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²ΠΌΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡΠΎΠΉ, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ· ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΈΠ³ΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ Π½Π°Π΄ΠΏΠΈΡΠ΅ΠΉ
Π€ΡΠ½ΠΊΡΠΈΡ runTetris()
Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ
ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ, Π²ΡΠ²ΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈΠ³ΡΡ, ΠΏΠ°Π΄Π°ΡΡΠ΅ΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠΈΠ³ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ
Π½Π°Π΄ΠΏΠΈΡΠ΅ΠΉ:
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ txtObjects()
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ, ΡΡΠΈΡΡ ΠΈ ΡΠ²Π΅Ρ, ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° render()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Surface
(ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΡ) ΠΈ Rect
(ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ). ΠΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ blit
Π² ΡΡΠ½ΠΊΡΠΈΠΈ showText()
, Π²ΡΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π½Π°Π΄ΠΏΠΈΡΠΈ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΠ³ΡΡ.
ΠΡΡ
ΠΎΠ΄ ΠΈΠ· ΠΈΠ³ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ stopGame()
, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ sys.exit()
ΠΈΠ· ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ΄ΡΠ»Ρ sys
.
ΠΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡ ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΡΡΠ°ΠΊΠ°Π½Π° ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ addToCup()
:
ΠΠΎΠΊΠ° ΡΠΈΠ³ΡΡΠ° Π΄Π²ΠΈΠ³Π°Π΅ΡΡΡ, Π΅Π΅ Π±Π»ΠΎΠΊΠΈ Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΡΡΠ°ΠΊΠ°Π½Π° β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠ·Π΅ΠΌΠ»Π΅Π½ΠΈΡ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΡ Π½ΠΈΠΆΠ΅.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΠΊΠ°Π½Π°
ΠΡΡΡΠΎΠΉ ΡΡΠ°ΠΊΠ°Π½ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ emptycup()
:
ΠΡΡΡΠΎΠΉ ΡΡΠ°ΠΊΠ°Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ o. ΠΠ°Π½ΡΡΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0, 1, 2, 3 β Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ ΡΠ²Π΅ΡΠΎΠ² ΡΠΈΠ³ΡΡ Π² ΠΊΠΎΡΡΠ΅ΠΆΠ΅ colors
. Π’Π°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΌΠ°ΡΡΠΈΠ² cup ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠ·Π΅ΠΌΠ»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠΈΠ³ΡΡ:
Π€ΡΠ½ΠΊΡΠΈΡ checkPos()
ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠ°Π΄Π°ΡΡΠ°Ρ ΡΠΈΠ³ΡΡΠ° ΠΎΡΡΠ°Π²Π°Π»Π°ΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΈ Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π»Π°ΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ»Π΅Π²Π° ΡΠΈΠ³ΡΡΠ° ΠΎΡΡΠ°Π΅ΡΡΡ Π² Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π° β ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ. Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡΡ Π² ΡΡΠ°ΠΊΠ°Π½Π΅, Π½ΡΠΆΠ½ΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΈΠ³ΡΡΡ ΡΠΎ Β«ΡΡΠ°ΠΊΠ°Π½Π½ΡΠΌΠΈΒ»:
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ β (2, 1), (3, 1), (2, 2), (2, 3).
Π‘ΡΠ°ΠΊΠ°Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΈΠ³ΡΡΡ β (2, 3) Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ»Π΅Π²Π° ΠΈ (1, 11) Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π°. Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ:
(2+2, 1+3), (3+2, 1+3), (2+2, 2+3), (2+2, 3+3) = (4, 4), (5, 4), (4, 5), (4, 6). ΠΠ½Π°ΡΠΈΡ, ΡΠΈΠ³ΡΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΡΠ°ΠΊΠ°Π½Π° ΠΈ Π½Π΅ Π½Π°ΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Π½ΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠΈΠ³ΡΡ.
ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ»Π΅Π²Π° ΡΠΈΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ:
(2+1, 2+11), (3+1, 2+11), (2+1, 3+11), (2+1, 4+11) = (3, 13), (4, 13), (3, 14), (3, 15) β Π΄Π²Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ cup ΡΠΆΠ΅ Π·Π°Π½ΡΡΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΡΠΈΠ³ΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°ΡΡ checkPos()
Π²ΠΌΠ΅ΡΡΠ΅ Ρ incup()
:
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΡΡΠ΄ΠΎΠ² ΠΈ ΡΠ΄Π²ΠΈΠ³ Π±Π»ΠΎΠΊΠΎΠ² Π²Π½ΠΈΠ·
ΠΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ
ΡΡΠ΄ΠΎΠ² ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ clearCompleted()
Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ isCompleted()
. ΠΡΠ»ΠΈ isCompleted()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True
, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π²Π½ΠΈΠ· Π²ΡΠ΅ ΡΡΠ΄Ρ, ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΠΈΠ΅ΡΡ Π½Π°Π΄ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠΌ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΠ΄ empty-Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎ
:
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ y
ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ΄Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ β ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ
Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ
ΡΡΠ΄ΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠΌΠ΅ΡΠ°ΡΡΡΡ Π½Π° ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ
Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ
ΡΡΠ΄ΠΎΠ² ΠΏΠΎΠΊΠ° Π½Π΅Ρ, ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ Ρ
.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΠ³ΡΡ
ΠΠ°ΠΆΠ΄Π°Ρ ΡΠΈΠ³ΡΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 4 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² β Π±Π»ΠΎΠΊΠΎΠ². ΠΠ»ΠΎΠΊΠΈ ΡΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ drawBlock(),
ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈΠ· convertCoords()
:
ΠΠ»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ rect
(ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ) ΠΈ circle
(ΠΊΡΡΠ³). ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Π΅ΡΡ
Π½ΠΈΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΡ (Surface
), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°Π»ΠΎΠΆΠΈΡΡ Π½Π° ΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ». Π€ΡΠ½ΠΊΡΠΈΡ drawBlock()
ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² drawnextFig()
Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΈΠ³ΡΡΡ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ³ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π·Π΄Π΅ΡΡ. ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ Π’Π΅ΡΡΠΈΡ Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. Pygame ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΌΠ°Π»ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π² ΠΈΠ³ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π΄Π»Ρ Π·Π°ΠΊΡΡΡΠΈΡ, ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΠΈΡΡ ΡΠ΅ΠΊΠΎΡΠ΄ΠΎΠ² Π² ΡΠ°ΠΉΠ». ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΎΡΡΠ°Π»ΠΈΡΡ Π½Π΅ΡΡΠ½ΡΠΌΠΈ β Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ .
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
- π΅ ΠΠΈΡΠ΅ΠΌ ΠΊΠ΅ΠΉΠ»ΠΎΠ³Π³Π΅Ρ Π½Π° Python Π΄Π»Ρ Windows Π·Π° 5 ΠΌΠΈΠ½ΡΡ
- π Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΠ°Π½Π΅Π»Π΅ΠΉ Ρ Streamlit ΠΈ Python
- π ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΉΡ Π½Π° Python Π·Π° 5 ΠΌΠΈΠ½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SSG-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Pelican
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ