主页 > 手机  > 

五子棋游戏

五子棋游戏
import pygame #导入pygame模块 pygame.init()#初始化 screen = pygame.display.set_mode((750,750))#设置游戏屏幕大小 running = True#建立一个事件 while running:#事件运行 for event in pygame.event.get(): if event.type == pygame.QUIT:#当点击事件后退出 running = False #事件关闭 screen.fill([125,95,24])#给屏幕画上颜色 for x in range(15):#画出15条竖线 pygame.draw.line(screen, (255, 0, 0),[25+50*x,25],[25+50*x,725],2) for y in range(15):#画出15条横线 pygame.draw.line(screen, (255, 0, 0),[25,25+50*y],[725,25+50*y],2) pygame.draw.circle(screen, (255, 0, 0),[25+50*7,25+50*7],8)#棋盘中间画出一个中心点 pygame.display.update()#刷新,变色用的 pygame.quit()#退出游戏

一。画出棋盘x和y  横和竖个15条线,画出中央的小点

二,创建列表,计算出x和y的当前坐标的位置,且存储二维列表的值,画出圆形白色棋子

import pygame #导入pygame模块 pygame.init()#初始化 screen = pygame.display.set_mode((750,750))#设置游戏屏幕大小 map = [0]*15#创建一个列表 for i in range(15):#列表循环来存储数据 map[i] = [0]*15#二维列表来存储数据 running = True#建立一个事件 while running:#事件运行 for event in pygame.event.get(): if event.type == pygame.QUIT:#当点击事件后退出 running = False #事件关闭 elif event.type == pygame.MOUSEBUTTONDOWN:#鼠标相应点击事件 x,y = pygame.mouse.get_pos()#获取x,y的位置 col = round((x - 25)/50)#计算出x的位置 row = round((y - 25)/50)#计算出y的位置 print(row+1,col+1)#打印出x与y的位置 map[row][col] = 1#等于1表示把它的数值存储起来 screen.fill([125,95,24])#给屏幕画上颜色 for x in range(15):#画出15条竖线 pygame.draw.line(screen, (255, 0, 0),[25+50*x,25],[25+50*x,725],2) for y in range(15):#画出15条横线 pygame.draw.line(screen, (255, 0, 0),[25,25+50*y],[725,25+50*y],2) x,y = pygame.mouse.get_pos()#获取鼠标所在位置 x = round((x - 25)/50)*50 + 25#找到x和y的交叉点 y = round((y - 25)/50)*50 + 25#找到x和y的交叉点 pygame.draw.rect(screen,(255, 0, 0),[x-25,y-25,50,50],2)#画一个正方形框框,表示可以落子 pygame.draw.circle(screen, (255, 0, 0),[25+50*7,25+50*7],8)#棋盘中间画出一个中心点 for row in range(15):#棋盘上画出白色棋子 for col in range(15):#棋盘上画出白色棋 if map[row][col] == 1:#点击后在棋盘上画出白色棋 pygame.draw.circle(screen,(255, 255, 255),[col*50+25,row*50+25],25)#棋盘上画出白色棋的位置和大小半径 pygame.display.update()#刷新,变色用的 pygame.quit()#退出游戏

三.黑白棋子交替出现

import pygame #导入pygame模块 pygame.init()#初始化 screen = pygame.display.set_mode((750,750))#设置游戏屏幕大小 map = [0]*15#创建一个列表 for i in range(15):#列表循环来存储数据 map[i] = [0]*15#二维列表来存储数据 player = 1#创建玩家1 running = True#建立一个事件 while running:#事件运行 for event in pygame.event.get(): if event.type == pygame.QUIT:#当点击事件后退出 running = False #事件关闭 elif event.type == pygame.MOUSEBUTTONDOWN:#鼠标相应点击事件 x,y = pygame.mouse.get_pos()#获取x,y的位置 col = round((x - 25)/50)#计算出x的位置 row = round((y - 25)/50)#计算出y的位置 print(row+1,col+1)#打印出x与y的位置 # map[row][col] = 1#等于1表示把它的数值存储起来 map[row][col] = player# if player == 1:#当点击事件后 player = 2 #2是黑子 else: player = 1#下一次是白子 screen.fill([125,95,24])#给屏幕画上颜色 for x in range(15):#画出15条竖线 pygame.draw.line(screen, (255, 0, 0),[25+50*x,25],[25+50*x,725],2) for y in range(15):#画出15条横线 pygame.draw.line(screen, (255, 0, 0),[25,25+50*y],[725,25+50*y],2) x,y = pygame.mouse.get_pos()#获取鼠标所在位置 x = round((x - 25)/50)*50 + 25#找到x和y的交叉点 y = round((y - 25)/50)*50 + 25#找到x和y的交叉点 pygame.draw.rect(screen,(255, 0, 0),[x-25,y-25,50,50],2)#画一个正方形框框,表示可以落子 pygame.draw.circle(screen, (255, 0, 0),[25+50*7,25+50*7],8)#棋盘中间画出一个中心点 for row in range(15):#棋盘上画出白色棋子 for col in range(15):#棋盘上画出白色棋 if map[row][col] == 1:#点击后在棋盘上画出白色棋 pygame.draw.circle(screen,(255, 255, 255),[col*50+25,row*50+25],25)#棋盘上画出白色棋的位置和大小半径 if map[row][col] == 2: # 点击后在棋盘上画出白色棋 pygame.draw.circle(screen, (000, 000, 000), [col * 50 + 25, row * 50 + 25], 25) #当时玩家2时棋盘上画出黑色棋子 pygame.display.update()#刷新,变色用的 pygame.quit()#退出游戏

四,提示已经被其他棋子占领了,不能重复占领

五。创建检测五子相连的函数  def  check

六.,实现水平向左和向右方向的五子连线的判断胜负

import pygame #导入pygame模块 pygame.init()#初始化 screen = pygame.display.set_mode((750,750))#设置游戏屏幕大小 map = [0]*15#创建一个列表 for i in range(15):#列表循环来存储数据 map[i] = [0]*15#二维列表来存储数据 player = 1#创建玩家1 running = True def check(row,col):#创建check函数检测五子连线 #判断左右方向是否五子连线 score = 1 for i in range(4): if map[row][col+i] == map[row][col+i+1]: score = score + 1 else: break for i in range(4): if map[row][col-i] == map[row][col-i-1]: score = score + 1 else: break if score == 5: return True while running:#事件运行 for event in pygame.event.get(): if event.type == pygame.QUIT:#当点击事件后退出 running = False #事件关闭 elif event.type == pygame.MOUSEBUTTONDOWN:#鼠标相应点击事件 x,y = pygame.mouse.get_pos()#获取x,y的位置 col = round((x - 25)/50)#计算出x的位置 row = round((y - 25)/50)#计算出y的位置 if map[row][col]== 0: print(row+1,col+1)#打印出x与y的位置 # map[row][col] = 1#等于1表示把它的数值存储起来 map[row][col] = player# if(check(row,col)):#如果检测到五子连线了那么打印赢了 print("有人赢了") else: if player == 1:#当点击事件后 player = 2 #2是黑子 else: player = 1#下一次是白子 else: print("当前位置已经被占领了") screen.fill([125,95,24])#给屏幕画上颜色 for x in range(15):#画出15条竖线 pygame.draw.line(screen, (255, 0, 0),[25+50*x,25],[25+50*x,725],2) for y in range(15):#画出15条横线 pygame.draw.line(screen, (255, 0, 0),[25,25+50*y],[725,25+50*y],2) x,y = pygame.mouse.get_pos()#获取鼠标所在位置 x = round((x - 25)/50)*50 + 25#找到x和y的交叉点 y = round((y - 25)/50)*50 + 25#找到x和y的交叉点 pygame.draw.rect(screen,(255, 0, 0),[x-25,y-25,50,50],2)#画一个正方形框框,表示可以落子 pygame.draw.circle(screen, (255, 0, 0),[25+50*7,25+50*7],8)#棋盘中间画出一个中心点 for row in range(15):#棋盘上画出白色棋子 for col in range(15):#棋盘上画出白色棋 if map[row][col] == 1:#点击后在棋盘上画出白色棋 pygame.draw.circle(screen,(255, 255, 255),[col*50+25,row*50+25],25)#棋盘上画出白色棋的位置和大小半径 if map[row][col] == 2: # 点击后在棋盘上画出白色棋 pygame.draw.circle(screen, (000, 000, 000), [col * 50 + 25, row * 50 + 25], 25) #当时玩家2时棋盘上画出黑色棋子 pygame.display.update()#刷新,变色用的 pygame.quit()#退出游戏

检查左右方向的水平方向五子棋连接的五个

检测上下方向五子相连

检测左下 右上方向五子相连

检测左上右下的五子相连

import pygame #导入pygame模块 pygame.init()#初始化 screen = pygame.display.set_mode((750,750))#设置游戏屏幕大小 map = [0]*15#创建一个列表 for i in range(15):#列表循环来存储数据 map[i] = [0]*15#二维列表来存储数据 player = 1#创建玩家1 running = True def check(row,col):#创建check函数检测五子连线 #判断左右方向是否五子连线 score = 1 for i in range(4): if map[row][col+i] == map[row][col+i+1]: score = score + 1 else: break for i in range(4): if map[row][col-i] == map[row][col-i-1]: score = score + 1 else: break if score == 5: return True # 判断上下方向是否五子连线 score = 1 for i in range(4): if map[row+i][col] == map[row+i+1][col]: score = score + 1 else: break for i in range(4): if map[row-i][col] == map[row-i-1][col]: score = score + 1 else: break if score == 5: return True # 判断左下右上方向是否五子连线(左下行和列都减小,右上行和列都变大) score = 1 for i in range(4): if map[row+i][col+i] == map[row+i+1][col+i+1]: score = score + 1 else: break for i in range(4): if map[row-i][col-i] == map[row-i-1][col-i-1]: score = score + 1 else: break if score == 5: return True # 判断左上右下方向是否五子连线(左上行增加列减小,右下行变大,列变小) score = 1 for i in range(4): if map[row - i][col + i] == map[row - i - 1][col + i + 1]: score = score + 1 else: break for i in range(4): if map[row + i][col - i] == map[row + i + 1][col - i - 1]: score = score + 1 else: break if score == 5: return True while running:#事件运行 for event in pygame.event.get(): if event.type == pygame.QUIT:#当点击事件后退出 running = False #事件关闭 elif event.type == pygame.MOUSEBUTTONDOWN:#鼠标相应点击事件 x,y = pygame.mouse.get_pos()#获取x,y的位置 col = round((x - 25)/50)#计算出x的位置 row = round((y - 25)/50)#计算出y的位置 if map[row][col]== 0: print(row+1,col+1)#打印出x与y的位置 # map[row][col] = 1#等于1表示把它的数值存储起来 map[row][col] = player# if(check(row,col)):#如果检测到五子连线了那么打印赢了 print("有人赢了") else: if player == 1:#当点击事件后 player = 2 #2是黑子 else: player = 1#下一次是白子 else: print("当前位置已经被占领了") screen.fill([125,95,24])#给屏幕画上颜色 for x in range(15):#画出15条竖线 pygame.draw.line(screen, (255, 0, 0),[25+50*x,25],[25+50*x,725],2) for y in range(15):#画出15条横线 pygame.draw.line(screen, (255, 0, 0),[25,25+50*y],[725,25+50*y],2) x,y = pygame.mouse.get_pos()#获取鼠标所在位置 x = round((x - 25)/50)*50 + 25#找到x和y的交叉点 y = round((y - 25)/50)*50 + 25#找到x和y的交叉点 pygame.draw.rect(screen,(255, 0, 0),[x-25,y-25,50,50],2)#画一个正方形框框,表示可以落子 pygame.draw.circle(screen, (255, 0, 0),[25+50*7,25+50*7],8)#棋盘中间画出一个中心点 for row in range(15):#棋盘上画出白色棋子 for col in range(15):#棋盘上画出白色棋 if map[row][col] == 1:#点击后在棋盘上画出白色棋 pygame.draw.circle(screen,(255, 255, 255),[col*50+25,row*50+25],25)#棋盘上画出白色棋的位置和大小半径 if map[row][col] == 2: # 点击后在棋盘上画出白色棋 pygame.draw.circle(screen, (000, 000, 000), [col * 50 + 25, row * 50 + 25], 25) #当时玩家2时棋盘上画出黑色棋子 pygame.display.update()#刷新,变色用的 pygame.quit()#退出游戏

添加变量winner赋值给player,提示谁赢了,且提示3秒退出游戏

标签:

五子棋游戏由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“五子棋游戏