背景:为了更好的运用前三阶段学习的知识,再加上本身是个象棋迷,特以此出发点做了一个简单的小游戏
功能: 注册 登录 选桌 红黑方下棋对战 大厅聊天 对战聊天 切换棋盘背景 邮箱验证
技术实现:
客户端:pygame PyQt5 qdarkstyle webbrowser wheel
服务端:AJAX flask框架 TCP 多线程
详细说明:
1)下棋原理
1、pygame背景图像作为一个坐标,左上点为原点,分别以右侧和下侧
为x,y坐标轴的正方向;
2、通过鼠标单击事件来获取棋子被抓起时候的坐标值和下棋子时候的
坐标值来进行一系列判断,从而得到移动棋子与否以及吃子等事件的发生;
3、留下接口给让客户端和服务器进行棋子坐标的通信;
4、当主将被吃掉时候,游戏结束。
2)pygame初始化
1、 import pygame #载入pygame模块
pygame.init() #初始化
screen=pygame.display.set_mode((500,400)) #创建窗口大小
bg=pygame.image.load("背景图片路径’)
screen.blit(bg,(0,0)) #载入背景图片
pygame.mixer.music.load("音乐文件路径”) #载入背景音乐
pygame.mixer.music.play() #播放背景音乐
clock=pygame.time.Clock() #创建时钟对象
3)载入棋子
1、循环遍历载入棋子
screen = pygame.display.set_mode((990,798))
for chess in self.boardChess:
self.screen.blit(chess.image,chess.image_rect)
4)事件监听
1、局部列表my_list
通过对鼠标监听事件来获取棋子的坐标,如果单击获得对象并且颜色为红色,则先清空列表,并将新元素坐标加入列表
5)棋子算法
1、通过比较抓棋子和落棋子的坐标来判断是否可以下棋
6)接口
1、局部列表my_list
通过对鼠标监听事件来获取棋子的坐标,如果单击获得对象并且颜色为红色,则先清空列表,并将新元素坐标加入列表,客户端和服务器通过传输接受棋子坐标来进行客户端与客户端的通信。