https://zetcode.com/gui/pyqt5/tetris/
์ ์ฌ์ดํธ๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ฐธ์กฐํด์ ๋จผ์ ๋ฐ๋ผ ๋ง๋ค์ด๋ณด๊ณ ๊ทธ ๋ค์์ ์ ๋ณด๊ณ ๋ง๋ค์ด๋ณผ ์์
๊ฒ์์ ์ฝ๋ฉ๋ณด๋ค๋ ๊ธฐํ์ด ๋ ์ค์ํ๊ฒ ์ง๋งย
์ฐ์ ์ฝ๋ฉ์ด ๋์ด์ผ ๊ธฐํ์ ํ๋ ๋ง๋ ํ ์ ์์ํ ๋ ๊ณ ์ ๊ฒ์๋ถํฐ ๋ชจ๋ฐฉํด๋ณด๋ ค๊ณ ํด
์ ์์ ๊ฐ ์๋ฌด๋๋ pyqt๋ฅผ ์๊ฐํ๊ธฐ ์ํ ์์ ์ด๊ธฐ ๋๋ฌธ์
๋ค๋ฅธ ํ ํธ๋ฆฌ์ค ์ฝ๋์ ๋นํด์ ์ข ๋ ๋ฌด๊ฒ๊ณ qt๋ฅผ ์ ์์์ผ๋ง ์ฝ๋๋ฅผ ์ดํดํ ์ ์๋ค
์ด๊ฒ ๋๋๋ฉด ์ญํํด์ console ๋ฒ์ ํ ํธ๋ฆฌ์ค๋ ๋ง๋ค์ด๋ณผ๊น ํด
์ฝ๋ ์ํ ์ ๋๋ ์
A. ํ ํธ๋ฆฌ์ค ๊ธฐ๋ณธ ๋์ ์ธ์ ๊ตฌํ ๋์ด ์๋ ์ฌํญ
- ๋ชจ์๋ง๋ค ์์ด ๋ค๋ฆ
- ์ ์ ํ์
- ์ผ์ ์ ์ง
- ๋ค์์ ๋์ฌ ๋ํ ์๋ ค์ฃผ๋ ์ฐฝ
- ์ดํํธ ๋ถ์กฑ(ํ์ค์ ๋ง์ท์ ๋ ์ฌ๋ผ์ง๋ ์ ๋๋ฉ์ด์ ์ด๋ผ๋๊ฐ.)
- ์ด ๋ธ๋ญ์ด ๋จ์ด์ง ์์น๋ฅผ ์๋ ค์ฃผ๋ ๊ธฐ๋ฅ ON/OFF
- ๊ฒ์ ๋ค์ ์์ ๋ฒํผ
- ์๊ฐ์ ๋ฐ๋ผ ์๋๊ฐ ๋นจ๋ผ์ง๋ ๋์ด๋ ํจ๊ณผ
- ๋ฐฐ๊ฒฝ ๋ฐ ๋ฐฐ๊ฒฝ์์ , ํจ๊ณผ์ ์ถ๊ฐ
- ํ ํธ๋ฆฌ์ค ๊ธฐ๋ณธ ์ฌํญ
- ๋ชจ๋ ๋ธ๋ญ์ ๊ฒ์ ์์ผ๋ก ๋จ์ํ
- ์ ๋ฐฉํฅํค ํ์
- ์๋ ๋ฐฉํฅํค ์๋๋ก ํ ์นธ ์ด๋
- ์คํ์ด์ค ์งํ๊ฐ
- ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ์ด๋
- ์ผ์ ์ ์ง
Update๋ฅผย ํธ์ถํ๋ย ์ด์
updateํจ์๋ฅผ ํธ์ถํ๋ฉด paintEvent๋ฅผ ํธ์ถํ๊ฒ ๋จ
paintEvent์์ ๋ ๋จ๊ณ์ ๊ฑธ์ณ ํ๋ฉด์ ๊ทธ๋ฆผ
ย ์์ฌ์๋ ๋ธ๋ญ
board๋ผ๋ 1์ฐจ์ ๋ฐฐ์ด์ ์ซ์๊ฐ ์ ๋ ฅ๋์ด ์์ผ๋ฉฐ ๊ฐ ์์๋ ๊ฒ์ํ์ ๋ํ์ ์๋ฏธ
2์ฐจ์์ผ๋ก ๊ตฌํํ๋ ๊ฒ์ด ๋ ๋ง์์ด ํธํ ๊ฒ์ผ๋ก ๋ณด์
์กฐ์๊ฐ๋ฅํ ๋ธ๋ญ
๋ธ๋ญ์ ํน์ ์์น๋ฅผ ์๊ณ ์๊ณ ๋ชจ๋ ๋ธ๋ญ์ 4๊ฐ์ ๋ค๋ชจ๋ก ๊ตฌ์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ 4๋ฒ ๋ฃจํ๋ก ๋ํ ๊ทธ๋ฆผ
- ์ด๊ธฐ ํ๋ฉด ๋์ฐ๊ธฐ
- ํค ์ ๋ ฅ ํ์ธ
- ํ์ด๋จธ ์ด๋ฒคํธ ๋์ ํ์ธ
- 7๊ฐ ๋ธ๋ญ ํ๋ฉด์ ๋ํ๋ด๊ธฐ
- ๋ธ๋ญ์ ํค ์
๋ ฅ ์ ์ฉ
- ์ผ์ชฝ, ์ค๋ฅธ์ชฝ
- ์คํ์ด์ค๋ฐ
- ํ์
- ๋ธ๋ญ์ด ๋จ์ด์ ธ ์์ด๋ ๋์
- ํ ์ค์ ์์ฑ ํ์ ๋์ ๋์ ๊ตฌํ
์๋์ผ ์ด๊ฑฐ ํ์ด์ฌ์ด์์. ๋ด๊ฐ ์ด๋ด ๋งํ ์ ์ฅ์ ์๋์ง๋ง ์ด๊ฑฐ ๋ฐฐ์ฐ์ง๋ง๊ณ ์ ๋ํฐ๋ ์ธ๋ฆฌ์ผ๋ก ๋ฐฐ์ฐ๋๊ฑธ ์ถ์ฒํด. ํ ํธ๋ฆฌ์ค๋ง ๋ง๋ค๊ณ ๋๋ผ๊ฑฐ ์๋๋ฉด ๊ผญ ์ ๋ํฐ๋ ์ธ๋ฆฌ์ผ๋ก ๋ฐฐ์ฐ๋๊ฑธ ์ถ์ฒํด. ์ด์์ด๋ฉด ์ ๋ํฐ๊ฐ ์ฌ์ฐ๋๊น ๋ ์ข๊ณ . ์ ๊ฑฐ ๋ด๊ฐ ๋ณผ ๋ ์ด๋ ต๊ธฐ๋ง ํ๊ณ ์ค์์ ์์ด. ์ด๋ฏธ ๋ง๋ค์ด์ง๊ฒ ์์ผ๋ฉด ๋ง๋ค์ด์ง๊ฑธ ์จ์ ์ฌ๋ฏธ๋ถํฐ ๋ถ์ฌ.
๋ง์ ๊ทธ ์๊ฐ๋ ์์ฒญ ํ์์ด ์ ๋ํฐ๋ ์ธ๋ฆฌ์ผ๋ถํฐ ๋ฐฐ์ฐ๋ ๊ฒ ์ข๊ธด ํ๊ฒ ๋๋ฐ ๊ฒ์ ์์ง์ ๊ต์ฅํ ์์กด์ ์ผ๋ก ๋ ๊น๋ด ๊ทธ๋ C ์ ๋ฐฐ์ฐ๊ณ ํ์ด์ฌ ๋ฐฐ์ฐ๋ฉด ๋ง์ ๊ฒ๋ค์ ๋ชจ๋ฅด๊ณ ์ง๋๊ฐ๊ฒ ๋์์? ์ฌ๋ฏธ๋ ์ข ์๋๋ผ๋ C๋ python์ผ๋ก ๊ณ ์ ๊ฒ์ ๋ง๋ค์ด๋ณด๋ฉด์ ๊ฐ์ ์ข ์ตํ๋ ค๊ณ ํด ์กฐ์ธ ๊ณ ๋ง์!
๊ทธ๋ ๋๊ฐ ๊ทธ๋ ๊ฒ๊น์ง ๋งํ๋ฉด ๋์ด์ ๋ง ๋ชปํ๊ฒ ์ง๋ง ๋์ค์ ํํํ ๊น๋ด.. ์ ๋ํฐ๋ก ์ด๋ชฝ์ด์ค, ๋ก๋ธ๋ก์ค ๊ฐ์ ๊ฒ์๋ค๋ ๋ง๋ค๊ณ , ์ธ๋ฆฌ์ผ๋ก ๋ฐฐํ๊ทธ๋ผ์ด๋ ๊ฐ์ ๊ฒ์๋ ๋ง๋ค๊ณ ํ๋๋ฐ ์์กดํ๋ฉด ์ด๋. ์ด๊ฑฐ ์กฐ์ฐจ๋ ์ด๋ ค์ธ๊ป. ๋๊ฐ ํ์ด์ฌ์ ๋ฐฐ์ฐ๋ฉด ๋์ค์ ์ ๋ํฐ๋ ์ธ๋ฆฌ์ผ์ ๋ฐฐ์ธ๋๋ ์ฒ์ ์์ํ๋๊ฑฐ๋ ๋๊ฐ์. ๋์ ์๊ฒฌ์ ์กด์คํ์ง๋ง ๋์ค์ ํํํ ๊น๋ด ๋งํด๋๋๊ฑฐ๋๊น ์ฐธ๊ณ ๋ ํด๋ฌ.
๋ง์๋ง์ ์ ๋ํฐ๋ก ๋ง๋๋ ๊ฒ๋ง ํด๋ ํ ์ธ์์ผ๊ฑฐ์ผ C#์ด C++์ด๋ ๊ฑฐ์ ๋น์ทํ์ง๋ง ์ ์ ํด๋ดค์ ๋๋ ์ด๋ ค์ ์์ด... ๊ทธ๋๋ ํ ๋ฒ ํด๋ณด๊ณ ์ ์๋๋ค ์ถ์ผ๋ฉด ์ ๋ํฐ๋ก ๊ฐ๋ ค๊ณ ใ ใ ์กฐ์ธ ๊ณ ๋ง์
pyqt๋ winapi๋ก ๊ฒ์ ๋ง๋๋ ๋๋์ด๋ผ. ๋๋ด๋ฉด pygame๋ ํ๋ฒ ๊ณ ๋ คํด๋ด
๋ง์ ใ ใ pyqt๋ ๊ทธ๋ฅ ์ต์ํ๊ฑฐ๋ผ ์์์ผ๋ก ๊ณจ๋ผ๋ณธ๊ฑฐ๊ณ c๋ก ๋ง๋ console๋ฒ์ ์ด๋ pygame๋ฒ์ ๋ง๋ค์ด๋ณด๊ณ ๋์ค์๋ unity ๋ฒ์ ๋ ๋ง๋ค์ด๋ณด๋ ค๊ณ ๋ฌด์จ ์๋ฏธ๊ฐ ์๊ฒ ๋ ์ถ์ง๋ง์ ๊ทธ๋ฅ ๊ทธ๋ ๊ฒ ํด๋ณด๊ณ ์ถ๋ค ใ ใ