-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclient.py
148 lines (139 loc) · 4.4 KB
/
client.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
from socket import *
import sys
#1.建立tcp套接字,连接server端
Server_addr = ('127.0.0.1',8880)
client = socket(AF_INET,SOCK_STREAM)
client.connect(Server_addr)
#1.规则描述
dd= {'tc': '押头彩:两束顺序点数均正确xx1:35', 'dc': '押大彩:两束点数正确xx1:17',
'kp' : '押空盘:两数不同且均为偶数xx1:5', 'qx' :'押七星:两数之和为七xx1:5',
'dd': '押单对:两数均为奇数xx1:3' ,'sx' : '押散星:两数之和为三、五、九、十一xx1:2'}
#2.赔率表声明
keys=[]
rate=[]
#1-1.规则介绍
print('-------------------------------------------')
print('欢迎来到风月赌场,规则如下:')
for key in dd.keys():#遍历key就好
val=dd[key].split('xx')
print('ya {} <数量> <coin|silver|gold> {:<20s} {:6s}'.format(key,val[0],val[1]))
keys.append(key)
rate.append(val[1])
#2-1.赔率表出来了
rate_dict=zip(keys,rate)
#骰子图样字典 三个单引号
dict1 = {'1':'''
┌───┐
│ │
│ ● |
│ │
└───┘
''',
'2':''''
┌───┐
│ ● │
│ │
│ ● │
└───┘
''',
'3':'''
┌───┐
│ ● │
│ │
│● ●│
└───┘
''',
'4':'''
┌───┐
│● ●│
│ │
│● ●│
└───┘
''',
'5':'''
┌───┐
│● ●│
│ ● │
│● ●│
└───┘
''',
'6':'''
┌───┐
│● ●│
│● ●│
│● ●│
└───┘
'''
}
dict2 = {'1':'一','2':'二','3':'三','4':'四','5':'五','6':'六'} #骰子点数字典
#个人微金库类创建
class vibank:
#1.汇率比例
coin = 1
silver = 10 * coin
gold = 100 * coin
balance = 100
#2.记录押注金额和类型
bet = coin #default,初始一coin
mode = '' #tc,dc,dd,sd,sx
csg='' #coin silver,gold
#重新设置
def set_init(self,bet,typ,csg):
self.bet=bet
self.mode=typ
self.csg=csg
#4.计算余额,下注类型出来
def compute(self,flag):
# global rate_dict
# er=rate_dict[self.mode] er是汇率
rate=17
if self.csg=='coin':
er=self.coin
elif self.csg=='silver':
er=self.silver
else:
er=self.gold
#货币单位调整完毕,押数x赔率x汇率
if flag=='win':
self.balance+=self.bet*er*rate
else:
self.balance-=self.bet*er*rate
print('您的余额是:{}'.format(self.balance))
self.bet=1 #default=1
customer=vibank()
#循环是为了保证能持续进行通话
#Zhen
while True:
print("""
庄家唱道:新开盘!预叫头彩!
庄家将两枚玉骰往银盘中一撒。
""")
global n1,n2,an1,ya
n1 = (client.recv(1).decode('utf-8')) # 因为1个数字只占一个字节,接受服务器端发来的点数
n2 = (client.recv(1).decode('utf-8'))
print(dict1[n1],dict1[n2]) #输出对应点数的预备字典
print('庄家唱道:头彩骰号是 {}、{}'.format(dict2[n1],dict2[n2]))
data = input('输入你押的值 (ya <玩法> <数量> <coin|silver|gold>) :')#ya dd 2 coin
##分析data
if data != 'exit': #
client.send(data.encode('utf-8'))
line=data.split(' ')#储存押注类,然后再完成化
customer.set_init(line[1],line[2],line[3])
else:
client.send(data.encode('utf-8'))#唯一send
sys.exit()
##准备接收点数
print("""
庄家将两枚玉骰扔进两个金盅,一手持一盅摇将起来。
庄家将左手的金盅倒扣在银盘上,玉骰滚了出来。""")
an1 = (client.recv(1).decode('utf-8'))
print(dict1[an1])
print("""
庄家将右手的金盅倒扣在银盘上,玉骰滚了出来。""")
bn2 = (client.recv(1).decode('utf-8'))
print(dict1[bn2])
###接受,庄家判输赢
result=client.recv()
print('庄家叫道:{}、{}'.format(dict2[an1],dict2[bn2]))
customer.compute(result)
#金库情况