파이게임을 이용하여 만든 틱텍토 게임이다
틱택토는 3x3사이즈의 맵에서 하는 3목이다
2인용 게임인데 서로 번갈아 가며 원하는 곳을 마우스로 클릭하면 된다
# pip install pygame
import pygame, sys, datetime, time
# RGB
colors = {"RED": (255, 0, 0), "BLUE": (0, 0, 255), "GREEN": (0, 255, 0),
"BLACK": (0, 0, 0), "WHITE": (255, 255, 255)}
HEIGHT = 600
WIDTH = 600
EMPTY = 0
RED = 1
BLUE = 2
block = [[EMPTY] * 3 for i in range(3)]
def win_check():
# 가로 체크
for i in range(3):
if block[i][0] == block[i][1] == block[i][2]: return block[i][0]
# 세로 체크
for i in range(3):
if block[0][i] == block[1][i] == block[2][i]: return block[0][i]
# 대각선 3칸
if block[0][0] == block[1][1] == block[2][2] or \\
block[2][0] == block[1][1] == block[0][2]:
return block[1][1]
return EMPTY
def draw(display):
pygame.draw.rect(display, colors["WHITE"],
[0, 0, WIDTH, HEIGHT])
# pygame.draw.line(그릴 보드, 색, 시작점, 도착점)
# 가로 2줄 그은거
pygame.draw.line(display,
colors["BLACK"],
(0, HEIGHT // 3),
(WIDTH, HEIGHT // 3), 5)
pygame.draw.line(display, colors["BLACK"],
(0, HEIGHT // 3 * 2), (WIDTH, HEIGHT // 3 * 2), 5)
pygame.draw.line(display,
colors["BLACK"], (WIDTH // 3, 0), (WIDTH // 3, HEIGHT), 5)
pygame.draw.line(display, colors["BLACK"],
(WIDTH // 3 * 2, 0), (WIDTH // 3 * 2, HEIGHT), 5)
xPos = WIDTH // 3 // 2 - 25
yPos = HEIGHT // 3 // 2 - 25
for i in range(3):
for j in range(3):
if block[i][j] == 1:
circle_radius = (WIDTH // 3 // 2 + HEIGHT // 3 // 2) / 2 - 10
pygame.draw.circle(display, colors["BLUE"],
(WIDTH // 3 * j + WIDTH // 3 // 2, HEIGHT // 3 * i + HEIGHT // 3 // 2),
circle_radius, 25)
elif block[i][j] == 2:
pygame.draw.line(display, colors["RED"],
(WIDTH // 3 * j + WIDTH // 3 // 2 - xPos, HEIGHT // 3 * i + HEIGHT // 3 // 2 - yPos),
(WIDTH // 3 * j + WIDTH // 3 // 2 + xPos, HEIGHT // 3 * i + HEIGHT // 3 // 2 + yPos),
25)
pygame.draw.line(display, colors["RED"],
(WIDTH // 3 * j + WIDTH // 3 // 2 + xPos, HEIGHT // 3 * i + HEIGHT // 3 // 2 - yPos),
(WIDTH // 3 * j + WIDTH // 3 // 2 - xPos, HEIGHT // 3 * i + HEIGHT // 3 // 2 + yPos),
25)
return
def main():
pygame.init()
display = pygame.display.set_mode([WIDTH, HEIGHT], False)
pygame.display.set_caption("틱텍토")
run = True
turn = 1
checked = False
while run:
checked = False
current_winner = win_check()
if current_winner:
if current_winner != RED:
print("RED Win")
else:
print("BLUE Win")
run = False
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
elif event.type == pygame.MOUSEBUTTONDOWN:
if checked : continue
pos = pygame.mouse.get_pos()
x = pos[0] // (WIDTH // 3)
y = pos[1] // (HEIGHT // 3)
if block[y][x] != 0: continue
block[y][x] = turn + 1
turn = not turn
checked = True
pygame.display.update()
draw(display)
time.sleep(3)
pygame.quit()
return
main()
sys.exit()
exe파일로 변환하는 것이 안되어서
파이게임 파일 실행하는 방법을 가르쳐 주겠다.
터미널을 킨 후 pip install pygame을 입력한다.
그 후 원하는 파이게임 파일을 클릭하여 실행하면 된다