资源简介
python使用pygame实现的单机五子棋源码,自动判断输赢

代码片段和文件信息
import socket
import threading
import json
import time
receiveData = [] # 存放发送的数据
sendData = [] # 存放接收的数据
rCondition = threading.Condition()
sCondition = threading.Condition()
# 收数据的
class ChessServer(threading.Thread):
def __init__(self ip=‘10.0.14.204‘ port=18090 connectSize=100):
‘‘‘
:param port: 服务器的端口号
:param connectSize: 默认的并发数量
‘‘‘
threading.Thread.__init__(self)
self.__ip = ip
self.__port = port
self.__connectSize = connectSize
pass
def run(self):
‘‘‘
服务启动主程序
:return:
‘‘‘
server = None
try:
server = socket.socket(socket.AF_INET socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET socket.SO_REUSEADDR 1)
server.bind((self.__ip self.__port))
server.listen(self.__connectSize)
while True:
clientConn clientAddr = server.accept() # 等待客户端请求
# 启动独立的线程,处理每一次用户请求
wt = WorkThread(clientConn clientAddr)
wt.start()
pass
except socket.gaierror as g:
print(g)
finally:
server.close()
pass
pass
class WorkThread(threading.Thread):
def __init__(self connection addr bufferSize=8096):
threading.Thread.__init__(self)
self.__connection = connection
self.__addr = addr
self.__bufferSize = bufferSize
pass
def run(self):
while True:
receiveMsg = self.__connection.recv(self.__bufferSize)
print(“收到的原始数据:“ + json.loads(receiveMsg.decode(“utf-8“)))
if rCondition.acquire():
print(“开始收数据:“ + json.loads(receiveMsg.decode(“utf-8“)))
obj = json.loads(receiveMsg.decode(“utf-8“))
print(“rev:“ obj)
receiveData.append(obj)
pass
rCondition.release()
pass
# self.__connection.close()
pass
pass
# 发数据的
class ChessClient(threading.Thread):
def __init__(self ip=‘10.0.14.204‘ port=18080 bufferSize=8096):
threading.Thread.__init__(self)
self.__ip = ip
self.__port = port
self.__bufferSize = 8096
pass
def run(self):
client = socket.socket(socket.AF_INET socket.SOCK_STREAM)
time.sleep(30)
client.connect((self.__ip self.__port))
print(“连接服务器成功:“ self.__port)
while True:
if rCondition.acquire():
print(“开始发送数据:“ sendData)
if len(sendData) >= 1:
client.send((json.dumps(sendData[0])).encode(“utf-8“))
sendData.remove(sendData[0])
print(“发送数据成功:“ sendData[0])
else:
rCondition.wait()
pass
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3249 2019-08-16 16:33 day19\chessserver.py
文件 6897 2019-08-29 14:04 day19\fivechess.py
文件 448072 2019-02-28 12:57 day19\images\bg.png
文件 2444 2019-08-29 13:58 day19\images\black.png
文件 7451 2019-08-16 14:01 day19\images\result.jpg
文件 1173 2019-02-28 12:57 day19\images\storn_black.png
文件 1268 2019-02-28 12:57 day19\images\storn_white.png
文件 3103 2019-08-29 13:56 day19\images\white.png
文件 461091 2019-08-29 14:49 day19\images.rar
文件 0 2019-08-16 15:07 day19\__init__.py
目录 0 2019-08-29 13:59 day19\images
目录 0 2019-08-29 14:49 day19
----------- --------- ---------- ----- ----
934748 12
- 上一篇:100个python练手小程序
- 下一篇:snmporin.py
相关资源
- Python-BDD100K大规模多样化驾驶视频数据
- Instant Pygame for Python Game Development How
- Biopython Tutorial
- Think Python 2nd
- 一个小小的表白程序(python)
- Python课堂笔记(高淇400集第一季)
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
评论
共有 条评论