파이 게임을 사용하는 간단한 Python Tic-Tac-Toe 게임
박하 사탕 발가락 게임의 정의:
두 명의 플레이어가 서로 다른 차례를 찾아 행, 열 또는 대각선을 완성하는 전통적인 전략 게임으로, 9개의 사각형 격자 공간에 3개의 O 또는 3개의 X가 그려져 있습니다. 사각형에는 다른 넛과 십자가가 있습니다. 그것은 일반적으로 종이와 연필 게임이지만 지금은 컴퓨터 게임처럼 프로그래밍되어 있습니다. 사각형의 가로, 세로 또는 대각선 행에 세 개의 표시를 먼저 완료한 플레이어가 승리합니다.
우리가 이것에 대해 알게 되면서, 이 게임을 만드는 첫 번째 단계로 가자:
게임 요구 사항:
당신에게 달려 있습니다)
게임 작동 방식:
플레이어가 동시에 게임을 플레이할 수 있습니다.
패배하거나 게임을 무승부.
이 멋진 게임을 라이브로 만드는 데 필요한 단계:
당신의 코드 편집기.
pip install pygame 명령을 입력하여 패키지를 만듭니다.
Windows10 OS)
영상. 모든 코드 및 이미지 리소스를 저장합니다.
게임에 필요한 파일.
그리고 그 코드에서 사용한 이미지는 당신에게 달려 있습니다. 단지
X 및 O에 대한 편의 이미지를 다운로드하여 내부에 넣으십시오.
이미지 폴더. 경로를 올바르게 지정하십시오.
**X_IMAGE =
pygame.transform.scale(pygame.image.load("**Images/x.png**"), (150,
150))
O_IMAGE =
pygame.transform.scale(pygame.image.load("**Images/o.png**"),(150,
150))**
암호
나는 모든 새로운 코드가 이 프로젝트에 추가되기 전에 주석을 언급했습니다. 이 게임을 만들고자 하는 새로운 개발자들에게 도움이 되기를 바랍니다.
TicTacToeGame.py
import pygame
import math
# Initializing Pygame
pygame.init()
# Screen
WIDTH = 500
ROWS = 3
win = pygame.display.set_mode((WIDTH, WIDTH))
pygame.display.set_caption("TicTacToe")
# Colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GRAY = (200, 200, 200)
RED = (255, 0, 0)
BLUE = (0, 0, 255)
# Images
X_IMAGE = pygame.transform.scale(pygame.image.load("Images/x.png"), (150, 150))
O_IMAGE = pygame.transform.scale(pygame.image.load("Images/o.png"), (150, 150))
# Fonts
END_FONT = pygame.font.SysFont('courier', 40)
def draw_grid():
gap = WIDTH // ROWS
# Starting points
x = 0
y = 0
for i in range(ROWS):
x = i * gap
pygame.draw.line(win, GRAY, (x, 0), (x, WIDTH), 3)
pygame.draw.line(win, GRAY, (0, x), (WIDTH, x), 3)
def initialize_grid():
dis_to_cen = WIDTH // ROWS // 2
# Initializing the array
game_array = [[None, None, None], [None, None, None], [None, None, None]]
for i in range(len(game_array)):
for j in range(len(game_array[i])):
x = dis_to_cen * (2 * j + 1)
y = dis_to_cen * (2 * i + 1)
# Adding centre coordinates
game_array[i][j] = (x, y, "", True)
return game_array
def click(game_array):
global x_turn, o_turn, images
# Mouse position
m_x, m_y = pygame.mouse.get_pos()
for i in range(len(game_array)):
for j in range(len(game_array[i])):
x, y, char, can_play = game_array[i][j]
# Distance between mouse and the centre of the square
dis = math.sqrt((x - m_x) ** 2 + (y - m_y) ** 2)
# If it's inside the square
if dis < WIDTH // ROWS // 2 and can_play:
if x_turn: # If it's X's turn
images.append((x, y, X_IMAGE))
x_turn = False
o_turn = True
game_array[i][j] = (x, y, 'x', False)
elif o_turn: # If it's O's turn
images.append((x, y, O_IMAGE))
x_turn = True
o_turn = False
game_array[i][j] = (x, y, 'o', False)
# Checking if someone has won
def has_won(game_array):
# Checking rows
for row in range(len(game_array)):
if (game_array[0][2] == game_array[1][2] == game_array[2][2]) and game_array[0][2] != "":
display_message(game_array[0][2].upper() + " has won!")
return True
# Checking columns
for col in range(len(game_array)):
if (game_array[0][2] == game_array[1][2] == game_array[2][2]) and game_array[0][2] != "":
display_message(game_array[0][2].upper() + " has won!")
return True
# Checking main diagonal
if (game_array[0][0][2] == game_array[1][1][2] == game_array[2][2][2]) and game_array[0][0][2] != "":
display_message(game_array[0][0][2].upper() + " has won!")
return True
# Checking reverse diagonal
if (game_array[0][2][2] == game_array[1][1][2] == game_array[2][0][2]) and game_array[0][2][2] != "":
display_message(game_array[0][2][2].upper() + " has won!")
return True
return False
def has_drawn(game_array):
for i in range(len(game_array)):
for j in range(len(game_array[i])):
if game_array[i][j][2] == "":
return False
display_message("It's a draw!")
return True
def display_message(content):
pygame.time.delay(500)
win.fill(WHITE)
end_text = END_FONT.render(content, 1, BLACK)
win.blit(end_text, ((WIDTH - end_text.get_width()) // 2, (WIDTH - end_text.get_height()) // 2))
pygame.display.update()
pygame.time.delay(3000)
def render():
win.fill(WHITE)
draw_grid()
# Drawing X's and O's
for image in images:
x, y, IMAGE = image
win.blit(IMAGE, (x - IMAGE.get_width() // 2, y - IMAGE.get_height() // 2))
pygame.display.update()
def main():
global x_turn, o_turn, images, draw
images = []
draw = False
run = True
x_turn = True
o_turn = False
game_array = initialize_grid()
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
if event.type == pygame.MOUSEBUTTONDOWN:
click(game_array)
render()
if has_won(game_array) or has_drawn(game_array):
run = False
while True:
if __name__ == '__main__':
main()
최종 진술:
초보자가 쉽게 구축하고 이해할 수 있는 간단한 초보자 친화적인 Tic-Tac-Toe 게임입니다. 내 github 페이지에서 이 코드를 직접 다운로드할 수도 있습니다. 이것이 이 게임을 만들고 친구나 친구와 함께 이 게임을 즐기는 데 도움이 되기를 바랍니다. 훌륭한 개발 환경을 연결하고 함께 구축합시다.
건배! 행복한 코딩
Reference
이 문제에 관하여(파이 게임을 사용하는 간단한 Python Tic-Tac-Toe 게임), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ramakm/a-simple-python-tic-tac-toe-game-using-pygame-1l8b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)