spygame
이것을 시도해 보세요.
import numpy as NP
import pygame
import sys
; P >
pygame.init ()
pygame.mixer.init ()
# 색상
# 음악
play _ chess _ sound = pygame.mixer.sound ("music") P >
button _ sound = pygame.mixer.sound ("music/button.wav")
bund Victory.wav ")
victor _ sound.set _ volume (0.2)
# 보드 그리기
background = pygame.image.load ("background.jpg"). convert _ alpha () < 0))
# 바둑판 그리기
for I in range (21):
pygame.draw.ll 803))
pygame.draw.line(screen, checkerboard, (3,40 * I+3), (803 Checkerboard, (3,3), (803,3), 5)
pygame.draw.line (screen, check Checkerboard, (803,3), (803,803), 5)
pygame.draw.line (screen;
pygame.draw.circle (화면, 체커 보드, (163,643), 6)
6)
pygame.draw.circle (screen, checkerboard, (643,643), 6)
6)#' 후회 체스'' 다시 시작' 과' 종료' 버튼
pygame.draw.rect(screen) 5)
pygame.draw.rect (화면, button,, 5)
< s _ font = py Button)
text2 = s _ font.render ("재시작", True, button)
text 370))
screen.blit (텍스트 2, (920,520))
screen.blit (text 2 는 흰색을 나타냄))
def Draw_a_chessman(x, y, screen, Color):
if color = = 1:
black _ chess = pygame.image.load (
screen.blit(Black_chess, (40*x+3-15, 40 * y+3-15))
ifcolor = = 2:
white _ chess = pygame.ime
screen.blit(White_chess, (40*x+3-15, 40 * y+3-15))
화면):화면. 파일 (배경)
draw _ a _ chessboard (화면
Aw_a_chessman(i+1, j+1, screen, 지도)
# 지도 목록 비우기
defclear ():
global map
<# 글꼴 및 크기 정의
s _ font = pygame.font.font ('font.ttf', x)
# 창 지정 위치
screen.blit(s_text, (880, 100))
pygame.display.flip ()
# 제어 순서
t = true 맵, 런닝이 변경 가능한
글로벌 t, 맵, 런닝링, 맵, r, H
# map 0 배치
clear()
# 모든 검사기 상태를 저장하는 리스트 정의 (후회용)
< P >pygame.display.set _ caption ("바둑")
# 창에 바둑판을 그립니다. 프롬프트와 버튼
draw _ a _ chessboard (screen)
pygame.display.flip ()) Running 이 참인 경우에만 낙자가 될 수 있으며, 주로 게임 종료 후 다시 낙자 방지
if running:
if t:
color = 1 에 사용됩니다 화면, 54)
else:
color = 2
text 54)
for event in pygame.event.get ():
# x 를 클릭하면 창 닫기
IP P >
pygame.quit ()
sys.exit ()
# 창 내부를 클릭하면 됩니다
해당 명령
elifevent.type = = mousebuttondown:
ifevent.button = = 1: < Event.pos [1]
for I in range (19):
for j in range (19):
바둑판의 해당 위치if I * 43+20lt 를 클릭합니다. Xlt;; I * 43+60 및 j * 43+20lt; Ylt;; J * 43+60 and not map [I] [j] and running:
# 체스판의 해당 위치에 해당 색상 칩을 배치합니다
Draw_a_chessman(i+1, j+1, screen, Color)
# 오디오 재생
play _ chess _ sound.play (0)
# map 에 드롭 하위 위치 기록
map[i][j]=color
# 지도를 maps 에 저장
map3 = copy.deepcopy (map)
maps.append (map3)
# 낙자 뒤에 5 자 선
if win(i, J):
if t:
text 30)
else:
text 30)
# 오디오 재생
victor _ sound.play (0)
# 체스판에 더 이상 떨어지지 않도록 방지
running = false
pygame.display.flip ()
t=not t
#' 다시 시작' 을 클릭하면
if 900lt; Xlt;; 1100 및 500 lt; Ylt;; 600:
# 오디오 재생 차단 해제
running=True
# 오디오 재생 P >
button _ sound.play (0)
# 다시 시작
main ()
< 게임 종료' 를 클릭하여 게임 종료elif 900lt; Xlt;; 1100 및 650 lt; Ylt;; 750:
# 오디오 재생
button _ sound.play (0)
pygame.
sys.exit()
#' 후회 체스' 클릭
elif 900lt; Xlt;; 1020 및 350 lt; Ylt;; 450 and len(maps)! = 1:
# 오디오 재생
button _ sound.play (0)
# maps 에서 마지막 삭제 P >
delmap [len (maps)-1]
# 마지막 요소 copy 를 맵에 제공 P >
맵 = copy.deepcopy (지도 [len (maps)-1])
# 전환 순서
<;# 지도 표시
Draw_a_chessbo
Ard _ with _ chessman (지도, 화면)
# 회 회 회 회 회 회 회 회 회 회 회 회 회
x, y=0, 0
clock.tick (60)
if _ _ name _ _ = = "_ _ main _ _ P >
except:
traceback.print _ exc ()
pygame.quit ())