没有合适的资源?快使用搜索试试~ 我知道了~
基于python的socket实现单机五子棋到双人对战
10 下载量 80 浏览量
2020-12-31
19:59:44
上传
评论 6
收藏 80KB PDF 举报
温馨提示
基于python的socket实现单机五子棋到双人对战,供大家参考,具体内容如下 本次实验使用python语言。通过socket进行不同机器见的通信,具体可以分为以下四步:1.创建ServerSocket和Socket;2.打开链接到Socket的输入/输出流;3.按照协议对Socket进行读/写操作;4.关闭输入输出流、关闭Socket。 由于是双人对战,服务器必须应对多人及以上的客户端的连接,因此本实验还引入了python的threading多线程模块,通过监听实时监控网络状态,同时利用socket.listen(2)引入排队等待机制。 chess类 #五子棋类 import os cl
资源推荐
资源详情
资源评论
基于基于python的的socket实现单机五子棋到双人对战实现单机五子棋到双人对战
基于python的socket实现单机五子棋到双人对战,供大家参考,具体内容如下
本次实验使用python语言。通过socket进行不同机器见的通信,具体可以分为以下四步:1.创建ServerSocket和Socket;2.打
开链接到Socket的输入/输出流;3.按照协议对Socket进行读/写操作;4.关闭输入输出流、关闭Socket。
由于是双人对战,服务器必须应对多人及以上的客户端的连接,因此本实验还引入了python的threading多线程模块,通过监
听实时监控网络状态,同时利用socket.listen(2)引入排队等待机制。
chess类类
#五子棋类
import os
class chessboard(object):
def __init__(self):
self.size = 16
#初始化棋盘
self.__board=[[' ' for n in range(self.size)] for m in range(self.size)] n = 0
#添加桌面标签
while n < self.size:
ntr=str(n)
self.__board[0][n] = ntr.zfill(2)
self.__board[n][0] = ntr.zfill(2)
n=n+1
self.id=0
#胜利条件
def is_end(self):
ch_stack=[] #行检查
for i in range(self.size):
for j in range(self.size):
#判断是否结束
chess=self.__board[i][j] if len(ch_stack)==5 and ch_stack[-1]=='* ':
print('winner=id 1')
return 1
elif len(ch_stack) == 5 and ch_stack[-1] == '@ ':
print('winner=id 2')
return 2
if chess==' ':
ch_stack.clear()
else:
if (not ch_stack) or ch_stack[-1] == chess:
ch_stack.append(chess)
else:
ch_stack.clear()
ch_stack.append(chess)
ch_stack.clear()
ch_stack.clear()
#列检查
for j in range(self.size):
for i in range(self.size):
#判断是否结束
if len(ch_stack)==5 and ch_stack[-1]=='* ':
print('winner=id 1')
return 1
elif len(ch_stack) == 5 and ch_stack[-1] == '@ ':
print('winner=id 2')
return 2
chess=self.__board[i][j] if chess==' ':
ch_stack.clear()
else:
if (not ch_stack) or ch_stack[-1] == chess:
ch_stack.append(chess)
else:
ch_stack.clear()
ch_stack.append(chess)
ch_stack.clear()
ch_stack.clear()
#左斜检查
#下三角
资源评论
weixin_38725015
- 粉丝: 8
- 资源: 926
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功