Numpy 를 NP 로 가져오기
Pygame 가져오기
시스템을 가져옵니다
페깅 임포트
복사본을 가져옵니다
Pygame.locals 에서 가져오기 *
Pygame.init ()
Pygame.mixer.init ()
# 색상
배경 =(20 1, 202, 187)
바둑판 = (80,80,80)
Button = (52,53,44)
# 음악
Play _ chess _ sound = pygame.mixer.sound ("music/play _ chess.wav")
Play _ chess _ sound.set _ volume (0.2)
Button _ sound = pygame.mixer.sound ("music/button.wav")
Button_sound.set_volume(0.2)
Victor _ sound = pygame.mixer.sound ("music/victory.wav")
Victor_sound.set_volume(0.2)
# 바둑판 그리기
Def Draw _ a _ 검사기 (화면):
# 채우기 배경 색상
화면 채우기 (배경)
Background = pygame.image.load ("background.jpg"). Convert_alpha ()
Screen.blit (배경, (0,0))
# 바둑판 그리기
범위 내 I(2 1) 의 경우:
Pygame.draw.line (화면, 바둑판, (40 * I+3,3), (40 * I+3,803))
Pygame.draw.line (화면, 바둑판, (3,40 * I+3), (803,40 * I+3))
# 선 그리기
Pygame.draw.line (화면, 바둑판, (3, 3), (803, 3), 5)
Pygame.draw.line (화면, 바둑판, (3,3), (3,803), 5)
Pygame.draw.line (화면, 바둑판, (803, 3), (803, 803), 5)
Pygame.draw.line (화면, 바둑판, (3,803), (803,803), 5)
# 앵커 포인트 그리기
Pygame.draw.circle (화면, 바둑판, (163, 163), 6)
Pygame.draw.circle (화면, 바둑판, (163,643), 6)
Pygame.draw.circle (화면, 바둑판, (643, 163), 6)
Pygame.draw.circle (화면, 바둑판, (643,643), 6)
Pygame.draw.circle (화면, 바둑판, (403,403), 6)
#' 후회기',' 다시 시작',' 끝내기' 버튼을 그립니다
Pygame.draw.rect (화면, 버튼,)
# 지도 리스트 지우기
지우기 정의 ():
글로벌 지도
범위 (24) 의 I:
범위 (24) 의 j 에 대해 다음을 수행합니다.
지도)
# 창 이름 정의
Pygame.display.set_caption ("바둑")
# 창에 보드, 알림 및 버튼을 그립니다
바둑판 그리기 (화면)
Pygame.display.flip ()
Clock=pygame.time.Clock ()
정확함에도 불구하고:
# 달리기는 진짜여야 넘어질 수 있고, 주로 경기 후 다시 넘어지는 것을 막기 위해 쓰인다.
실행 중인 경우:
T:
Color= 1
텍스트 ("검은색 이동", 화면, 54)
그렇지 않은 경우:
색상 =2
텍스트 ("백기 걷는 법", 화면, 54)
Pygame.event.get () 에 있는 이벤트의 경우:
# x 를 클릭하여 창을 닫습니다.
If event.type ==pygame 입니다. 종료:
Pygame.quit ()
Sys.exit ()
# 창에서 강좌 용량을 클릭하여 설명을 완료합니다.
Elifevent.type = = mouse button down:
If event.button == 1:
X, y = 이벤트 위치 [0], 이벤트 위치 [1]
범위 내 I 의 경우 (19):
범위 내 j( 19) 의 경우:
# 체스판에서 적절한 위치를 클릭합니다
내 * 40+3+20 < X & lti*40+3+60 및 j * 40+3+20 < Y & ltj*40+3+60 및 매핑 안 함 [i][j] 및 실행:
# 해당 색상의 조각을 체스판의 해당 위치에 놓습니다.
Draw_a_chessman(i+ 1, j+ 1, 화면, 색상)
# 오디오 재생
Play_chess_sound.play(0)
# 지도에 스프링 위치 기록
맵 [I] [j] = 색상
# 지도에 지도 저장
Map3 = copy.deepcopy (지도)
Maps.append (지도 3)
# 이사 후 오자 일선이 있는지 판단한다.
If win(i, j):
T:
텍스트 ("검은 바둑이 이겼습니다. 다시 한 번 놀아주세요.", 화면, 30)
그렇지 않은 경우:
텍스트 ("백기가 이겼습니다. 다시 한 번 놀아주세요.", 화면, 30)
# 오디오 재생
빅토르 _ 소리. 재생 (0)
# 더 이상 체스판에 넘어지지 마라
달리기 = 거짓
Pygame.display.flip ()
T = t 가 아님
# "다시 시작" 을 클릭하면
900<x< 1 100 및 500<y & lt600 인 경우:
# 잠금 해제
실행 = 참
# 오디오 재생
버튼 _ 사운드 재생 (0)
# 다시 시작
주 ()
# 게임 종료를 클릭하여 게임을 종료합니다.
Elif900 & ltx<1100 및 650<y & lt750:
# 오디오 재생
버튼 _ 사운드 재생 (0)
Pygame.quit ()
Sys.exit ()
# "후회 체스" 클릭
Elif 900<x< 1020 및 350<y & lt450 및 len (지도)! = 1:
# 오디오 재생
버튼 _ 사운드 재생 (0)
# 지도에서 마지막 요소 삭제
Del maps[len(maps)- 1]
# 그런 다음 마지막 요소를 지도에 복사합니다.
Map = copy.deepcopy (maps [len (maps)-1])
# 순서 전환
T = t 가 아님
# 지도 표시.
체스판으로 바둑판 그리기 (지도, 화면)
# 만약 네가 바둑을 후회한다면, 더 이상 바둑을 후회하지 마라.
X, y = 0,0 입니다
Clock.tick(60)
If __name__ == "__main__ ":
시도:
주 ()
시스템 종료 제외:
합격이다
제외:
Traceback.print_exc ()
Pygame.quit ()
() 를 입력합니다