Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
微笑面对bug
ddz
提交
32884362
ddz
项目概览
微笑面对bug
/
ddz
通知
5
Star
2
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ddz
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
32884362
编写于
9月 19, 2020
作者:
微笑面对bug
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
界面
上级
55bae1a4
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
1 addition
and
5 deletion
+1
-5
dist/css/app.9870ab7e.css
dist/css/app.9870ab7e.css
+0
-1
dist/index.html
dist/index.html
+1
-1
dist/js/app.e35a531b.js
dist/js/app.e35a531b.js
+0
-2
dist/js/app.e35a531b.js.map
dist/js/app.e35a531b.js.map
+0
-1
未找到文件。
dist/css/app.9870ab7e.css
已删除
100644 → 0
浏览文件 @
55bae1a4
.poker
[
data-v-70a35e10
]
{
height
:
100%
;
width
:
50px
;
border
:
1px
solid
;
border-radius
:
8px
;
float
:
left
;
margin-left
:
-25px
;
background-color
:
azure
}
.poker
[
data-v-70a35e10
]
:hover
{
background-color
:
#faebd7
}
.selected
[
data-v-70a35e10
]
{
margin-top
:
-20px
}
\ No newline at end of file
dist/index.html
浏览文件 @
32884362
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
http-equiv=
X-UA-Compatible
content=
"IE=edge"
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><title>
Vue App
</title><link
href=
css/app.9870ab7e.css
rel=
preload
as=
style
><link
href=
js/app.e35a531b.js
rel=
preload
as=
script
><link
href=
js/chunk-vendors.caf18475.js
rel=
preload
as=
script
><link
href=
css/app.9870ab7e.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
src=
js/chunk-vendors.caf18475.js
></script><script
src=
js/app.e35a531b.js
></script></body></html>
\ No newline at end of file
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
http-equiv=
X-UA-Compatible
content=
"IE=edge"
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><title>
Vue App
</title><link
href=
css/app.1475b526.css
rel=
preload
as=
style
><link
href=
js/app.2113c29b.js
rel=
preload
as=
script
><link
href=
js/chunk-vendors.caf18475.js
rel=
preload
as=
script
><link
href=
css/app.1475b526.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
src=
js/chunk-vendors.caf18475.js
></script><script
src=
js/app.2113c29b.js
></script></body></html>
\ No newline at end of file
dist/js/app.e35a531b.js
已删除
100644 → 0
浏览文件 @
55bae1a4
(
function
(
e
){
function
t
(
t
){
for
(
var
n
,
l
,
o
=
t
[
0
],
a
=
t
[
1
],
p
=
t
[
2
],
u
=
0
,
c
=
[];
u
<
o
.
length
;
u
++
)
l
=
o
[
u
],
Object
.
prototype
.
hasOwnProperty
.
call
(
i
,
l
)
&&
i
[
l
]
&&
c
.
push
(
i
[
l
][
0
]),
i
[
l
]
=
0
;
for
(
n
in
a
)
Object
.
prototype
.
hasOwnProperty
.
call
(
a
,
n
)
&&
(
e
[
n
]
=
a
[
n
]);
h
&&
h
(
t
);
while
(
c
.
length
)
c
.
shift
()();
return
s
.
push
.
apply
(
s
,
p
||
[]),
r
()}
function
r
(){
for
(
var
e
,
t
=
0
;
t
<
s
.
length
;
t
++
){
for
(
var
r
=
s
[
t
],
n
=!
0
,
o
=
1
;
o
<
r
.
length
;
o
++
){
var
a
=
r
[
o
];
0
!==
i
[
a
]
&&
(
n
=!
1
)}
n
&&
(
s
.
splice
(
t
--
,
1
),
e
=
l
(
l
.
s
=
r
[
0
]))}
return
e
}
var
n
=
{},
i
=
{
app
:
0
},
s
=
[];
function
l
(
t
){
if
(
n
[
t
])
return
n
[
t
].
exports
;
var
r
=
n
[
t
]
=
{
i
:
t
,
l
:
!
1
,
exports
:{}};
return
e
[
t
].
call
(
r
.
exports
,
r
,
r
.
exports
,
l
),
r
.
l
=!
0
,
r
.
exports
}
l
.
m
=
e
,
l
.
c
=
n
,
l
.
d
=
function
(
e
,
t
,
r
){
l
.
o
(
e
,
t
)
||
Object
.
defineProperty
(
e
,
t
,{
enumerable
:
!
0
,
get
:
r
})},
l
.
r
=
function
(
e
){
"
undefined
"
!==
typeof
Symbol
&&
Symbol
.
toStringTag
&&
Object
.
defineProperty
(
e
,
Symbol
.
toStringTag
,{
value
:
"
Module
"
}),
Object
.
defineProperty
(
e
,
"
__esModule
"
,{
value
:
!
0
})},
l
.
t
=
function
(
e
,
t
){
if
(
1
&
t
&&
(
e
=
l
(
e
)),
8
&
t
)
return
e
;
if
(
4
&
t
&&
"
object
"
===
typeof
e
&&
e
&&
e
.
__esModule
)
return
e
;
var
r
=
Object
.
create
(
null
);
if
(
l
.
r
(
r
),
Object
.
defineProperty
(
r
,
"
default
"
,{
enumerable
:
!
0
,
value
:
e
}),
2
&
t
&&
"
string
"
!=
typeof
e
)
for
(
var
n
in
e
)
l
.
d
(
r
,
n
,
function
(
t
){
return
e
[
t
]}.
bind
(
null
,
n
));
return
r
},
l
.
n
=
function
(
e
){
var
t
=
e
&&
e
.
__esModule
?
function
(){
return
e
[
"
default
"
]}:
function
(){
return
e
};
return
l
.
d
(
t
,
"
a
"
,
t
),
t
},
l
.
o
=
function
(
e
,
t
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
t
)},
l
.
p
=
""
;
var
o
=
window
[
"
webpackJsonp
"
]
=
window
[
"
webpackJsonp
"
]
||
[],
a
=
o
.
push
.
bind
(
o
);
o
.
push
=
t
,
o
=
o
.
slice
();
for
(
var
p
=
0
;
p
<
o
.
length
;
p
++
)
t
(
o
[
p
]);
var
h
=
a
;
s
.
push
([
0
,
"
chunk-vendors
"
]),
r
()})({
0
:
function
(
e
,
t
,
r
){
e
.
exports
=
r
(
"
56d7
"
)},
"
56d7
"
:
function
(
e
,
t
,
r
){
"
use strict
"
;
r
.
r
(
t
);
r
(
"
e260
"
),
r
(
"
e6cf
"
),
r
(
"
cca6
"
),
r
(
"
a79d
"
);
var
n
=
r
(
"
2b0e
"
),
i
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
r
=
e
.
_self
.
_c
||
t
;
return
r
(
"
div
"
,{
attrs
:{
id
:
"
app
"
}},[
r
(
"
Game
"
)],
1
)},
s
=
[],
l
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
r
=
e
.
_self
.
_c
||
t
;
return
r
(
"
div
"
,[
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
height
:
"
300px
"
,
float
:
"
left
"
,
position
:
"
fixed
"
,
left
:
"
0px
"
,
top
:
"
0px
"
,
"
background-color
"
:
"
aliceblue
"
,
"
text-align
"
:
"
center
"
}},[
r
(
"
span
"
,[
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player2Str
[
0
])
+
"
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player2Str
[
1
])
+
"
"
),
r
(
"
br
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player2Str
[
2
])
+
"
"
)])]),
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
height
:
"
300px
"
,
float
:
"
left
"
,
position
:
"
fixed
"
,
left
:
"
600px
"
,
top
:
"
0px
"
,
"
background-color
"
:
"
aliceblue
"
,
"
text-align
"
:
"
center
"
}},[
r
(
"
span
"
,[
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player1Str
[
0
])
+
"
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player1Str
[
1
])
+
"
"
),
r
(
"
br
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player1Str
[
2
])
+
"
"
)])]),
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
height
:
"
300px
"
,
float
:
"
left
"
,
position
:
"
fixed
"
,
left
:
"
300px
"
,
top
:
"
300px
"
,
"
background-color
"
:
"
aliceblue
"
,
"
text-align
"
:
"
center
"
}},[
r
(
"
span
"
,[
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player0Str
[
0
])
+
"
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player0Str
[
1
])
+
"
"
),
r
(
"
br
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player0Str
[
2
])
+
"
"
)]),
r
(
"
div
"
,[
r
(
"
input
"
,{
directives
:[{
name
:
"
model
"
,
rawName
:
"
v-model
"
,
value
:
e
.
playerStr
,
expression
:
"
playerStr
"
}],
attrs
:{
type
:
"
text
"
},
domProps
:{
value
:
e
.
playerStr
},
on
:{
input
:
function
(
t
){
t
.
target
.
composing
||
(
e
.
playerStr
=
t
.
target
.
value
)}}}),
r
(
"
button
"
,{
on
:{
click
:
e
.
sendPoker
}},[
e
.
_v
(
"
send
"
)]),
r
(
"
button
"
,{
on
:{
click
:
e
.
pass
}},[
e
.
_v
(
"
pass
"
)])])]),
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
height
:
"
300px
"
,
float
:
"
left
"
,
position
:
"
fixed
"
,
left
:
"
300px
"
,
top
:
"
0px
"
,
"
background-color
"
:
"
aliceblue
"
,
"
text-align
"
:
"
center
"
}},[
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
"
word-wrap
"
:
"
break-word
"
}},[
e
.
_v
(
"
"
+
e
.
_s
(
e
.
deskStr
[
0
])
+
"
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
deskStr
[
1
])
+
"
"
)])]),
r
(
"
div
"
,{
staticStyle
:{
position
:
"
fixed
"
,
left
:
"
300px
"
,
top
:
"
600px
"
}},[
r
(
"
button
"
,{
on
:{
click
:
e
.
reStart
}},[
e
.
_v
(
"
reStart
"
)])])])},
o
=
[],
a
=
(
r
(
"
b0c0
"
),
r
(
"
a434
"
),
r
(
"
d4ec
"
)),
p
=
r
(
"
bee2
"
),
h
=
(
r
(
"
99af
"
),
r
(
"
0481
"
),
r
(
"
d81d
"
),
r
(
"
fb6a
"
),
r
(
"
4069
"
),
r
(
"
d3b7
"
),
r
(
"
25f0
"
),
function
(){
function
e
(
t
){
Object
(
a
[
"
a
"
])(
this
,
e
),
t
.
text
?(
this
.
text
=
t
.
text
,
this
.
number
=
e
.
textToNumber
(
t
.
text
)):(
this
.
number
=
t
.
number
,
this
.
text
=
e
.
numberToText
(
t
.
number
)),
this
.
type
=
t
.
type
,
this
.
selected
=
t
.
selected
}
return
Object
(
p
[
"
a
"
])(
e
,[{
key
:
"
toString
"
,
value
:
function
(){
return
this
.
text
}}],[{
key
:
"
textToNumber
"
,
value
:
function
(
e
){
switch
(
e
){
case
"
3
"
:
return
3
;
case
"
4
"
:
return
4
;
case
"
5
"
:
return
5
;
case
"
6
"
:
return
6
;
case
"
7
"
:
return
7
;
case
"
8
"
:
return
8
;
case
"
9
"
:
return
9
;
case
"
10
"
:
case
"
0
"
:
case
"
T
"
:
case
"
t
"
:
return
10
;
case
"
11
"
:
case
"
j
"
:
case
"
J
"
:
return
11
;
case
"
12
"
:
case
"
q
"
:
case
"
Q
"
:
return
12
;
case
"
13
"
:
case
"
k
"
:
case
"
K
"
:
return
13
;
case
"
1
"
:
case
"
a
"
:
case
"
A
"
:
return
14
;
case
"
2
"
:
return
15
;
case
"
s
"
:
case
"
S
"
:
return
16
;
case
"
x
"
:
case
"
X
"
:
return
17
}}},{
key
:
"
numberToText
"
,
value
:
function
(
e
){
switch
(
e
){
case
3
:
return
"
3
"
;
case
4
:
return
"
4
"
;
case
5
:
return
"
5
"
;
case
6
:
return
"
6
"
;
case
7
:
return
"
7
"
;
case
8
:
return
"
8
"
;
case
9
:
return
"
9
"
;
case
10
:
return
"
10
"
;
case
11
:
return
"
J
"
;
case
12
:
return
"
Q
"
;
case
13
:
return
"
K
"
;
case
14
:
return
"
A
"
;
case
15
:
return
"
2
"
;
case
16
:
return
"
S
"
;
case
17
:
return
"
X
"
}}},{
key
:
"
sortFunction
"
,
value
:
function
(
e
,
t
){
return
e
.
number
-
t
.
number
}},{
key
:
"
getObjByPokerList
"
,
value
:
function
(
t
){
if
(
"
pass
"
===
t
[
0
])
return
{
type
:
"
pass
"
,
poker
:
t
};
t
.
sort
(
e
.
sortFunction
);
for
(
var
r
=
t
[
0
],
n
=
[
r
],
i
=
[],
s
=
1
;
s
<
t
.
length
;
s
++
)
t
[
s
].
number
!==
r
.
number
?(
i
.
push
(
n
),
n
=
[
t
[
s
]]):
n
.
push
(
t
[
s
]),
r
=
t
[
s
];
i
.
push
(
n
);
for
(
var
l
=
[],
o
=
[],
a
=
[],
p
=
[],
h
=
0
;
h
<
i
.
length
;
h
++
)
3
===
i
[
h
].
length
?
a
.
push
(
i
[
h
]):
2
===
i
[
h
].
length
?
o
.
push
(
i
[
h
]):
1
===
i
[
h
].
length
?
l
.
push
(
i
[
h
]):
4
===
i
[
h
].
length
&&
p
.
push
(
i
[
h
]);
if
(
1
===
t
.
length
)
return
{
type
:
"
one
"
,
poker
:
t
,
one
:
t
};
if
(
2
===
t
.
length
){
if
(
1
===
o
.
length
)
return
{
type
:
"
two
"
,
poker
:
t
,
two
:
t
};
if
(
16
===
t
[
0
].
number
&&
17
===
t
[
1
].
number
)
return
{
type
:
"
sx
"
,
poker
:
t
,
sx
:
t
}}
else
if
(
4
===
t
.
length
){
if
(
1
===
a
.
length
)
return
{
type
:
"
threeWithOne
"
,
poker
:
t
,
three
:
a
[
0
],
one
:
l
[
0
]};
if
(
1
===
p
.
length
)
return
{
type
:
"
four
"
,
poker
:
t
,
four
:
t
}}
else
if
(
5
===
t
.
length
){
if
(
1
===
a
.
length
&&
1
===
o
.
length
)
return
{
type
:
"
threeWithTwo
"
,
poker
:
t
,
three
:
a
[
0
],
two
:
o
[
0
]}}
else
if
(
8
===
t
.
length
){
if
(
2
===
a
.
length
&&
a
[
0
][
0
].
number
+
1
===
a
[
1
][
0
].
number
)
return
1
===
o
.
length
&&
(
l
.
push
(
o
[
0
].
splice
(
0
,
1
)),
l
.
push
(
o
[
0
].
splice
(
0
,
1
))),{
type
:
"
threeWithOneList
"
,
poker
:
t
,
list
:[{
three
:
a
[
0
],
one
:
l
[
0
]},{
three
:
a
[
1
],
one
:
l
[
1
]}]}}
else
if
(
10
===
t
.
length
&&
2
===
a
.
length
&&
a
[
0
][
0
].
number
+
1
===
a
[
1
][
0
].
number
&&
2
===
o
.
length
)
return
{
type
:
"
threeWithTwoList
"
,
poker
:
t
,
list
:[{
three
:
a
[
0
],
two
:
o
[
0
]},{
three
:
a
[
1
],
two
:
o
[
1
]}]};
return
t
.
length
>=
5
&&
l
.
length
===
t
.
length
&&
t
[
0
].
number
+
t
.
length
-
1
===
t
[
t
.
length
-
1
].
number
?{
type
:
"
oneList
"
,
poker
:
t
,
list
:
l
.
map
((
function
(
e
){
return
{
one
:
e
}}))}:
t
.
length
>=
6
&&
t
.
length
%
2
===
0
&&
o
.
length
===
t
.
length
/
2
&&
t
[
0
].
number
+
t
.
length
/
2
-
1
===
t
[
t
.
length
-
1
].
number
&&
{
type
:
"
twoList
"
,
poker
:
t
,
list
:
o
.
map
((
function
(
e
){
return
{
two
:
e
}}))}}},{
key
:
"
pokerListToString
"
,
value
:
function
(
e
){
for
(
var
t
=
""
,
r
=
0
;
r
<
e
.
length
;
r
++
){
var
n
=
e
[
r
].
toString
();
t
+=
n
}
return
t
}}]),
e
}()),
u
=
h
,
c
=
function
(){
function
e
(
t
){
Object
(
a
[
"
a
"
])(
this
,
e
),
t
=
t
||
{},
this
.
pokerList
=
[],
this
.
name
=
t
.
name
||
"
noName
"
+
Math
.
random
(),
this
.
type
=
t
.
type
||
"
nongmin
"
,
this
.
last
=
null
,
this
.
next
=
null
,
this
.
isRobot
=
t
.
isRobot
,
this
.
game
=
t
.
game
,
this
.
lastSendObj
=
null
}
return
Object
(
p
[
"
a
"
])(
e
,[{
key
:
"
addPoker
"
,
value
:
function
(
e
){
this
.
pokerList
.
push
(
e
)}},{
key
:
"
sortPoker
"
,
value
:
function
(){
this
.
pokerList
.
sort
(
this
.
sortFunction
)}},{
key
:
"
sortFunction
"
,
value
:
function
(
e
,
t
){
return
e
.
number
-
t
.
number
}},{
key
:
"
getLastObj
"
,
value
:
function
(){
var
e
=
this
.
last
.
lastSendObj
;
return
!!
(
e
&&
"
pass
"
!==
e
.
type
||
(
e
=
this
.
next
.
lastSendObj
,
e
&&
"
pass
"
!==
e
.
type
))
&&
e
}},{
key
:
"
playByAI
"
,
value
:
function
(){
var
e
=
this
;
setTimeout
((
function
(){
var
t
=
e
.
getLastObj
();
t
?
e
.
playByObj
(
t
):
e
.
playByAllType
()}),
1
e3
)}},{
key
:
"
sendPoker
"
,
value
:
function
(
e
){
this
.
game
.
clearDesk
(),
this
.
lastSendObj
=
e
,
this
.
game
.
deskPokerObj
=
e
,
this
.
game
.
next
()}},{
key
:
"
playByAllType
"
,
value
:
function
(){
for
(
var
e
=
[
"
threeWithTwoList
"
,
"
threeWithOneList
"
,
"
twoList
"
,
"
threeWithTwo
"
,
"
oneList
"
,
"
threeWithOne
"
,
"
two
"
,
"
one
"
,
"
four
"
,
"
sx
"
,
"
pass
"
],
t
=
0
;
t
<
e
.
length
;
t
++
){
var
r
=
this
.
getSmallestObjByType
(
e
[
t
]);
if
(
r
){
var
n
=
this
.
deleteFromPokerListAndSendByObj
(
r
);
return
void
(
n
||
alert
(
"
error!
"
))}}}},{
key
:
"
deleteFromPokerListAndSendByObj
"
,
value
:
function
(
e
){
var
t
=
[];
if
(
"
pass
"
===
e
.
type
)
return
this
.
sendPoker
(
e
),
!
0
;
for
(
var
r
=
e
.
poker
,
n
=
0
;
n
<
r
.
length
;
n
++
){
var
i
=
this
.
getAndDeleteOnePokerByNumber
(
r
[
n
].
number
);
if
(
!
i
)
return
this
.
listBackToPokerList
(
t
),
!
1
;
t
.
push
(
i
)}
return
this
.
sendPoker
(
e
),
!
0
}},{
key
:
"
getSmallestObjByType
"
,
value
:
function
(
e
){
for
(
var
t
=
this
.
pokerList
,
r
=
t
[
0
],
n
=
[
r
],
i
=
[],
s
=
1
;
s
<
t
.
length
;
s
++
)
t
[
s
].
number
!==
r
.
number
?(
i
.
push
(
n
),
n
=
[
t
[
s
]]):
n
.
push
(
t
[
s
]),
r
=
t
[
s
];
i
.
push
(
n
);
for
(
var
l
=
[],
o
=
[],
a
=
[],
p
=
[],
h
=
0
;
h
<
i
.
length
;
h
++
)
3
===
i
[
h
].
length
?
a
.
push
(
i
[
h
]):
2
===
i
[
h
].
length
?
o
.
push
(
i
[
h
]):
1
===
i
[
h
].
length
?
l
.
push
(
i
[
h
]):
4
===
i
[
h
].
length
&&
p
.
push
(
i
[
h
]);
var
u
=
null
;
if
(
"
one
"
===
e
){
if
(
l
.
length
>
0
)
u
=
{
type
:
e
,
poker
:
l
[
0
],
one
:
l
[
0
]};
else
if
(
o
.
length
>
0
){
var
c
=
o
[
0
].
slice
(
0
,
1
);
u
=
{
type
:
e
,
poker
:
c
,
one
:
c
}}
else
if
(
a
.
length
>
0
){
var
f
=
a
[
0
].
slice
(
0
,
1
);
u
=
{
type
:
e
,
poker
:
f
,
one
:
f
}}}
else
if
(
"
two
"
===
e
){
if
(
o
.
length
>
0
)
u
=
{
type
:
e
,
poker
:
o
[
0
],
two
:
o
[
0
]};
else
if
(
a
.
length
>
0
){
var
y
=
a
[
0
].
slice
(
0
,
2
);
u
=
{
type
:
e
,
poker
:
y
,
one
:
y
}}}
else
if
(
"
threeWithOne
"
===
e
){
if
(
a
.
length
>
0
){
var
g
;
if
(
l
.
length
>
0
)
g
=
l
[
0
];
else
if
(
o
.
length
>
0
)
g
=
o
[
0
].
slice
(
0
,
1
);
else
if
(
a
.
length
>
0
)
for
(
var
k
=
0
;
k
<
a
.
length
;
k
++
)
0
!==
k
&&
(
g
=
a
[
k
].
slice
(
0
,
1
));
g
&&
(
u
=
{
type
:
e
,
poker
:
a
[
0
].
concat
(
g
),
three
:
a
[
0
],
one
:
g
})}}
else
if
(
"
four
"
===
e
)
p
.
length
>
0
&&
(
u
=
{
type
:
e
,
poker
:
p
[
0
],
four
:
p
[
0
]});
else
if
(
"
threeWithTwo
"
===
e
){
if
(
a
.
length
>
0
){
var
v
;
if
(
o
.
length
>
0
)
v
=
o
[
0
];
else
if
(
a
.
length
>
0
)
for
(
var
b
=
0
;
b
<
a
.
length
;
b
++
)
0
!==
b
&&
(
v
=
a
[
b
].
slice
(
0
,
2
));
v
&&
(
u
=
{
type
:
e
,
poker
:
a
[
0
].
concat
(
v
),
three
:
a
[
0
],
two
:
v
})}}
else
if
(
"
threeWithOneList
"
===
e
){
if
(
a
.
length
>
1
)
for
(
var
d
=
0
;
d
<
a
.
length
-
1
;
d
++
)
if
(
a
[
d
][
0
].
number
+
1
===
a
[
d
+
1
][
0
].
number
+
1
){
var
m
=
void
0
,
L
=
void
0
;
if
(
l
.
length
>
0
){
if
(
m
=
l
[
0
],
l
.
length
>
1
)
L
=
l
[
1
];
else
if
(
o
.
length
>
0
)
L
=
o
[
0
].
slice
(
0
,
1
);
else
if
(
a
.
length
>
0
)
for
(
var
S
=
0
;
S
<
a
.
length
;
S
++
)
S
!==
d
&&
(
L
=
a
[
S
].
slice
(
0
,
1
))}
else
if
(
o
.
length
>
0
)
m
=
o
[
0
].
slice
(
0
,
1
),
L
=
o
[
0
].
slice
(
1
,
2
);
else
if
(
a
.
length
>
0
)
for
(
var
x
=
0
;
x
<
a
.
length
;
x
++
)
x
!==
d
&&
(
m
=
a
[
x
].
slice
(
0
,
1
),
L
=
a
[
x
].
slice
(
1
,
2
));
m
&&
L
&&
(
u
=
{
type
:
e
,
poker
:
a
[
d
].
concat
(
m
).
concat
(
a
[
d
+
1
]).
concat
(
L
),
list
:[{
three
:
a
[
d
],
one
:
m
},{
three
:
a
[
d
+
1
],
one
:
L
}]});
break
}}
else
if
(
"
threeWithTwoList
"
===
e
){
if
(
a
.
length
>
1
)
for
(
var
w
=
0
;
w
<
a
.
length
-
1
;
w
++
)
if
(
a
[
w
][
0
].
number
+
1
===
a
[
w
+
1
][
0
].
number
+
1
){
var
P
=
void
0
,
O
=
void
0
;
if
(
o
.
length
>
0
)
if
(
P
=
o
[
0
],
o
.
length
>
1
)
O
=
o
[
1
];
else
for
(
var
_
=
0
;
_
<
a
.
length
;
_
++
)
_
!==
w
&&
(
O
=
a
[
_
].
slice
(
0
,
2
));
P
&&
O
&&
(
u
=
{
type
:
e
,
poker
:
a
[
w
].
concat
(
P
).
concat
(
a
[
w
+
1
]).
concat
(
O
),
list
:[{
three
:
a
[
w
],
two
:
P
},{
three
:
a
[
w
+
1
],
two
:
O
}]});
break
}}
else
if
(
"
oneList
"
===
e
){
if
(
l
.
length
>=
5
)
for
(
var
j
=
0
;
j
<
l
.
length
-
5
+
1
;
j
++
)
if
(
l
[
j
][
0
].
number
+
5
-
1
===
l
[
j
+
5
-
1
][
0
].
number
){
var
T
=
l
.
slice
(
j
,
j
+
5
);
u
=
{
type
:
e
,
poker
:
T
.
flat
(
1
),
list
:
T
.
map
((
function
(
e
){
return
{
one
:
e
}}))};
break
}}
else
if
(
"
twoList
"
===
e
){
if
(
o
.
length
>=
3
)
for
(
var
B
=
0
;
B
<
o
.
length
-
3
+
1
;
B
++
)
if
(
o
[
B
][
0
].
number
+
3
-
1
===
o
[
B
+
3
-
1
][
0
].
number
){
var
W
=
o
.
slice
(
B
,
B
+
3
);
u
=
{
type
:
e
,
poker
:
W
.
flat
(
1
),
list
:
W
.
map
((
function
(
e
){
return
{
two
:
e
}}))};
break
}}
else
if
(
"
sx
"
===
e
){
if
(
l
.
length
>=
2
)
for
(
var
A
=
0
;
A
<
l
.
length
-
1
;
A
++
)
if
(
16
===
l
[
A
][
0
].
number
){
var
N
=
o
.
slice
(
A
,
A
+
2
),
R
=
N
.
flat
(
1
);
u
=
{
type
:
e
,
poker
:
R
,
sx
:
R
};
break
}}
else
"
pass
"
===
e
&&
(
u
=
{
type
:
e
,
poker
:[
"
pass
"
]});
return
u
}},{
key
:
"
getObjByObj
"
,
value
:
function
(
e
){
for
(
var
t
=
this
.
pokerList
,
r
=
t
[
0
],
n
=
[
r
],
i
=
[],
s
=
1
;
s
<
t
.
length
;
s
++
)
t
[
s
].
number
!==
r
.
number
?(
i
.
push
(
n
),
n
=
[
t
[
s
]]):
n
.
push
(
t
[
s
]),
r
=
t
[
s
];
i
.
push
(
n
);
for
(
var
l
=
[],
o
=
[],
a
=
[],
p
=
[],
h
=
0
;
h
<
i
.
length
;
h
++
)
3
===
i
[
h
].
length
?
a
.
push
(
i
[
h
]):
2
===
i
[
h
].
length
?
o
.
push
(
i
[
h
]):
1
===
i
[
h
].
length
?
l
.
push
(
i
[
h
]):
4
===
i
[
h
].
length
&&
p
.
push
(
i
[
h
]);
var
u
=
e
.
type
,
c
=
null
;
if
(
"
one
"
===
u
){
if
(
l
.
length
>
0
){
for
(
var
f
=
0
;
f
<
l
.
length
;
f
++
)
if
(
l
[
f
][
0
].
number
>
e
.
one
[
0
].
number
){
c
=
{
type
:
u
,
poker
:
l
[
f
],
one
:
l
[
f
]};
break
}}
else
if
(
o
.
length
>
0
){
for
(
var
y
=
0
;
y
<
o
.
length
;
y
++
)
if
(
o
[
y
][
0
].
number
>
e
.
one
[
0
].
number
){
var
g
=
o
[
y
].
slice
(
0
,
1
);
c
=
{
type
:
u
,
poker
:
g
,
one
:
g
};
break
}}
else
if
(
a
.
length
>
0
)
for
(
var
k
=
0
;
k
<
a
.
length
;
k
++
)
if
(
a
[
k
][
0
].
number
>
e
.
one
[
0
].
number
){
var
v
=
a
[
k
].
slice
(
0
,
1
);
c
=
{
type
:
u
,
poker
:
v
,
one
:
v
};
break
}}
else
if
(
"
two
"
===
u
){
if
(
o
.
length
>
0
){
for
(
var
b
=
0
;
b
<
o
.
length
;
b
++
)
if
(
o
[
b
][
0
].
number
>
e
.
two
[
0
].
number
){
c
=
{
type
:
u
,
poker
:
o
[
b
],
two
:
o
[
b
]};
break
}}
else
if
(
a
.
length
>
0
)
for
(
var
d
=
0
;
d
<
a
.
length
;
d
++
)
if
(
a
[
d
][
0
].
number
>
e
.
two
[
0
].
number
){
var
m
=
a
[
d
].
slice
(
0
,
2
);
c
=
{
type
:
u
,
poker
:
m
,
one
:
m
};
break
}}
else
if
(
"
threeWithOne
"
===
u
){
if
(
a
.
length
>
0
)
for
(
var
L
=
0
;
L
<
a
.
length
;
L
++
)
if
(
a
[
L
][
0
].
number
>
e
.
three
[
0
].
number
){
var
S
=
void
0
;
if
(
l
.
length
>
0
)
S
=
l
[
0
];
else
if
(
o
.
length
>
0
)
S
=
o
[
0
].
slice
(
0
,
1
);
else
if
(
a
.
length
>
0
)
for
(
var
x
=
0
;
x
<
a
.
length
;
x
++
)
x
!==
L
&&
(
S
=
a
[
x
].
slice
(
0
,
1
));
S
&&
(
c
=
{
type
:
u
,
poker
:
a
[
L
].
concat
(
S
),
three
:
a
[
L
],
one
:
S
});
break
}}
else
if
(
"
threeWithTwo
"
===
u
){
if
(
a
.
length
>
0
)
for
(
var
w
=
0
;
w
<
a
.
length
;
w
++
)
if
(
a
[
w
][
0
].
number
>
e
.
three
[
0
].
number
){
var
P
=
void
0
;
if
(
o
.
length
>
0
)
P
=
o
[
0
];
else
if
(
a
.
length
>
0
)
for
(
var
O
=
0
;
O
<
a
.
length
;
O
++
)
O
!==
w
&&
(
P
=
a
[
O
].
slice
(
0
,
2
));
P
&&
(
c
=
{
type
:
u
,
poker
:
a
[
w
].
concat
(
P
),
three
:
a
[
w
],
two
:
P
});
break
}}
else
if
(
"
threeWithOneList
"
===
u
){
if
(
a
.
length
>
1
)
for
(
var
_
=
0
;
_
<
a
.
length
-
1
;
_
++
)
if
(
a
[
_
][
0
].
number
>
e
.
list
[
0
].
three
[
0
].
number
&&
a
[
_
][
0
].
number
+
1
===
a
[
_
+
1
][
0
].
number
+
1
){
var
j
=
void
0
,
T
=
void
0
;
if
(
l
.
length
>
0
){
if
(
j
=
l
[
0
],
l
.
length
>
1
)
T
=
l
[
1
];
else
if
(
o
.
length
>
0
)
T
=
o
[
0
].
slice
(
0
,
1
);
else
if
(
a
.
length
>
0
)
for
(
var
B
=
0
;
B
<
a
.
length
;
B
++
)
B
!==
_
&&
(
T
=
a
[
B
].
slice
(
0
,
1
))}
else
if
(
o
.
length
>
0
)
j
=
o
[
0
].
slice
(
0
,
1
),
T
=
o
[
0
].
slice
(
1
,
2
);
else
if
(
a
.
length
>
0
)
for
(
var
W
=
0
;
W
<
a
.
length
;
W
++
)
W
!==
_
&&
(
j
=
a
[
W
].
slice
(
0
,
1
),
T
=
a
[
W
].
slice
(
1
,
2
));
j
&&
T
&&
(
c
=
{
type
:
u
,
poker
:
a
[
_
].
concat
(
j
).
concat
(
a
[
_
+
1
]).
concat
(
T
),
list
:[{
three
:
a
[
_
],
one
:
j
},{
three
:
a
[
_
+
1
],
one
:
T
}]});
break
}}
else
if
(
"
threeWithTwoList
"
===
u
){
if
(
a
.
length
>
1
)
for
(
var
A
=
0
;
A
<
a
.
length
-
1
;
A
++
)
if
(
a
[
A
][
0
].
number
>
e
.
list
[
0
].
three
[
0
].
number
&&
a
[
A
][
0
].
number
+
1
===
a
[
A
+
1
][
0
].
number
+
1
){
var
N
=
void
0
,
R
=
void
0
;
if
(
o
.
length
>
0
)
if
(
N
=
o
[
0
],
o
.
length
>
1
)
R
=
o
[
1
];
else
for
(
var
I
=
0
;
I
<
a
.
length
;
I
++
)
I
!==
A
&&
(
R
=
a
[
I
].
slice
(
0
,
2
));
N
&&
R
&&
(
c
=
{
type
:
u
,
poker
:
a
[
A
].
concat
(
N
).
concat
(
a
[
A
+
1
]).
concat
(
R
),
list
:[{
three
:
a
[
A
],
two
:
N
},{
three
:
a
[
A
+
1
],
two
:
R
}]});
break
}}
else
if
(
"
oneList
"
===
u
){
if
(
l
.
length
>=
e
.
list
.
length
)
for
(
var
D
=
0
;
D
<
l
.
length
-
e
.
list
.
length
+
1
;
D
++
)
if
(
l
[
D
][
0
].
number
>
e
.
list
[
0
].
one
[
0
].
number
&&
l
[
D
][
0
].
number
+
e
.
list
.
length
-
1
===
l
[
D
+
e
.
list
.
length
-
1
][
0
].
number
){
var
F
=
l
.
slice
(
D
,
D
+
e
.
list
.
length
);
c
=
{
type
:
u
,
poker
:
F
.
flat
(
1
),
list
:
F
.
map
((
function
(
e
){
return
{
one
:
e
}}))};
break
}}
else
if
(
"
twoList
"
===
u
){
if
(
o
.
length
>=
e
.
list
.
length
)
for
(
var
M
=
0
;
M
<
o
.
length
-
e
.
list
.
length
+
1
;
M
++
)
if
(
o
[
M
][
0
].
number
>
e
.
list
[
0
].
two
[
0
].
number
&&
o
[
M
][
0
].
number
+
e
.
list
.
length
-
1
===
o
[
M
+
e
.
list
.
length
-
1
][
0
].
number
){
var
z
=
o
.
slice
(
M
,
M
+
e
.
list
.
length
);
c
=
{
type
:
u
,
poker
:
z
.
flat
(
1
),
list
:
z
.
map
((
function
(
e
){
return
{
two
:
e
}}))};
break
}}
else
if
(
"
four
"
===
u
&&
p
.
length
>
0
)
for
(
var
G
=
0
;
G
<
p
.
length
;
G
++
)
if
(
p
[
G
][
0
].
number
>
e
.
four
[
0
].
number
){
c
=
{
type
:
u
,
poker
:
p
[
G
],
four
:
p
[
G
]};
break
}
if
(
c
||
"
four
"
===
u
||
p
.
length
>
0
&&
(
c
=
{
type
:
u
,
poker
:
p
[
0
],
four
:
p
[
0
]}),
!
c
&&
"
sx
"
!==
u
&&
l
.
length
>
1
&&
16
===
l
[
l
.
length
-
2
]){
var
J
=
l
[
l
.
length
-
2
].
concat
(
l
[
l
.
length
-
1
]);
c
=
{
type
:
u
,
poker
:
J
,
sx
:
J
}}
return
c
||
(
c
=
{
type
:
"
pass
"
,
poker
:[
"
pass
"
]}),
c
}},{
key
:
"
playByObj
"
,
value
:
function
(
e
){
var
t
=
this
.
getObjByObj
(
e
),
r
=
this
.
deleteFromPokerListAndSendByObj
(
t
);
r
||
alert
(
"
error!
"
)}},{
key
:
"
getListByList
"
,
value
:
function
(
e
){
var
t
=
[];
if
(
"
pass
"
===
e
[
0
])
return
[
"
pass
"
];
for
(
var
r
=
0
;
r
<
e
.
length
;
r
++
){
var
n
=
e
[
r
],
i
=
this
.
getAndDeleteOnePokerByNumber
(
n
.
number
);
if
(
!
i
)
return
this
.
listBackToPokerList
(
t
),
!
1
;
t
.
push
(
i
)}
return
t
}},{
key
:
"
getListByString
"
,
value
:
function
(
e
){
var
t
=
[];
if
(
"
pass
"
===
e
)
return
[
"
pass
"
];
for
(
var
r
=
0
;
r
<
e
.
length
;
r
++
){
var
n
=
e
[
r
],
i
=
u
.
textToNumber
(
n
),
s
=
this
.
getAndDeleteOnePokerByNumber
(
i
);
if
(
!
s
)
return
this
.
listBackToPokerList
(
t
),
!
1
;
t
.
push
(
s
)}
return
t
}},{
key
:
"
listBackToPokerList
"
,
value
:
function
(
e
){
while
(
e
.
length
>
0
){
var
t
=
e
.
splice
(
0
,
1
)[
0
];
this
.
pokerList
.
push
(
t
)}
this
.
sortPoker
()}},{
key
:
"
handleList
"
,
value
:
function
(
e
){
if
(
e
){
var
t
=
u
.
getObjByPokerList
(
e
);
if
(
t
){
if
(
"
pass
"
===
t
.
type
)
return
this
.
sendPoker
(
t
),
!
0
;
var
r
=
this
.
getLastObj
();
if
(
r
){
if
(
r
.
type
===
t
.
type
){
var
n
=
this
.
compareTwoObj
(
t
,
r
);
return
n
?(
this
.
sendPoker
(
t
),
!
0
):(
this
.
listBackToPokerList
(
e
),
alert
(
"
have to bigger than
"
+
u
.
pokerListToString
(
r
.
poker
)),
!
1
)}
return
this
.
listBackToPokerList
(
e
),
alert
(
"
type is not
"
+
r
.
type
+
"
!
"
),
!
1
}
return
this
.
sendPoker
(
t
),
!
0
}
return
this
.
listBackToPokerList
(
e
),
alert
(
"
type error!
"
),
!
1
}
return
alert
(
"
poker error!
"
),
!
1
}},{
key
:
"
playByPokerList
"
,
value
:
function
(
e
){
if
(
this
.
game
.
currentPlayer
!==
this
)
return
alert
(
"
请等待
"
+
this
.
game
.
currentPlayer
.
name
+
"
出牌
"
),
!
1
;
var
t
=
this
.
getListByList
(
e
);
return
this
.
handleList
(
t
)}},{
key
:
"
playByString
"
,
value
:
function
(
e
){
if
(
this
.
game
.
currentPlayer
!==
this
)
return
alert
(
"
请等待
"
+
this
.
game
.
currentPlayer
.
name
+
"
出牌
"
),
!
1
;
var
t
=
this
.
getListByString
(
e
);
return
this
.
handleList
(
t
)}},{
key
:
"
compareTwoObj
"
,
value
:
function
(
e
,
t
){
return
"
one
"
===
e
.
type
?
e
.
one
[
0
].
number
>
t
.
one
[
0
].
number
:
"
two
"
===
e
.
type
?
e
.
two
[
0
].
number
>
t
.
two
[
0
].
number
:
"
threeWithOne
"
===
e
.
type
||
"
threeWithTwo
"
===
e
.
type
?
e
.
three
[
0
].
number
>
t
.
three
[
0
].
number
:
"
threeWithOneList
"
===
e
.
type
||
"
threeWithTwoList
"
===
e
.
type
?
e
.
list
[
0
].
three
[
0
].
number
>
t
.
list
[
0
].
three
[
0
].
number
:
"
oneList
"
===
e
.
type
?
e
.
list
[
0
].
one
[
0
].
number
>
t
.
list
[
0
].
one
[
0
].
number
:
"
twoList
"
===
e
.
type
?
e
.
list
[
0
].
two
[
0
].
number
>
t
.
list
[
0
].
two
[
0
].
number
:
"
four
"
===
e
.
type
?
e
.
four
[
0
].
number
>
t
.
four
[
0
].
number
:
void
0
}},{
key
:
"
getAndDeleteOnePokerByNumber
"
,
value
:
function
(
e
){
for
(
var
t
=
0
;
t
<
this
.
pokerList
.
length
;
t
++
)
if
(
this
.
pokerList
[
t
].
number
===
e
)
return
this
.
pokerList
.
splice
(
t
,
1
)[
0
];
return
!
1
}},{
key
:
"
pokerListToString
"
,
value
:
function
(){
var
e
=
u
.
pokerListToString
(
this
.
pokerList
);
return
e
}},{
key
:
"
lastSendObjToString
"
,
value
:
function
(){
if
(
!
this
.
lastSendObj
)
return
""
;
var
e
=
u
.
pokerListToString
(
this
.
lastSendObj
.
poker
);
return
e
}}]),
e
}(),
f
=
c
,
y
=
function
(){
function
e
(){
Object
(
a
[
"
a
"
])(
this
,
e
),
this
.
playerList
=
[],
this
.
pokerList
=
[],
this
.
deskPokerObj
=
null
,
this
.
oldPokerList
=
[],
this
.
currentPlayer
=
[],
this
.
dizhu
=
null
,
this
.
init
()}
return
Object
(
p
[
"
a
"
])(
e
,[{
key
:
"
init
"
,
value
:
function
(){
this
.
initPokerList
(),
this
.
initPlayerList
(),
this
.
sendPoker
(),
this
.
start
()}},{
key
:
"
start
"
,
value
:
function
(){
this
.
currentPlayer
=
this
.
dizhu
,
this
.
currentPlayer
.
isRobot
&&
this
.
currentPlayer
.
playByAI
()}},{
key
:
"
next
"
,
value
:
function
(){
var
e
=
this
.
checkGameOver
();
e
?
this
.
gameOver
():(
this
.
currentPlayer
=
this
.
currentPlayer
.
next
,
this
.
currentPlayer
.
isRobot
&&
this
.
currentPlayer
.
playByAI
())}},{
key
:
"
gameOver
"
,
value
:
function
(){
alert
(
"
gameOver!
"
+
this
.
currentPlayer
.
name
+
"
[
"
+
this
.
currentPlayer
.
type
+
"
] win!
"
)}},{
key
:
"
checkGameOver
"
,
value
:
function
(){
if
(
0
===
this
.
currentPlayer
.
pokerList
.
length
)
return
!
0
}},{
key
:
"
clearDesk
"
,
value
:
function
(){
this
.
deskPokerObj
&&
(
this
.
oldPokerList
.
push
(
this
.
deskPokerObj
),
this
.
deskPokerObj
=
null
)}},{
key
:
"
sendPoker
"
,
value
:
function
(){
var
e
=
this
.
playerList
[
0
];
do
{
var
t
=
this
.
getRandomIntInclusive
(
0
,
this
.
pokerList
.
length
-
1
),
r
=
this
.
pokerList
.
splice
(
t
,
1
)[
0
];
e
.
addPoker
(
r
),
e
=
e
.
next
}
while
(
this
.
pokerList
.
length
>
3
);
do
{
var
n
=
this
.
pokerList
.
splice
(
0
,
1
)[
0
];
this
.
dizhu
.
addPoker
(
n
)}
while
(
this
.
pokerList
.
length
>
0
);
for
(
var
i
=
0
;
i
<
this
.
playerList
.
length
;
i
++
)
this
.
playerList
[
i
].
sortPoker
()}},{
key
:
"
initPlayerList
"
,
value
:
function
(){
this
.
playerList
=
[];
var
e
=
new
f
({
name
:
"
player
"
,
isRobot
:
!
1
,
game
:
this
}),
t
=
new
f
({
name
:
"
robot1
"
,
isRobot
:
!
0
,
game
:
this
}),
r
=
new
f
({
name
:
"
robot2
"
,
isRobot
:
!
0
,
game
:
this
});
this
.
playerList
=
[
e
,
t
,
r
],
this
.
playerList
[
0
].
next
=
this
.
playerList
[
1
],
this
.
playerList
[
1
].
next
=
this
.
playerList
[
2
],
this
.
playerList
[
2
].
next
=
this
.
playerList
[
0
],
this
.
playerList
[
0
].
last
=
this
.
playerList
[
2
],
this
.
playerList
[
1
].
last
=
this
.
playerList
[
0
],
this
.
playerList
[
2
].
last
=
this
.
playerList
[
1
];
var
n
=
this
.
getRandomIntInclusive
(
0
,
2
);
this
.
playerList
[
n
].
type
=
"
dizhu
"
,
this
.
dizhu
=
this
.
playerList
[
n
]}},{
key
:
"
initPokerList
"
,
value
:
function
(){
this
.
pokerList
=
[];
for
(
var
e
=
3
;
e
<=
15
;
e
++
)
for
(
var
t
=
0
;
t
<
4
;
t
++
){
var
r
=
new
u
({
number
:
e
,
type
:
t
});
this
.
pokerList
.
push
(
r
)}
for
(
var
n
=
16
;
n
<=
17
;
n
++
){
var
i
=
new
u
({
number
:
n
});
this
.
pokerList
.
push
(
i
)}}},{
key
:
"
pokerListToString
"
,
value
:
function
(){
var
e
=
""
;
e
+=
u
.
pokerListToString
(
this
.
pokerList
),
e
+=
"
\n
"
;
for
(
var
t
=
0
;
t
<
this
.
oldPokerList
.
length
;
t
++
)
e
+=
u
.
pokerListToString
(
this
.
oldPokerList
[
t
].
poker
),
t
<
this
.
oldPokerList
.
length
-
1
&&
(
e
+=
"
,
"
);
return
e
+=
"
\n
"
,
e
+=
this
.
deskPokerObj
?
u
.
pokerListToString
(
this
.
deskPokerObj
.
poker
):
""
,
e
}},{
key
:
"
getRandomIntInclusive
"
,
value
:
function
(
e
,
t
){
return
Math
.
floor
(
Math
.
random
()
*
(
t
-
e
+
1
))
+
e
}}]),
e
}(),
g
=
y
,
k
=
{
name
:
"
HelloWorld
"
,
data
:
function
(){
return
{
data
:
"
fuck1
"
,
game
:
new
g
,
playerStr
:
""
}},
computed
:{
player2Str
:
function
(){
var
e
=
this
.
game
,
t
=
2
;
return
[
e
.
playerList
[
t
].
name
+
"
:
"
+
e
.
playerList
[
t
].
type
+
"
:
"
+
e
.
playerList
[
t
].
pokerList
.
length
,
e
.
playerList
[
t
].
pokerListToString
(),
"
last :
"
+
e
.
playerList
[
t
].
lastSendObjToString
()]},
player1Str
:
function
(){
var
e
=
this
.
game
,
t
=
1
;
return
[
e
.
playerList
[
t
].
name
+
"
:
"
+
e
.
playerList
[
t
].
type
+
"
:
"
+
e
.
playerList
[
t
].
pokerList
.
length
,
e
.
playerList
[
t
].
pokerListToString
(),
"
last :
"
+
e
.
playerList
[
t
].
lastSendObjToString
()]},
player0Str
:
function
(){
var
e
=
this
.
game
,
t
=
0
;
return
[
e
.
playerList
[
t
].
name
+
"
:
"
+
e
.
playerList
[
t
].
type
+
"
:
"
+
e
.
playerList
[
t
].
pokerList
.
length
,
e
.
playerList
[
t
].
pokerListToString
(),
"
last :
"
+
e
.
playerList
[
t
].
lastSendObjToString
()]},
deskStr
:
function
(){
var
e
=
this
.
game
;
return
[
"
desk
"
,
e
.
pokerListToString
()]}},
mounted
:
function
(){
this
.
data
=
this
.
game
.
playerList
[
1
].
name
},
methods
:{
reDraw
:
function
(){},
sendPoker
:
function
(){
var
e
=
this
.
game
,
t
=
e
.
playerList
[
0
].
playByString
(
this
.
playerStr
);
t
&&
(
this
.
playerStr
=
""
)},
pass
:
function
(){
this
.
game
.
playerList
[
0
].
playByString
(
"
pass
"
)},
reStart
:
function
(){
this
.
game
=
new
g
,
this
.
playerStr
=
""
}}},
v
=
k
,
b
=
r
(
"
2877
"
),
d
=
Object
(
b
[
"
a
"
])(
v
,
l
,
o
,
!
1
,
null
,
"
62298b0c
"
,
null
),
m
=
d
.
exports
,
L
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
r
=
e
.
_self
.
_c
||
t
;
return
r
(
"
div
"
,{
staticStyle
:{
"
user-select
"
:
"
none
"
}},[
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
height
:
"
300px
"
,
float
:
"
left
"
,
position
:
"
fixed
"
,
left
:
"
0px
"
,
top
:
"
0px
"
,
"
background-color
"
:
"
aliceblue
"
,
"
text-align
"
:
"
center
"
}},[
r
(
"
span
"
,[
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player2Str
[
0
])
+
"
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player2Str
[
1
])
+
"
"
),
r
(
"
br
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player2Str
[
2
])
+
"
"
)])]),
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
height
:
"
300px
"
,
float
:
"
left
"
,
position
:
"
fixed
"
,
left
:
"
600px
"
,
top
:
"
0px
"
,
"
background-color
"
:
"
aliceblue
"
,
"
text-align
"
:
"
center
"
}},[
r
(
"
span
"
,[
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player1Str
[
0
])
+
"
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player1Str
[
1
])
+
"
"
),
r
(
"
br
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player1Str
[
2
])
+
"
"
)])]),
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
height
:
"
300px
"
,
float
:
"
left
"
,
position
:
"
fixed
"
,
left
:
"
300px
"
,
top
:
"
300px
"
,
"
background-color
"
:
"
aliceblue
"
,
"
text-align
"
:
"
center
"
}},[
r
(
"
span
"
,[
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player0Str
[
0
])
+
"
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player0Str
[
1
])
+
"
"
),
r
(
"
br
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
player0Str
[
2
])
+
"
"
)]),
r
(
"
div
"
,[
r
(
"
input
"
,{
directives
:[{
name
:
"
model
"
,
rawName
:
"
v-model
"
,
value
:
e
.
playerStr
,
expression
:
"
playerStr
"
}],
attrs
:{
type
:
"
text
"
},
domProps
:{
value
:
e
.
playerStr
},
on
:{
input
:
function
(
t
){
t
.
target
.
composing
||
(
e
.
playerStr
=
t
.
target
.
value
)}}}),
r
(
"
button
"
,{
on
:{
click
:
e
.
sendPoker
}},[
e
.
_v
(
"
send
"
)]),
r
(
"
button
"
,{
on
:{
click
:
e
.
pass
}},[
e
.
_v
(
"
pass
"
)])])]),
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
height
:
"
300px
"
,
float
:
"
left
"
,
position
:
"
fixed
"
,
left
:
"
300px
"
,
top
:
"
0px
"
,
"
background-color
"
:
"
aliceblue
"
,
"
text-align
"
:
"
center
"
}},[
r
(
"
div
"
,{
staticStyle
:{
width
:
"
300px
"
,
"
word-wrap
"
:
"
break-word
"
}},[
e
.
_v
(
"
"
+
e
.
_s
(
e
.
deskStr
[
0
])
+
"
"
),
r
(
"
br
"
),
e
.
_v
(
"
"
+
e
.
_s
(
e
.
deskStr
[
1
])
+
"
"
)])]),
r
(
"
div
"
,{
staticStyle
:{
position
:
"
fixed
"
,
left
:
"
300px
"
,
top
:
"
600px
"
}},[
r
(
"
button
"
,{
on
:{
click
:
e
.
reStart
}},[
e
.
_v
(
"
reStart
"
)])]),
r
(
"
div
"
,{
staticStyle
:{
position
:
"
fixed
"
,
bottom
:
"
0
"
,
width
:
"
100%
"
,
height
:
"
100px
"
,
"
padding-left
"
:
"
100px
"
}},
e
.
_l
(
e
.
game
.
playerList
[
0
].
pokerList
,(
function
(
t
){
return
r
(
"
div
"
,{
staticClass
:
"
poker
"
,
class
:{
selected
:
t
.
selected
},
on
:{
click
:
function
(
r
){
return
e
.
pickPoker
(
t
)}}},[
e
.
_v
(
"
"
+
e
.
_s
(
t
.
text
)
+
"
"
)])})),
0
),
r
(
"
div
"
,{
staticStyle
:{
position
:
"
fixed
"
,
bottom
:
"
100px
"
,
width
:
"
100%
"
,
height
:
"
50px
"
,
"
padding-left
"
:
"
100px
"
,
"
text-align
"
:
"
left
"
}},[
r
(
"
button
"
,{
staticStyle
:{
height
:
"
30px
"
,
"
border-radius
"
:
"
4px
"
},
on
:{
click
:
e
.
sendPoker2
}},[
e
.
_v
(
"
出牌
"
)]),
r
(
"
button
"
,{
staticStyle
:{
height
:
"
30px
"
,
"
border-radius
"
:
"
4px
"
,
"
margin-left
"
:
"
20px
"
},
on
:{
click
:
e
.
pass
}},[
e
.
_v
(
"
不出
"
)])]),
r
(
"
div
"
,{
staticStyle
:{
position
:
"
fixed
"
,
bottom
:
"
200px
"
,
width
:
"
100%
"
,
height
:
"
100px
"
,
"
padding-left
"
:
"
100px
"
}},
e
.
_l
(
e
.
deskPoker
,(
function
(
t
){
return
r
(
"
div
"
,{
staticStyle
:{
height
:
"
100%
"
,
width
:
"
50px
"
,
border
:
"
solid 1px
"
,
"
border-radius
"
:
"
8px
"
,
float
:
"
left
"
,
"
margin-left
"
:
"
-25px
"
,
"
background-color
"
:
"
azure
"
}},[
e
.
_v
(
"
"
+
e
.
_s
(
t
.
text
)
+
"
"
)])})),
0
)])},
S
=
[],
x
=
{
name
:
"
HelloWorld
"
,
data
:
function
(){
return
{
data
:
"
fuck1
"
,
game
:
new
g
,
playerStr
:
""
,
pokerList
:[]}},
computed
:{
deskPoker
:
function
(){
return
this
.
game
.
deskPokerObj
&&
this
.
game
.
deskPokerObj
.
poker
&&
this
.
game
.
deskPokerObj
.
poker
[
0
]
&&
this
.
game
.
deskPokerObj
.
poker
[
0
].
text
?
this
.
game
.
deskPokerObj
.
poker
:[]},
player2Str
:
function
(){
var
e
=
this
.
game
,
t
=
2
;
return
[
e
.
playerList
[
t
].
name
+
"
:
"
+
e
.
playerList
[
t
].
type
+
"
:
"
+
e
.
playerList
[
t
].
pokerList
.
length
,
e
.
playerList
[
t
].
pokerListToString
(),
"
last :
"
+
e
.
playerList
[
t
].
lastSendObjToString
()]},
player1Str
:
function
(){
var
e
=
this
.
game
,
t
=
1
;
return
[
e
.
playerList
[
t
].
name
+
"
:
"
+
e
.
playerList
[
t
].
type
+
"
:
"
+
e
.
playerList
[
t
].
pokerList
.
length
,
e
.
playerList
[
t
].
pokerListToString
(),
"
last :
"
+
e
.
playerList
[
t
].
lastSendObjToString
()]},
player0Str
:
function
(){
var
e
=
this
.
game
,
t
=
0
;
return
[
e
.
playerList
[
t
].
name
+
"
:
"
+
e
.
playerList
[
t
].
type
+
"
:
"
+
e
.
playerList
[
t
].
pokerList
.
length
,
e
.
playerList
[
t
].
pokerListToString
(),
"
last :
"
+
e
.
playerList
[
t
].
lastSendObjToString
()]},
deskStr
:
function
(){
var
e
=
this
.
game
;
return
[
"
desk
"
,
e
.
pokerListToString
()]}},
mounted
:
function
(){
this
.
data
=
this
.
game
.
playerList
[
1
].
name
},
methods
:{
pickPoker
:
function
(
e
){
if
(
e
.
selected
){
e
.
selected
=!
1
;
for
(
var
t
=
0
;
t
<
this
.
pokerList
.
length
;
t
++
)
this
.
pokerList
[
t
]
===
e
&&
this
.
pokerList
.
splice
(
t
,
1
)}
else
e
.
selected
=!
0
,
this
.
pokerList
.
push
(
e
)},
sendPoker2
:
function
(){
var
e
=
this
.
game
,
t
=
e
.
playerList
[
0
].
playByPokerList
(
this
.
pokerList
);
t
&&
(
this
.
pokerList
=
[])},
sendPoker
:
function
(){
var
e
=
this
.
game
,
t
=
e
.
playerList
[
0
].
playByString
(
this
.
playerStr
);
t
&&
(
this
.
playerStr
=
""
)},
pass
:
function
(){
this
.
game
.
playerList
[
0
].
playByString
(
"
pass
"
)},
reStart
:
function
(){
this
.
game
=
new
g
,
this
.
playerStr
=
""
}}},
w
=
x
,
P
=
(
r
(
"
e85a
"
),
Object
(
b
[
"
a
"
])(
w
,
L
,
S
,
!
1
,
null
,
"
70a35e10
"
,
null
)),
O
=
P
.
exports
,
_
=
{
name
:
"
App
"
,
components
:{
HelloWorld
:
m
,
Game
:
O
}},
j
=
_
,
T
=
Object
(
b
[
"
a
"
])(
j
,
i
,
s
,
!
1
,
null
,
null
,
null
),
B
=
T
.
exports
;
n
[
"
a
"
].
config
.
productionTip
=!
1
,
new
n
[
"
a
"
]({
render
:
function
(
e
){
return
e
(
B
)}}).
$mount
(
"
#app
"
)},
e85a
:
function
(
e
,
t
,
r
){
"
use strict
"
;
var
n
=
r
(
"
e90d
"
),
i
=
r
.
n
(
n
);
i
.
a
},
e90d
:
function
(
e
,
t
,
r
){}});
//# sourceMappingURL=app.e35a531b.js.map
\ No newline at end of file
dist/js/app.e35a531b.js.map
已删除
100644 → 0
浏览文件 @
55bae1a4
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?4625","webpack:///./src/components/HelloWorld.vue?f3a1","webpack:///./src/doudizhu/Poker.js","webpack:///./src/doudizhu/Player.js","webpack:///./src/doudizhu/Game.js","webpack:///src/components/HelloWorld.vue","webpack:///./src/components/HelloWorld.vue?ddb2","webpack:///./src/components/HelloWorld.vue","webpack:///./src/components/Game.vue?80df","webpack:///src/components/Game.vue","webpack:///./src/components/Game.vue?bf2b","webpack:///./src/components/Game.vue","webpack:///src/App.vue","webpack:///./src/App.vue?a7d1","webpack:///./src/App.vue","webpack:///./src/main.js","webpack:///./src/components/Game.vue?385f"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","staticStyle","_v","_s","player2Str","player1Str","player0Str","directives","rawName","expression","domProps","on","$event","target","composing","playerStr","sendPoker","pass","deskStr","reStart","Poker","param","text","number","textToNumber","numberToText","type","selected","a","b","pokerList","poker","sort","sortFunction","lastPoker","curList","lists","Count1List","Count2List","Count3List","Count4List","one","two","sx","three","four","list","map","item","str","toString","Player","Math","random","last","next","isRobot","game","lastSendObj","lastObj","that","setTimeout","getLastObj","playByObj","playByAllType","obj","clearDesk","deskPokerObj","types","getSmallestObjByType","success","deleteFromPokerListAndSendByObj","alert","tempList","getAndDeleteOnePokerByNumber","listBackToPokerList","concat","one1","one2","two1","two2","flat","getObjByObj","po","sortPoker","getObjByPokerList","comp","compareTwoObj","pokerListToString","currentPlayer","getListByList","handleList","getListByString","obj1","obj2","Game","playerList","oldPokerList","dizhu","init","initPokerList","initPlayerList","start","playByAI","over","checkGameOver","gameOver","player","index","getRandomIntInclusive","addPoker","player0","player1","player2","dizhuIndex","min","max","floor","computed","mounted","methods","reDraw","playByString","component","_l","staticClass","class","pickPoker","sendPoker2","components","HelloWorld","Vue","config","productionTip","render","h","App","$mount"],"mappings":"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","file":"js/app.e35a531b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('Game')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticStyle:{\"width\":\"300px\",\"height\":\"300px\",\"float\":\"left\",\"position\":\"fixed\",\"left\":\"0px\",\"top\":\"0px\",\"background-color\":\"aliceblue\",\"text-align\":\"center\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.player2Str[0])+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.player2Str[1])+\" \"),_c('br'),_c('br'),_vm._v(\" \"+_vm._s(_vm.player2Str[2])+\" \")])]),_c('div',{staticStyle:{\"width\":\"300px\",\"height\":\"300px\",\"float\":\"left\",\"position\":\"fixed\",\"left\":\"600px\",\"top\":\"0px\",\"background-color\":\"aliceblue\",\"text-align\":\"center\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.player1Str[0])+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.player1Str[1])+\" \"),_c('br'),_c('br'),_vm._v(\" \"+_vm._s(_vm.player1Str[2])+\" \")])]),_c('div',{staticStyle:{\"width\":\"300px\",\"height\":\"300px\",\"float\":\"left\",\"position\":\"fixed\",\"left\":\"300px\",\"top\":\"300px\",\"background-color\":\"aliceblue\",\"text-align\":\"center\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.player0Str[0])+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.player0Str[1])+\" \"),_c('br'),_c('br'),_vm._v(\" \"+_vm._s(_vm.player0Str[2])+\" \")]),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.playerStr),expression:\"playerStr\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.playerStr)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.playerStr=$event.target.value}}}),_c('button',{on:{\"click\":_vm.sendPoker}},[_vm._v(\"send\")]),_c('button',{on:{\"click\":_vm.pass}},[_vm._v(\"pass\")])])]),_c('div',{staticStyle:{\"width\":\"300px\",\"height\":\"300px\",\"float\":\"left\",\"position\":\"fixed\",\"left\":\"300px\",\"top\":\"0px\",\"background-color\":\"aliceblue\",\"text-align\":\"center\"}},[_c('div',{staticStyle:{\"width\":\"300px\",\"word-wrap\":\"break-word\"}},[_vm._v(\" \"+_vm._s(_vm.deskStr[0])+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.deskStr[1])+\" \")])]),_c('div',{staticStyle:{\"position\":\"fixed\",\"left\":\"300px\",\"top\":\"600px\"}},[_c('button',{on:{\"click\":_vm.reStart}},[_vm._v(\"reStart\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","class Poker{\r\n constructor(param) {\r\n if(param.text){\r\n this.text = param.text;\r\n this.number = Poker.textToNumber(param.text);\r\n }else{\r\n this.number = param.number;\r\n this.text = Poker.numberToText(param.number);\r\n }\r\n this.type = param.type;\r\n this.selected = param.selected;\r\n }\r\n\r\n static textToNumber(text){\r\n switch (text) {\r\n case '3': return 3;\r\n case '4': return 4;\r\n case '5': return 5;\r\n case '6': return 6;\r\n case '7': return 7;\r\n case '8': return 8;\r\n case '9': return 9;\r\n case '10':\r\n case '0':\r\n case 'T':\r\n case 't': return 10;\r\n case '11':\r\n case 'j':\r\n case 'J': return 11;\r\n case '12':\r\n case 'q':\r\n case 'Q': return 12;\r\n case '13':\r\n case 'k':\r\n case 'K': return 13;\r\n case '1':\r\n case 'a':\r\n case 'A': return 14;\r\n case '2': return 15;\r\n case 's':\r\n case 'S': return 16;\r\n case 'x':\r\n case 'X': return 17;\r\n }\r\n }\r\n\r\n static numberToText(number){\r\n switch (number) {\r\n case 3: return '3';\r\n case 4: return '4';\r\n case 5: return '5';\r\n case 6: return '6';\r\n case 7: return '7';\r\n case 8: return '8';\r\n case 9: return '9';\r\n case 10: return '10';\r\n case 11: return 'J';\r\n case 12: return 'Q';\r\n case 13: return 'K';\r\n case 14: return 'A';\r\n case 15: return '2';\r\n case 16: return 'S';\r\n case 17: return 'X';\r\n }\r\n }\r\n\r\n static sortFunction(a, b){\r\n return a.number - b.number;\r\n }\r\n\r\n static getObjByPokerList(pokerList){\r\n if(pokerList[0] === 'pass'){\r\n return {\r\n type:'pass',\r\n poker: pokerList,\r\n };\r\n }\r\n pokerList.sort(Poker.sortFunction);\r\n\r\n let lastPoker = pokerList[0];\r\n let curList = [lastPoker];\r\n let lists = [];\r\n for(let i=1; i<pokerList.length; i++){\r\n if(pokerList[i].number !== lastPoker.number){\r\n lists.push(curList);\r\n curList = [pokerList[i]];\r\n }else{\r\n curList.push(pokerList[i]);\r\n }\r\n lastPoker = pokerList[i];\r\n }\r\n lists.push(curList);\r\n\r\n let Count1List = [];\r\n let Count2List = [];\r\n let Count3List = [];\r\n let Count4List = [];\r\n for(let i=0; i<lists.length; i++){\r\n if(lists[i].length === 3){\r\n Count3List.push(lists[i]);\r\n }else if(lists[i].length === 2){\r\n Count2List.push(lists[i]);\r\n }else if(lists[i].length === 1){\r\n Count1List.push(lists[i]);\r\n }else if(lists[i].length === 4){\r\n Count4List.push(lists[i]);\r\n }\r\n }\r\n\r\n if(pokerList.length === 1){\r\n\r\n return {\r\n type:'one',\r\n poker: pokerList,\r\n one: pokerList,\r\n };\r\n\r\n }else if(pokerList.length === 2){\r\n\r\n if(Count2List.length === 1){\r\n return {\r\n type:'two',\r\n poker: pokerList,\r\n two: pokerList,\r\n };\r\n }else if(pokerList[0].number === 16 && pokerList[1].number === 17){\r\n return {\r\n type:'sx',\r\n poker: pokerList,\r\n sx: pokerList,\r\n };\r\n }\r\n\r\n }else if(pokerList.length === 4){\r\n\r\n if(Count3List.length === 1){\r\n return {\r\n type:'threeWithOne',\r\n poker: pokerList,\r\n three: Count3List[0],\r\n one: Count1List[0],\r\n };\r\n }else if(Count4List.length === 1){\r\n return {\r\n type:'four',\r\n poker: pokerList,\r\n four: pokerList,\r\n };\r\n }\r\n\r\n }else if(pokerList.length === 5){\r\n\r\n if(Count3List.length === 1 && Count2List.length === 1){\r\n return {\r\n type:'threeWithTwo',\r\n poker: pokerList,\r\n three: Count3List[0],\r\n two: Count2List[0],\r\n };\r\n }\r\n\r\n }else if(pokerList.length === 8){\r\n\r\n if(Count3List.length === 2 && Count3List[0][0].number+1===Count3List[1][0].number){\r\n if(Count2List.length === 1){\r\n Count1List.push(Count2List[0].splice(0,1));\r\n Count1List.push(Count2List[0].splice(0,1));\r\n }\r\n return {\r\n type:'threeWithOneList',\r\n poker: pokerList,\r\n list: [\r\n {\r\n three: Count3List[0],\r\n one: Count1List[0],\r\n },\r\n {\r\n three: Count3List[1],\r\n one: Count1List[1],\r\n }\r\n ],\r\n };\r\n }\r\n\r\n }else if(pokerList.length === 10){\r\n\r\n if(Count3List.length === 2 && Count3List[0][0].number+1===Count3List[1][0].number && Count2List.length === 2){\r\n return {\r\n type:'threeWithTwoList',\r\n poker: pokerList,\r\n list: [\r\n {\r\n three: Count3List[0],\r\n two: Count2List[0],\r\n },\r\n {\r\n three: Count3List[1],\r\n two: Count2List[1],\r\n }\r\n ],\r\n };\r\n }\r\n\r\n }\r\n\r\n //判断oneList\r\n if(pokerList.length >= 5 && Count1List.length === pokerList.length && pokerList[0].number+pokerList.length-1===pokerList[pokerList.length-1].number){\r\n return {\r\n type:'oneList',\r\n poker: pokerList,\r\n list: Count1List.map(function (item) {\r\n return {\r\n one: item,\r\n }\r\n }),\r\n }\r\n }\r\n\r\n //判断twoList\r\n if(pokerList.length >= 6 && pokerList.length%2 === 0 && Count2List.length === pokerList.length/2 && pokerList[0].number+pokerList.length/2-1===pokerList[pokerList.length-1].number){\r\n return {\r\n type:'twoList',\r\n poker: pokerList,\r\n list: Count2List.map(function (item) {\r\n return {\r\n two: item,\r\n }\r\n }),\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n static pokerListToString(pokerList){\r\n let result = '';\r\n for(let i=0; i<pokerList.length; i++){\r\n let str = pokerList[i].toString();\r\n result += str;\r\n }\r\n return result;\r\n }\r\n\r\n toString(){\r\n return this.text;\r\n }\r\n\r\n}\r\n\r\nexport default Poker;","import Poker from \"./Poker\";\r\n\r\nclass Player{\r\n constructor(param) {\r\n param = param || {};\r\n this.pokerList = [];\r\n this.name = param.name || 'noName'+Math.random();\r\n this.type = param.type || 'nongmin';\r\n this.last = null;\r\n this.next = null;\r\n this.isRobot = param.isRobot;\r\n this.game = param.game;\r\n \r\n this.lastSendObj = null;\r\n }\r\n\r\n addPoker(poker){\r\n this.pokerList.push(poker);\r\n }\r\n\r\n sortPoker(){\r\n this.pokerList.sort(this.sortFunction);\r\n }\r\n\r\n sortFunction(a, b){\r\n return a.number - b.number;\r\n }\r\n\r\n getLastObj(){\r\n let lastObj = this.last.lastSendObj;\r\n if(!lastObj || lastObj.type === 'pass'){\r\n lastObj = this.next.lastSendObj;\r\n if(!lastObj || lastObj.type === 'pass'){\r\n return false;\r\n }\r\n }\r\n return lastObj;\r\n }\r\n\r\n playByAI(){\r\n\r\n let that = this;\r\n setTimeout(function () {\r\n let lastObj = that.getLastObj();\r\n if(lastObj){\r\n that.playByObj(lastObj);\r\n }else{\r\n that.playByAllType();\r\n }\r\n },1000);\r\n\r\n }\r\n\r\n sendPoker(obj){\r\n this.game.clearDesk();\r\n this.lastSendObj = obj;\r\n this.game.deskPokerObj = obj;\r\n this.game.next();\r\n }\r\n\r\n playByAllType(){\r\n let types2 = ['one','two','threeWithOne','threeWithTwo','threeWithOneList','threeWithTwoList','oneList','twoList','four','sx','pass'];\r\n let types = ['threeWithTwoList','threeWithOneList','twoList','threeWithTwo','oneList','threeWithOne','two','one','four','sx','pass'];\r\n for(let i=0; i<types.length; i++){\r\n let obj = this.getSmallestObjByType(types[i]);\r\n if(obj){\r\n let success = this.deleteFromPokerListAndSendByObj(obj);\r\n if(!success){\r\n alert('error!');\r\n }\r\n return;\r\n }\r\n }\r\n\r\n }\r\n\r\n deleteFromPokerListAndSendByObj(obj){\r\n let tempList = [];\r\n if(obj.type === 'pass'){\r\n this.sendPoker(obj);\r\n return true;\r\n }\r\n let pokerList = obj.poker;\r\n for(let i=0; i<pokerList.length; i++){\r\n\r\n let poker = this.getAndDeleteOnePokerByNumber(pokerList[i].number);\r\n if(poker){\r\n tempList.push(poker);\r\n }else{\r\n this.listBackToPokerList(tempList);\r\n return false;\r\n }\r\n }\r\n this.sendPoker(obj);\r\n return true;\r\n }\r\n\r\n getSmallestObjByType(type){\r\n let pokerList = this.pokerList;\r\n\r\n let lastPoker = pokerList[0];\r\n let curList = [lastPoker];\r\n let lists = [];\r\n for(let i=1; i<pokerList.length; i++){\r\n if(pokerList[i].number !== lastPoker.number){\r\n lists.push(curList);\r\n curList = [pokerList[i]];\r\n }else{\r\n curList.push(pokerList[i]);\r\n }\r\n lastPoker = pokerList[i];\r\n }\r\n lists.push(curList);\r\n\r\n let Count1List = [];\r\n let Count2List = [];\r\n let Count3List = [];\r\n let Count4List = [];\r\n for(let i=0; i<lists.length; i++){\r\n if(lists[i].length === 3){\r\n Count3List.push(lists[i]);\r\n }else if(lists[i].length === 2){\r\n Count2List.push(lists[i]);\r\n }else if(lists[i].length === 1){\r\n Count1List.push(lists[i]);\r\n }else if(lists[i].length === 4){\r\n Count4List.push(lists[i]);\r\n }\r\n }\r\n\r\n let obj = null;\r\n if(type === 'one'){\r\n if(Count1List.length>0){\r\n obj = {\r\n type: type,\r\n poker: Count1List[0],\r\n one: Count1List[0],\r\n };\r\n }else if(Count2List.length>0){\r\n let poker = Count2List[0].slice(0,1);\r\n obj = {\r\n type: type,\r\n poker: poker,\r\n one: poker,\r\n };\r\n }else if(Count3List.length>0){\r\n let poker = Count3List[0].slice(0,1);\r\n obj = {\r\n type: type,\r\n poker: poker,\r\n one: poker,\r\n };\r\n }\r\n }else if(type === 'two'){\r\n if(Count2List.length>0){\r\n obj = {\r\n type: type,\r\n poker: Count2List[0],\r\n two: Count2List[0],\r\n };\r\n }else if(Count3List.length>0){\r\n let poker = Count3List[0].slice(0,2);\r\n obj = {\r\n type: type,\r\n poker: poker,\r\n one: poker,\r\n };\r\n }\r\n }else if(type === 'threeWithOne'){\r\n if(Count3List.length>0){\r\n let one;\r\n if(Count1List.length>0){\r\n one = Count1List[0];\r\n }else if(Count2List.length>0){\r\n one = Count2List[0].slice(0,1);\r\n }else if(Count3List.length>0){\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===0){\r\n continue;\r\n }\r\n one = Count3List[j].slice(0,1);\r\n }\r\n }\r\n\r\n if(one){\r\n obj = {\r\n type: type,\r\n poker: Count3List[0].concat(one),\r\n three: Count3List[0],\r\n one: one,\r\n };\r\n }\r\n }\r\n }else if(type === 'four'){\r\n if(Count4List.length>0){\r\n obj = {\r\n type: type,\r\n poker: Count4List[0],\r\n four: Count4List[0],\r\n };\r\n }\r\n }else if(type === 'threeWithTwo'){\r\n if(Count3List.length>0){\r\n let two;\r\n if(Count2List.length>0){\r\n two = Count2List[0];\r\n }else if(Count3List.length>0){\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===0){\r\n continue;\r\n }\r\n two = Count3List[j].slice(0,2);\r\n }\r\n }\r\n\r\n if(two){\r\n obj = {\r\n type: type,\r\n poker: Count3List[0].concat(two),\r\n three: Count3List[0],\r\n two: two,\r\n };\r\n }\r\n }\r\n }else if(type === 'threeWithOneList'){\r\n if(Count3List.length>1){\r\n for(let i=0; i<Count3List.length-1; i++){\r\n if(Count3List[i][0].number+1===Count3List[i+1][0].number+1){\r\n\r\n let one1,one2;\r\n if(Count1List.length>0){\r\n one1 = Count1List[0];\r\n if(Count1List.length>1){\r\n one2 = Count1List[1];\r\n }else{\r\n if(Count2List.length>0){\r\n one2 = Count2List[0].slice(0,1);\r\n }else if(Count3List.length>0){\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===i){\r\n continue;\r\n }\r\n one2 = Count3List[j].slice(0,1);\r\n }\r\n }\r\n }\r\n }else if(Count2List.length>0){\r\n one1 = Count2List[0].slice(0,1);\r\n one2 = Count2List[0].slice(1,2);\r\n }else if(Count3List.length>0){\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===i){\r\n continue;\r\n }\r\n one1 = Count3List[j].slice(0,1);\r\n one2 = Count3List[j].slice(1,2);\r\n }\r\n }\r\n\r\n if(one1&&one2){\r\n obj = {\r\n type: type,\r\n poker: Count3List[i].concat(one1).concat(Count3List[i+1]).concat(one2),\r\n list: [\r\n {\r\n three: Count3List[i],\r\n one: one1,\r\n },\r\n {\r\n three: Count3List[i+1],\r\n one: one2,\r\n }\r\n ],\r\n };\r\n }\r\n break;\r\n\r\n }\r\n }\r\n }\r\n }else if(type === 'threeWithTwoList'){\r\n if(Count3List.length>1){\r\n for(let i=0; i<Count3List.length-1; i++){\r\n if(Count3List[i][0].number+1===Count3List[i+1][0].number+1){\r\n\r\n let two1,two2;\r\n if(Count2List.length>0){\r\n two1 = Count2List[0];\r\n if(Count2List.length>1){\r\n two2 = Count2List[1];\r\n }else{\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===i){\r\n continue;\r\n }\r\n two2 = Count3List[j].slice(0,2);\r\n }\r\n }\r\n }\r\n\r\n if(two1&&two2){\r\n obj = {\r\n type: type,\r\n poker: Count3List[i].concat(two1).concat(Count3List[i+1]).concat(two2),\r\n list: [\r\n {\r\n three: Count3List[i],\r\n two: two1,\r\n },\r\n {\r\n three: Count3List[i+1],\r\n two: two2,\r\n }\r\n ],\r\n };\r\n }\r\n break;\r\n\r\n }\r\n }\r\n }\r\n }else if(type === 'oneList'){\r\n if(Count1List.length>=5 ){\r\n for(let i=0; i<Count1List.length-5+1; i++){\r\n if(Count1List[i][0].number+5-1===Count1List[i+5-1][0].number){\r\n let list = Count1List.slice(i,i+5);\r\n obj = {\r\n type: type,\r\n poker: list.flat(1),\r\n list: list.map(function (item) {\r\n return {\r\n one: item,\r\n }\r\n }),\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n }else if(type === 'twoList'){\r\n if(Count2List.length>=3 ){\r\n for(let i=0; i<Count2List.length-3+1; i++){\r\n if(Count2List[i][0].number+3-1===Count2List[i+3-1][0].number){\r\n let list = Count2List.slice(i,i+3);\r\n obj = {\r\n type: type,\r\n poker: list.flat(1),\r\n list: list.map(function (item) {\r\n return {\r\n two: item,\r\n }\r\n }),\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n }else if(type === 'sx'){\r\n if(Count1List.length>=2){\r\n for(let i=0; i<Count1List.length-1; i++){\r\n if(Count1List[i][0].number===16){\r\n let list = Count2List.slice(i,i+2);\r\n let poker = list.flat(1);\r\n obj = {\r\n type: type,\r\n poker: poker,\r\n sx: poker,\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n }else if(type === 'pass'){\r\n obj = {\r\n type: type,\r\n poker: ['pass'],\r\n };\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n getObjByObj(lastObj){\r\n let pokerList = this.pokerList;\r\n\r\n let lastPoker = pokerList[0];\r\n let curList = [lastPoker];\r\n let lists = [];\r\n for(let i=1; i<pokerList.length; i++){\r\n if(pokerList[i].number !== lastPoker.number){\r\n lists.push(curList);\r\n curList = [pokerList[i]];\r\n }else{\r\n curList.push(pokerList[i]);\r\n }\r\n lastPoker = pokerList[i];\r\n }\r\n lists.push(curList);\r\n\r\n let Count1List = [];\r\n let Count2List = [];\r\n let Count3List = [];\r\n let Count4List = [];\r\n for(let i=0; i<lists.length; i++){\r\n if(lists[i].length === 3){\r\n Count3List.push(lists[i]);\r\n }else if(lists[i].length === 2){\r\n Count2List.push(lists[i]);\r\n }else if(lists[i].length === 1){\r\n Count1List.push(lists[i]);\r\n }else if(lists[i].length === 4){\r\n Count4List.push(lists[i]);\r\n }\r\n }\r\n\r\n let type = lastObj.type;\r\n let obj = null;\r\n if(type === 'one'){\r\n if(Count1List.length>0){\r\n for(let i=0; i<Count1List.length; i++){\r\n if(Count1List[i][0].number>lastObj.one[0].number){\r\n obj = {\r\n type: type,\r\n poker: Count1List[i],\r\n one: Count1List[i],\r\n };\r\n break;\r\n }\r\n }\r\n }else if(Count2List.length>0){\r\n for(let i=0; i<Count2List.length; i++){\r\n if(Count2List[i][0].number>lastObj.one[0].number){\r\n let poker = Count2List[i].slice(0,1);\r\n obj = {\r\n type: type,\r\n poker: poker,\r\n one: poker,\r\n };\r\n break;\r\n }\r\n }\r\n }else if(Count3List.length>0){\r\n for(let i=0; i<Count3List.length; i++){\r\n if(Count3List[i][0].number>lastObj.one[0].number){\r\n let poker = Count3List[i].slice(0,1);\r\n obj = {\r\n type: type,\r\n poker: poker,\r\n one: poker,\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n }else if(type === 'two'){\r\n if(Count2List.length>0){\r\n for(let i=0; i<Count2List.length; i++){\r\n if(Count2List[i][0].number>lastObj.two[0].number){\r\n obj = {\r\n type: type,\r\n poker: Count2List[i],\r\n two: Count2List[i],\r\n };\r\n break;\r\n }\r\n }\r\n }else if(Count3List.length>0){\r\n for(let i=0; i<Count3List.length; i++){\r\n if(Count3List[i][0].number>lastObj.two[0].number){\r\n let poker = Count3List[i].slice(0,2);\r\n obj = {\r\n type: type,\r\n poker: poker,\r\n one: poker,\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n }else if(type === 'threeWithOne'){\r\n if(Count3List.length>0){\r\n for(let i=0; i<Count3List.length; i++){\r\n if(Count3List[i][0].number>lastObj.three[0].number){\r\n\r\n let one;\r\n if(Count1List.length>0){\r\n one = Count1List[0];\r\n }else if(Count2List.length>0){\r\n one = Count2List[0].slice(0,1);\r\n }else if(Count3List.length>0){\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===i){\r\n continue;\r\n }\r\n one = Count3List[j].slice(0,1);\r\n }\r\n }\r\n\r\n if(one){\r\n obj = {\r\n type: type,\r\n poker: Count3List[i].concat(one),\r\n three: Count3List[i],\r\n one: one,\r\n };\r\n }\r\n break;\r\n\r\n }\r\n }\r\n }\r\n }else if(type === 'threeWithTwo'){\r\n if(Count3List.length>0){\r\n for(let i=0; i<Count3List.length; i++){\r\n if(Count3List[i][0].number>lastObj.three[0].number){\r\n\r\n let two;\r\n if(Count2List.length>0){\r\n two = Count2List[0];\r\n }else if(Count3List.length>0){\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===i){\r\n continue;\r\n }\r\n two = Count3List[j].slice(0,2);\r\n }\r\n }\r\n\r\n if(two){\r\n obj = {\r\n type: type,\r\n poker: Count3List[i].concat(two),\r\n three: Count3List[i],\r\n two: two,\r\n };\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }else if(type === 'threeWithOneList'){\r\n if(Count3List.length>1){\r\n for(let i=0; i<Count3List.length-1; i++){\r\n if(Count3List[i][0].number>lastObj.list[0].three[0].number && Count3List[i][0].number+1===Count3List[i+1][0].number+1){\r\n\r\n let one1,one2;\r\n if(Count1List.length>0){\r\n one1 = Count1List[0];\r\n if(Count1List.length>1){\r\n one2 = Count1List[1];\r\n }else{\r\n if(Count2List.length>0){\r\n one2 = Count2List[0].slice(0,1);\r\n }else if(Count3List.length>0){\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===i){\r\n continue;\r\n }\r\n one2 = Count3List[j].slice(0,1);\r\n }\r\n }\r\n }\r\n }else if(Count2List.length>0){\r\n one1 = Count2List[0].slice(0,1);\r\n one2 = Count2List[0].slice(1,2);\r\n }else if(Count3List.length>0){\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===i){\r\n continue;\r\n }\r\n one1 = Count3List[j].slice(0,1);\r\n one2 = Count3List[j].slice(1,2);\r\n }\r\n }\r\n\r\n if(one1&&one2){\r\n obj = {\r\n type: type,\r\n poker: Count3List[i].concat(one1).concat(Count3List[i+1]).concat(one2),\r\n list: [\r\n {\r\n three: Count3List[i],\r\n one: one1,\r\n },\r\n {\r\n three: Count3List[i+1],\r\n one: one2,\r\n }\r\n ],\r\n };\r\n }\r\n break;\r\n\r\n }\r\n }\r\n }\r\n }else if(type === 'threeWithTwoList'){\r\n if(Count3List.length>1){\r\n for(let i=0; i<Count3List.length-1; i++){\r\n if(Count3List[i][0].number>lastObj.list[0].three[0].number && Count3List[i][0].number+1===Count3List[i+1][0].number+1){\r\n\r\n let two1,two2;\r\n if(Count2List.length>0){\r\n two1 = Count2List[0];\r\n if(Count2List.length>1){\r\n two2 = Count2List[1];\r\n }else{\r\n for(let j=0; j<Count3List.length; j++){\r\n if(j===i){\r\n continue;\r\n }\r\n two2 = Count3List[j].slice(0,2);\r\n }\r\n }\r\n }\r\n\r\n if(two1&&two2){\r\n obj = {\r\n type: type,\r\n poker: Count3List[i].concat(two1).concat(Count3List[i+1]).concat(two2),\r\n list: [\r\n {\r\n three: Count3List[i],\r\n two: two1,\r\n },\r\n {\r\n three: Count3List[i+1],\r\n two: two2,\r\n }\r\n ],\r\n };\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }else if(type === 'oneList'){\r\n if(Count1List.length>=lastObj.list.length ){\r\n for(let i=0; i<Count1List.length-lastObj.list.length+1; i++){\r\n if(Count1List[i][0].number>lastObj.list[0].one[0].number && Count1List[i][0].number+lastObj.list.length-1===Count1List[i+lastObj.list.length-1][0].number){\r\n let list = Count1List.slice(i,i+lastObj.list.length);\r\n obj = {\r\n type: type,\r\n poker: list.flat(1),\r\n list: list.map(function (item) {\r\n return {\r\n one: item,\r\n }\r\n }),\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n }else if(type === 'twoList'){\r\n if(Count2List.length>=lastObj.list.length ){\r\n for(let i=0; i<Count2List.length-lastObj.list.length+1; i++){\r\n if(Count2List[i][0].number>lastObj.list[0].two[0].number && Count2List[i][0].number+lastObj.list.length-1===Count2List[i+lastObj.list.length-1][0].number){\r\n let list = Count2List.slice(i,i+lastObj.list.length);\r\n obj = {\r\n type: type,\r\n poker: list.flat(1),\r\n list: list.map(function (item) {\r\n return {\r\n two: item,\r\n }\r\n }),\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n }else if(type === 'four'){\r\n if(Count4List.length>0){\r\n for(let i=0; i<Count4List.length; i++){\r\n if(Count4List[i][0].number>lastObj.four[0].number){\r\n obj = {\r\n type: type,\r\n poker: Count4List[i],\r\n four: Count4List[i],\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(!obj && type!=='four'){\r\n\r\n if(Count4List.length>0){\r\n obj = {\r\n type: type,\r\n poker: Count4List[0],\r\n four: Count4List[0],\r\n };\r\n }\r\n\r\n }\r\n\r\n if(!obj && type!=='sx'){\r\n\r\n if(Count1List.length>1){\r\n if(Count1List[Count1List.length-2] === 16){\r\n let poker = Count1List[Count1List.length-2].concat(Count1List[Count1List.length-1]);\r\n obj = {\r\n type: type,\r\n poker: poker,\r\n sx: poker,\r\n };\r\n }\r\n }\r\n\r\n }\r\n\r\n if(!obj){\r\n obj = {\r\n type: 'pass',\r\n poker: ['pass'],\r\n };\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n playByObj(lastObj){\r\n\r\n let obj = this.getObjByObj(lastObj);\r\n let success = this.deleteFromPokerListAndSendByObj(obj);\r\n if(!success){\r\n alert('error!');\r\n }\r\n\r\n }\r\n\r\n getListByList(list){\r\n let tempList = [];\r\n if(list[0] === 'pass'){\r\n return ['pass'];\r\n }\r\n for(let i=0; i<list.length; i++){\r\n let po = list[i];\r\n let poker = this.getAndDeleteOnePokerByNumber(po.number);\r\n if(poker){\r\n tempList.push(poker);\r\n }else{\r\n this.listBackToPokerList(tempList);\r\n return false;\r\n }\r\n }\r\n return tempList;\r\n }\r\n\r\n getListByString(str){\r\n let tempList = [];\r\n if(str === 'pass'){\r\n return ['pass'];\r\n }\r\n for(let i=0; i<str.length; i++){\r\n let text = str[i];\r\n let number = Poker.textToNumber(text);\r\n let poker = this.getAndDeleteOnePokerByNumber(number);\r\n if(poker){\r\n tempList.push(poker);\r\n }else{\r\n this.listBackToPokerList(tempList);\r\n return false;\r\n }\r\n }\r\n return tempList;\r\n }\r\n\r\n listBackToPokerList(list){\r\n while (list.length>0){\r\n let poker = list.splice(0,1)[0];\r\n this.pokerList.push(poker);\r\n }\r\n this.sortPoker();\r\n }\r\n\r\n handleList(list){\r\n if(list){\r\n let obj = Poker.getObjByPokerList(list);\r\n if(obj){\r\n if(obj.type === 'pass'){\r\n this.sendPoker(obj);\r\n return true;\r\n }\r\n let lastObj = this.getLastObj();\r\n if(lastObj){\r\n if(lastObj.type === obj.type){\r\n let comp = this.compareTwoObj(obj, lastObj);\r\n if(comp){\r\n this.sendPoker(obj);\r\n return true;\r\n }else{\r\n this.listBackToPokerList(list);\r\n alert('have to bigger than '+Poker.pokerListToString(lastObj.poker));\r\n return false;\r\n }\r\n\r\n }else{\r\n this.listBackToPokerList(list);\r\n alert('type is not '+lastObj.type+'!');\r\n return false;\r\n }\r\n }else{\r\n this.sendPoker(obj);\r\n return true;\r\n }\r\n\r\n }else{\r\n this.listBackToPokerList(list);\r\n alert('type error!');\r\n return false;\r\n }\r\n\r\n }else{\r\n alert('poker error!');\r\n return false;\r\n }\r\n }\r\n\r\n playByPokerList(pokerList){\r\n if(this.game.currentPlayer!==this){\r\n alert('请等待 '+this.game.currentPlayer.name+' 出牌');\r\n return false;\r\n }\r\n\r\n let list = this.getListByList(pokerList);\r\n return this.handleList(list);\r\n }\r\n\r\n playByString(str){\r\n if(this.game.currentPlayer!==this){\r\n alert('请等待 '+this.game.currentPlayer.name+' 出牌');\r\n return false;\r\n }\r\n\r\n let list = this.getListByString(str);\r\n return this.handleList(list);\r\n }\r\n\r\n compareTwoObj(obj1, obj2) {\r\n if (obj1.type === 'one') {\r\n return obj1.one[0].number > obj2.one[0].number;\r\n } else if (obj1.type === 'two') {\r\n return obj1.two[0].number > obj2.two[0].number;\r\n } else if (obj1.type === 'threeWithOne') {\r\n return obj1.three[0].number > obj2.three[0].number;\r\n } else if (obj1.type === 'threeWithTwo') {\r\n return obj1.three[0].number > obj2.three[0].number;\r\n } else if (obj1.type === 'threeWithOneList') {\r\n return obj1.list[0].three[0].number > obj2.list[0].three[0].number;\r\n } else if (obj1.type === 'threeWithTwoList') {\r\n return obj1.list[0].three[0].number > obj2.list[0].three[0].number;\r\n } else if (obj1.type === 'oneList') {\r\n return obj1.list[0].one[0].number > obj2.list[0].one[0].number;\r\n } else if (obj1.type === 'twoList') {\r\n return obj1.list[0].two[0].number > obj2.list[0].two[0].number;\r\n } else if (obj1.type === 'four') {\r\n return obj1.four[0].number > obj2.four[0].number;\r\n }\r\n }\r\n\r\n\r\n getAndDeleteOnePokerByNumber(number){\r\n for(let i=0; i<this.pokerList.length; i++){\r\n if(this.pokerList[i].number === number){\r\n return this.pokerList.splice(i,1)[0];\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n pokerListToString(){\r\n let result = Poker.pokerListToString(this.pokerList);\r\n return result;\r\n }\r\n\r\n lastSendObjToString(){\r\n if(!this.lastSendObj){\r\n return '';\r\n }\r\n let result = Poker.pokerListToString(this.lastSendObj.poker);\r\n return result;\r\n }\r\n\r\n}\r\n\r\nexport default Player;","import Player from \"./Player\";\r\nimport Poker from \"./Poker\";\r\n\r\nclass Game{\r\n constructor() {\r\n this.playerList = [];\r\n this.pokerList = [];\r\n this.deskPokerObj = null;\r\n this.oldPokerList = [];\r\n this.currentPlayer = [];\r\n this.dizhu = null;\r\n\r\n this.init();\r\n }\r\n\r\n init(){\r\n this.initPokerList();\r\n this.initPlayerList();\r\n this.sendPoker();\r\n\r\n this.start();\r\n }\r\n\r\n start(){\r\n this.currentPlayer = this.dizhu;\r\n if(this.currentPlayer.isRobot){\r\n this.currentPlayer.playByAI();\r\n }\r\n }\r\n\r\n next(){\r\n let over = this.checkGameOver();\r\n if(over){\r\n this.gameOver();\r\n return;\r\n }\r\n this.currentPlayer = this.currentPlayer.next;\r\n if(this.currentPlayer.isRobot){\r\n this.currentPlayer.playByAI();\r\n }\r\n }\r\n\r\n gameOver(){\r\n alert('gameOver! '+this.currentPlayer.name+' ['+this.currentPlayer.type+'] win!');\r\n }\r\n\r\n checkGameOver(){\r\n if(this.currentPlayer.pokerList.length === 0) {\r\n return true;\r\n }\r\n }\r\n\r\n clearDesk(){\r\n if(this.deskPokerObj){\r\n this.oldPokerList.push(this.deskPokerObj);\r\n this.deskPokerObj = null;\r\n }\r\n }\r\n\r\n sendPoker(){\r\n let player = this.playerList[0];\r\n do{\r\n let index = this.getRandomIntInclusive(0,this.pokerList.length-1);\r\n let poker = this.pokerList.splice(index,1)[0];\r\n player.addPoker(poker);\r\n player = player.next;\r\n }while(this.pokerList.length>3);\r\n\r\n do{\r\n let poker = this.pokerList.splice(0,1)[0];\r\n this.dizhu.addPoker(poker);\r\n }while(this.pokerList.length>0);\r\n\r\n for(let i=0; i<this.playerList.length; i++){\r\n this.playerList[i].sortPoker();\r\n }\r\n }\r\n\r\n initPlayerList(){\r\n this.playerList = [];\r\n let player0 = new Player({\r\n name: 'player',\r\n isRobot: false,\r\n game: this,\r\n });\r\n let player1 = new Player({\r\n name: 'robot1',\r\n isRobot: true,\r\n game: this,\r\n });\r\n let player2 = new Player({\r\n name: 'robot2',\r\n isRobot: true,\r\n game: this,\r\n });\r\n this.playerList = [player0,player1,player2];\r\n\r\n this.playerList[0].next = this.playerList[1];\r\n this.playerList[1].next = this.playerList[2];\r\n this.playerList[2].next = this.playerList[0];\r\n this.playerList[0].last = this.playerList[2];\r\n this.playerList[1].last = this.playerList[0];\r\n this.playerList[2].last = this.playerList[1];\r\n\r\n let dizhuIndex = this.getRandomIntInclusive(0,2);\r\n this.playerList[dizhuIndex].type = 'dizhu';\r\n this.dizhu = this.playerList[dizhuIndex];\r\n }\r\n\r\n initPokerList(){\r\n this.pokerList = [];\r\n for(let number=3; number<=15; number++){\r\n for(let type=0; type<4; type++){\r\n let poker = new Poker({\r\n number: number,\r\n type: type,\r\n });\r\n this.pokerList.push(poker);\r\n }\r\n }\r\n for(let number=16; number<=17; number++){\r\n let poker = new Poker({\r\n number: number,\r\n });\r\n this.pokerList.push(poker);\r\n }\r\n\r\n }\r\n\r\n pokerListToString(){\r\n let result = '';\r\n result += Poker.pokerListToString(this.pokerList);\r\n result += '\\n';\r\n for(let i=0; i<this.oldPokerList.length; i++){\r\n result += Poker.pokerListToString(this.oldPokerList[i].poker);\r\n if(i<this.oldPokerList.length-1){\r\n result += ',';\r\n }\r\n }\r\n result += '\\n';\r\n result += this.deskPokerObj?Poker.pokerListToString(this.deskPokerObj.poker):'';\r\n return result;\r\n }\r\n\r\n getRandomIntInclusive(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n}\r\n\r\nexport default Game;","<template>\n <div>\n <div style=\"width: 300px;height:300px;float: left; position: fixed ; left: 0px; top: 0px; background-color: aliceblue; text-align: center\">\n <span>\n {{player2Str[0]}}\n </br>\n {{player2Str[1]}}\n </br></br>\n {{player2Str[2]}}\n </span>\n </div>\n\n <div style=\"width: 300px;height:300px;float: left; position: fixed ; left: 600px; top: 0px; background-color: aliceblue; text-align: center\">\n <span>\n {{player1Str[0]}}\n </br>\n {{player1Str[1]}}\n </br></br>\n {{player1Str[2]}}\n </span>\n </div>\n\n <div style=\"width: 300px;height:300px;float: left; position: fixed ; left: 300px; top: 300px; background-color: aliceblue; text-align: center\">\n <span>\n {{player0Str[0]}}\n </br>\n {{player0Str[1]}}\n </br></br>\n {{player0Str[2]}}\n </span>\n <div>\n <input v-model=\"playerStr\" type=\"text\"/>\n <button @click=\"sendPoker\">send</button>\n <button @click=\"pass\">pass</button>\n </div>\n </div>\n\n <div style=\"width: 300px;height:300px;float: left; position: fixed ; left: 300px; top: 0px; background-color: aliceblue; text-align: center\">\n <div style=\"width: 300px;word-wrap: break-word;\">\n {{deskStr[0]}}\n </br>\n {{deskStr[1]}}\n </div>\n </div>\n\n <div style=\"position: fixed;left: 300px;top: 600px;\">\n <button @click=\"reStart\">reStart</button>\n </div>\n </div>\n</template>\n\n\n<script>\n import Game from \"../doudizhu/Game\";\nexport default {\n name: 'HelloWorld',\n data(){\n return {\n data:'fuck1',\n game: new Game(),\n playerStr: '',\n }\n },\n computed: {\n\n player2Str: function () {\n let game = this.game;\n let i = 2;\n return [\n game.playerList[i].name+' : '+game.playerList[i].type+' : '+game.playerList[i].pokerList.length,\n game.playerList[i].pokerListToString(),\n 'last : '+game.playerList[i].lastSendObjToString()\n ];\n },\n player1Str: function () {\n let game = this.game;\n let i = 1;\n return [\n game.playerList[i].name+' : '+game.playerList[i].type+' : '+game.playerList[i].pokerList.length,\n game.playerList[i].pokerListToString(),\n 'last : '+game.playerList[i].lastSendObjToString()\n ];\n },\n player0Str: function () {\n let game = this.game;\n let i = 0;\n return [\n game.playerList[i].name+' : '+game.playerList[i].type+' : '+game.playerList[i].pokerList.length,\n game.playerList[i].pokerListToString(),\n 'last : '+game.playerList[i].lastSendObjToString()\n ];\n },\n deskStr: function () {\n let game = this.game;\n return [\n 'desk',\n game.pokerListToString()\n ];\n },\n },\n mounted() {\n this.data = this.game.playerList[1].name;\n },\n methods:{\n reDraw() {\n\n },\n\n sendPoker() {\n let game = this.game;\n let success = game.playerList[0].playByString(this.playerStr);\n if(success){\n this.playerStr='';\n }\n },\n\n pass() {\n this.game.playerList[0].playByString('pass');\n },\n\n reStart() {\n this.game = new Game();\n this.playerStr='';\n },\n\n },\n}\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelloWorld.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelloWorld.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelloWorld.vue?vue&type=template&id=62298b0c&scoped=true&\"\nimport script from \"./HelloWorld.vue?vue&type=script&lang=js&\"\nexport * from \"./HelloWorld.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62298b0c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"user-select\":\"none\"}},[_c('div',{staticStyle:{\"width\":\"300px\",\"height\":\"300px\",\"float\":\"left\",\"position\":\"fixed\",\"left\":\"0px\",\"top\":\"0px\",\"background-color\":\"aliceblue\",\"text-align\":\"center\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.player2Str[0])+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.player2Str[1])+\" \"),_c('br'),_c('br'),_vm._v(\" \"+_vm._s(_vm.player2Str[2])+\" \")])]),_c('div',{staticStyle:{\"width\":\"300px\",\"height\":\"300px\",\"float\":\"left\",\"position\":\"fixed\",\"left\":\"600px\",\"top\":\"0px\",\"background-color\":\"aliceblue\",\"text-align\":\"center\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.player1Str[0])+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.player1Str[1])+\" \"),_c('br'),_c('br'),_vm._v(\" \"+_vm._s(_vm.player1Str[2])+\" \")])]),_c('div',{staticStyle:{\"width\":\"300px\",\"height\":\"300px\",\"float\":\"left\",\"position\":\"fixed\",\"left\":\"300px\",\"top\":\"300px\",\"background-color\":\"aliceblue\",\"text-align\":\"center\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.player0Str[0])+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.player0Str[1])+\" \"),_c('br'),_c('br'),_vm._v(\" \"+_vm._s(_vm.player0Str[2])+\" \")]),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.playerStr),expression:\"playerStr\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.playerStr)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.playerStr=$event.target.value}}}),_c('button',{on:{\"click\":_vm.sendPoker}},[_vm._v(\"send\")]),_c('button',{on:{\"click\":_vm.pass}},[_vm._v(\"pass\")])])]),_c('div',{staticStyle:{\"width\":\"300px\",\"height\":\"300px\",\"float\":\"left\",\"position\":\"fixed\",\"left\":\"300px\",\"top\":\"0px\",\"background-color\":\"aliceblue\",\"text-align\":\"center\"}},[_c('div',{staticStyle:{\"width\":\"300px\",\"word-wrap\":\"break-word\"}},[_vm._v(\" \"+_vm._s(_vm.deskStr[0])+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.deskStr[1])+\" \")])]),_c('div',{staticStyle:{\"position\":\"fixed\",\"left\":\"300px\",\"top\":\"600px\"}},[_c('button',{on:{\"click\":_vm.reStart}},[_vm._v(\"reStart\")])]),_c('div',{staticStyle:{\"position\":\"fixed\",\"bottom\":\"0\",\"width\":\"100%\",\"height\":\"100px\",\"padding-left\":\"100px\"}},_vm._l((_vm.game.playerList[0].pokerList),function(item){return _c('div',{staticClass:\"poker\",class:{ selected: item.selected },on:{\"click\":function($event){return _vm.pickPoker(item)}}},[_vm._v(\" \"+_vm._s(item.text)+\" \")])}),0),_c('div',{staticStyle:{\"position\":\"fixed\",\"bottom\":\"100px\",\"width\":\"100%\",\"height\":\"50px\",\"padding-left\":\"100px\",\"text-align\":\"left\"}},[_c('button',{staticStyle:{\"height\":\"30px\",\"border-radius\":\"4px\"},on:{\"click\":_vm.sendPoker2}},[_vm._v(\"出牌\")]),_c('button',{staticStyle:{\"height\":\"30px\",\"border-radius\":\"4px\",\"margin-left\":\"20px\"},on:{\"click\":_vm.pass}},[_vm._v(\"不出\")])]),_c('div',{staticStyle:{\"position\":\"fixed\",\"bottom\":\"200px\",\"width\":\"100%\",\"height\":\"100px\",\"padding-left\":\"100px\"}},_vm._l((_vm.deskPoker),function(item){return _c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"50px\",\"border\":\"solid 1px\",\"border-radius\":\"8px\",\"float\":\"left\",\"margin-left\":\"-25px\",\"background-color\":\"azure\"}},[_vm._v(\" \"+_vm._s(item.text)+\" \")])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"user-select: none\">\n <div style=\"width: 300px;height:300px;float: left; position: fixed ; left: 0px; top: 0px; background-color: aliceblue; text-align: center\">\n <span>\n {{player2Str[0]}}\n </br>\n {{player2Str[1]}}\n </br></br>\n {{player2Str[2]}}\n </span>\n </div>\n\n <div style=\"width: 300px;height:300px;float: left; position: fixed ; left: 600px; top: 0px; background-color: aliceblue; text-align: center\">\n <span>\n {{player1Str[0]}}\n </br>\n {{player1Str[1]}}\n </br></br>\n {{player1Str[2]}}\n </span>\n </div>\n\n <div style=\"width: 300px;height:300px;float: left; position: fixed ; left: 300px; top: 300px; background-color: aliceblue; text-align: center\">\n <span>\n {{player0Str[0]}}\n </br>\n {{player0Str[1]}}\n </br></br>\n {{player0Str[2]}}\n </span>\n <div>\n <input v-model=\"playerStr\" type=\"text\"/>\n <button @click=\"sendPoker\">send</button>\n <button @click=\"pass\">pass</button>\n </div>\n </div>\n\n <div style=\"width: 300px;height:300px;float: left; position: fixed ; left: 300px; top: 0px; background-color: aliceblue; text-align: center\">\n <div style=\"width: 300px;word-wrap: break-word;\">\n {{deskStr[0]}}\n </br>\n {{deskStr[1]}}\n </div>\n </div>\n\n <div style=\"position: fixed;left: 300px;top: 600px;\">\n <button @click=\"reStart\">reStart</button>\n </div>\n\n <div style=\"position: fixed;bottom:0;width: 100%;height: 100px;padding-left:100px;\">\n <div @click=\"pickPoker(item)\" v-for=\"item in game.playerList[0].pokerList\" :class=\"{ selected: item.selected }\" class=\"poker\" style=\"\">\n {{item.text}}\n </div>\n </div>\n\n <div style=\"position: fixed;bottom:100px;width: 100%;height: 50px;padding-left:100px;text-align:left;\">\n <button @click=\"sendPoker2\" style=\"height: 30px;border-radius: 4px;\">出牌</button>\n <button @click=\"pass\" style=\"height: 30px;border-radius: 4px;margin-left: 20px;\">不出</button>\n </div>\n\n <div style=\"position: fixed;bottom:200px;width: 100%;height: 100px;padding-left:100px;\">\n <div v-for=\"item in deskPoker\" style=\"height:100%;width:50px;border: solid 1px;border-radius: 8px;float: left;margin-left:-25px;background-color: azure\">\n {{item.text}}\n </div>\n </div>\n </div>\n</template>\n\n\n<script>\n import Game from \"../doudizhu/Game\";\nexport default {\n name: 'HelloWorld',\n data(){\n return {\n data:'fuck1',\n game: new Game(),\n playerStr: '',\n pokerList: [],\n }\n },\n computed: {\n\n deskPoker: function(){\n if(this.game.deskPokerObj && this.game.deskPokerObj.poker){\n if(this.game.deskPokerObj.poker[0] && this.game.deskPokerObj.poker[0].text){\n return this.game.deskPokerObj.poker;\n }\n }\n return [];\n },\n player2Str: function () {\n let game = this.game;\n let i = 2;\n return [\n game.playerList[i].name+' : '+game.playerList[i].type+' : '+game.playerList[i].pokerList.length,\n game.playerList[i].pokerListToString(),\n 'last : '+game.playerList[i].lastSendObjToString()\n ];\n },\n player1Str: function () {\n let game = this.game;\n let i = 1;\n return [\n game.playerList[i].name+' : '+game.playerList[i].type+' : '+game.playerList[i].pokerList.length,\n game.playerList[i].pokerListToString(),\n 'last : '+game.playerList[i].lastSendObjToString()\n ];\n },\n player0Str: function () {\n let game = this.game;\n let i = 0;\n return [\n game.playerList[i].name+' : '+game.playerList[i].type+' : '+game.playerList[i].pokerList.length,\n game.playerList[i].pokerListToString(),\n 'last : '+game.playerList[i].lastSendObjToString()\n ];\n },\n deskStr: function () {\n let game = this.game;\n return [\n 'desk',\n game.pokerListToString()\n ];\n },\n },\n mounted() {\n this.data = this.game.playerList[1].name;\n },\n methods:{\n\n\n pickPoker(poker){\n if(!poker.selected){\n poker.selected = true;\n this.pokerList.push(poker);\n }else{\n poker.selected = false;\n for(let i=0; i<this.pokerList.length; i++){\n if(this.pokerList[i] === poker){\n this.pokerList.splice(i,1);\n }\n }\n }\n },\n\n sendPoker2() {\n let game = this.game;\n let success = game.playerList[0].playByPokerList(this.pokerList);\n if(success){\n this.pokerList=[];\n }\n },\n\n sendPoker() {\n let game = this.game;\n let success = game.playerList[0].playByString(this.playerStr);\n if(success){\n this.playerStr='';\n }\n },\n\n pass() {\n this.game.playerList[0].playByString('pass');\n },\n\n reStart() {\n this.game = new Game();\n this.playerStr='';\n },\n\n },\n}\n</script>\n\n<style scoped>\n .poker{\n height:100%;width:50px;border: solid 1px;border-radius: 8px;float: left;margin-left:-25px;background-color: azure;\n }\n .poker:hover{\n background-color: antiquewhite;\n }\n\n .selected{\n margin-top: -20px;\n }\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Game.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Game.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Game.vue?vue&type=template&id=70a35e10&scoped=true&\"\nimport script from \"./Game.vue?vue&type=script&lang=js&\"\nexport * from \"./Game.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Game.vue?vue&type=style&index=0&id=70a35e10&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70a35e10\",\n null\n \n)\n\nexport default component.exports","<template>\n <div id=\"app\">\n <Game></Game>\n </div>\n</template>\n\n<script>\nimport HelloWorld from './components/HelloWorld.vue';\nimport Game from './components/Game.vue';\n\nexport default {\n name: 'App',\n components: {\n HelloWorld,\n Game,\n }\n}\n</script>\n\n<style>\n\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=51e9b17b&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\n\nVue.config.productionTip = false;\n\nnew Vue({\n render: h => h(App),\n}).$mount('#app');\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Game.vue?vue&type=style&index=0&id=70a35e10&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Game.vue?vue&type=style&index=0&id=70a35e10&scoped=true&lang=css&\""],"sourceRoot":""}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录