import pygame, sys # 声明 导入需要的模块 from pygame.locals import * from math import
pi pygame.init()# 初始化pygame screen = pygame.display.set_mode((700,700))#

, 0) WHITE = (255, 255, 255) RED = (255, 0, 0) GREEN = ( 0, 255, 0) BLUE = ( 0,
0, 255) # 九个格子的位置（写死，有更好的方法请告诉我（肯定有）） box1=[50,50,195,195] box2=[50,250,195,195]
box3=[50,450,195,195] box4=[250,50,195,195] box5=[250,250,195,195] box6=[250,
450,195,195] box7=[450,50,195,195] box8=[450,250,195,195] box9=[450,450,195,195]
# 放进一个大的格子数组中 boxes=[box1,box2,box3,box4,box5,box6,box7,box8,box9] # 绘制黑色作为背景
screen.fill(BLACK) # 绘制棋盘 for i in range(0,9): pygame.draw.rect(screen, WHITE,
boxes[i], 3) # 棋子标识 1为圈 ，0为叉 status = 1 # 已经下了几颗棋子 number = 0 #

) elif nine[1][0] == q and nine[1][1] == q and nine[1][2] == q: drawWin(q) elif
nine[2][0] == q and nine[2][1] == q and nine[2][2] == q: drawWin(q) elif nine[0]
[0] == q and nine[1][0] == q and nine[2][0] == q: drawWin(q) elif nine[0][1] ==
qand nine[1][1] == q and nine[2][1] == q: drawWin(q) elif nine[0][2] == q and
nine[1][2] == q and nine[2][2] == q: drawWin(q) elif nine[0][0] == q and nine[1]
[1] == q and nine[2][2] == q: drawWin(q) elif nine[2][0] == q and nine[1][1] ==
qand nine[0][2] == q: drawWin(q) # 平局 elif number == 9 : drawDraw() else: return
False # 胜出一方提示 def drawWin(q): if q == 1: font = pygame.font.Font(
'BankgothicMB.ttf', 45) text = font.render('Circle WIN!!!', True, RED) screen.
blit(text, (210, 300)) elif q == 2: font = pygame.font.Font('BankgothicMB.ttf',
45) text = font.render('X WIN!!!', True, RED) screen.blit(text, (260, 300)) #

.render('THE GAME HAS DRAWN!', True, RED) screen.blit(text, (85, 300)) while
True: # 程序主循环 for event in pygame.event.get(): if event.type == QUIT: pygame.
quit() sys.exit() elif event.type == MOUSEBUTTONDOWN: pos = pygame.mouse.get_pos
() # 判断鼠标点击在哪个格子上 x = (pos[0]-50) // 200 y = (pos[1]-50) // 200 # 筛选掉已经下过的格子 if
nine[x][y] == 0 and status == 1 : # 画圈 pygame.draw.arc(screen, GREEN,[x*200+75,y
*200+75, 150, 150], 0, 2*pi, 5) nine[x][y]=1 number +=1 # 当下到第五颗棋时开始判断是否有一方胜出 if
number>4: isWin(1) status = 0 # 叉方，逻辑同上 elif nine[x][y] == 0 and status == 0 :
# 画叉 pygame.draw.line(screen, BLUE, [x*200+75, y*200+75], [x*200+225, y*200+225]
, 6) pygame.draw.line(screen, BLUE, [x*200+225, y*200+75], [x*200+75, y*200+225]
, 6) nine[x][y]=2 number +=1 if number>4: isWin(2) status = 1 else : pass pygame
.display.update()# 绘制屏幕内容

GitHub

Gitee