프로그래밍 학습을 목적으로 pytohon에서 조작 블록을 만들어 점수를 경쟁하는 게임

4738 단어 Python
이 부근의 선조들의 코드를 토대로
https://github.com/LoveDaisy/tetris_game
http://zetcode.com/gui/pyqt5/tetris/
차이점은python에서 블록 조작을 할 수 있도록 개조한 것이다.
나는 앞으로 AI로 블로킹 조작을 할 수 있기를 바란다.(현재 플레이어는 나뿐.)

Giithub의 창고


이 글의 코드는 모두 아래에 기재되어 있다
https://github.com/seigot/tetris_game
https://github.com/seigot/tetris

운영 환경 준비


Mac 환경
Finder→Application→Utility→Terminal에서 터미널을 시작하여 다음 명령을 실행합니다.
# install pyqt5 and NumPy
brew install python3
pip3 install pyqt5
pip3 install numpy
# install other packages
brew install git
환경이 여기 있어요.
Docker 환경 만들기

실행 방법


창고 가져오기
git clone https://github.com/seigot/tetris_game
게임 시작 스크립트 실행
cd tetris_game
bash start.sh
기본값은 임의 작업입니다.

파일 구성


이쪽에서 발췌문 일람
파일 목록
game_manager/game_manager.py : ゲーム管理用プログラム
game_manager/board_model.py : ボード管理用プログラム
board_controller.py : ボード制御用プログラム(ブロックの操作は、このファイルを編集して下さい。)
start.sh : ゲーム開始用スクリプト
구성은 다음과 같다.
보드 제어용 프로그램은 정기적으로 관리자에서 호출되기 때문에 보드 정보에서 다음 동작을 결정합니다.

프로그램별 세부 내용여기.

샘플 코드


실행할 때, 다음 옵션을 제공하여 샘플 코드를 실행할 수 있습니다.
샘플 코드는 여기.를 참조하세요.
bash start.sh -s y

How to play manually


수행할 때 다음 옵션을 사용하여 수동으로 작업을 수행할 수 있습니다.
bash start.sh -m y
조작 키
액션
up key
빙글빙글 돌다
left key
왼쪽으로 이동
right key
오른쪽으로 이동
m key
아래로 이동
space key
떨어지다
P key
Pause

Play rules


제한 시간 내의 득점을 계산하다.

Score


가산점
항목
스코어
시험을 준비하다
한 행 삭제
+100점
-
두 줄 삭제
+300분
-
세 줄 삭제
+700점
-
4행 삭제
+1300점
-
상금이 떨어지다
+ 떨어진 블록 수 가산 득점
-
감점
항목
스코어
시험을 준비하다
gameover
-500분
블록이 나타날 때 매장되면 게임오버.

game level


실행 시 옵션을 제공하여 난이도(레벨)를 지정할 수 있습니다.
level0
level1
level2
level3
실행 방법
bash start.sh
bash start.sh -l1
bash start.sh -l2
bash start.sh -l3
제한 시간
없음
300초
300초
300초
다음 조각
고정
고정
무작위
무작위
필드의 초기 블록
없음
없음
없음
있다
프레임 업데이트 빈도
약 1초
약 1초
약 1초
약 1초
시험을 준비하다
연습
-
-
-

다음 블록의 랜덤성


다음 블록은 현재 무작위 함수를 사용하여 무작위로 선택합니다.
그러나 여기 기사.에 따라 선택 방식은 여러 가지가 있다.
유식한 사람한테 조언을 받을 수 있다면 기쁠 거예요.
  • 참조: 다음 선택 처리game_manager.py
  • nextShapeIndex = np_randomShape.random.randint(1, 7)
    

    기타


    앞으로 AI 구현에 편리하도록 규칙 등이 변경될 수 있다.
    소감이나 건의가 있으면 말씀해 주세요.

    참고 자료


    https://github.com/LoveDaisy/tetris_game
    http://zetcode.com/gui/pyqt5/tetris/
    '네모난 블록 낙하 규칙' 의 진화 에서 러시아 네모난 블록 의 역사 를 배우다
    https://github.com/seigot/tetris_game

    좋은 웹페이지 즐겨찾기