#coding=UTF-8
‘’’
任务:密室逃脱(猜数字)服务器
作者:全淅亚
时间:2019.7.14
‘’’
import SocketServer
import random,time
import base64
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
playNum = 0 #在线人数
playName = {} #玩家名字
bestNum = 0 #竞赛模式
coop = 0
rank = []
生成4位数
def secretRandom():
print ‘生成随机不重复4位数’
randomNum = range(0, 10)
random.shuffle(randomNum)
# print ‘测试生成0-9随机数’,randomNum
global secret
secret = str(randomNum[0] * 1000 + randomNum[1] * 100 + randomNum[2] * 10 + randomNum[3])
print ‘测试生成4位数密码数字序列’,secret
return secret
class MyTCPHandler(SocketServer. BaseRequestHandler): # 必须写入handle方法,建立链接时会自动执行handle方法
def handle(self):
global playNum
playNum += 1
try:
print ‘连接到客户端:’, self.client_address
print ‘目前在线玩家:’, playNum
print ‘发送游戏介绍’
self.AES(msg=self. gameBg(), s=1)
self.AES(msg=self.gameIntro(), s=1)
time.sleep(1)
self.playName()
self.pattern()
self.playExit()
except:
print ‘客户端’, self.client_address, ‘断开连接’
# 开始游戏
def playGame(self):
print self.client_address,‘开始游戏’
self.AES(msg=self.gamePlay(), s=1)
while True:
data = self.AES(msg=’’, s=2)
# 信息判断
if self.order(data):
continue