texas-poker-core 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +13 -6
- package/.babelrc +0 -32
- package/.commitlintrc +0 -12
- package/.husky/commit-msg +0 -1
- package/.husky/pre-commit +0 -1
- package/.prettierignore +0 -4
- package/.prettierrc +0 -8
- package/dist/Controller/index.js +0 -214
- package/dist/Dealer/index.js +0 -443
- package/dist/Deck/constant.js +0 -49
- package/dist/Deck/core.js +0 -326
- package/dist/Deck/index.js +0 -172
- package/dist/Player/constant.js +0 -50
- package/dist/Player/index.js +0 -600
- package/dist/Pool/index.js +0 -358
- package/dist/Room/index.js +0 -220
- package/dist/index.js +0 -12
- package/dist/main.js +0 -87
- package/dist/utils/index.js +0 -52
- package/eslint.config.mjs +0 -55
- package/global.env.d.ts +0 -5
- package/jest.config.js +0 -10
- package/jest.setup.js +0 -2
- package/src/Controller/index.test.ts +0 -66
- package/src/Controller/index.ts +0 -131
- package/src/Dealer/index.test.ts +0 -32
- package/src/Dealer/index.ts +0 -359
- package/src/Deck/constant.ts +0 -122
- package/src/Deck/core.test.ts +0 -98
- package/src/Deck/core.ts +0 -245
- package/src/Deck/index.test.ts +0 -100
- package/src/Deck/index.ts +0 -120
- package/src/Player/constant.ts +0 -55
- package/src/Player/index.test.ts +0 -61
- package/src/Player/index.ts +0 -533
- package/src/Pool/index.test.ts +0 -117
- package/src/Pool/index.ts +0 -208
- package/src/Room/index.test.ts +0 -109
- package/src/Room/index.ts +0 -159
- package/src/index.ts +0 -3
- package/src/main.test.ts +0 -22
- package/src/main.ts +0 -58
- package/src/utils/index.ts +0 -38
- package/tsconfig.json +0 -26
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "texas-poker-core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "德州扑克核心功能",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -12,8 +12,14 @@
|
|
|
12
12
|
"lint": "eslint --cache --ext .ts ./src",
|
|
13
13
|
"lint:fix": "eslint --fix --cache --ext .ts ./src",
|
|
14
14
|
"prepublishOnly": "tsc --noEmit && pnpm run test",
|
|
15
|
-
"build": "
|
|
15
|
+
"build:types": "tsc && tsc-alias",
|
|
16
|
+
"build:core": "babel src --out-dir dist --extensions \".ts\"",
|
|
17
|
+
"build": "cross-env PROJECT_ENV=prd pnpm run build:types && pnpm run build:core"
|
|
16
18
|
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist/**/*",
|
|
21
|
+
"types/**/*"
|
|
22
|
+
],
|
|
17
23
|
"keywords": [
|
|
18
24
|
"德州",
|
|
19
25
|
"扑克"
|
|
@@ -21,12 +27,10 @@
|
|
|
21
27
|
"author": "三分",
|
|
22
28
|
"license": "ISC",
|
|
23
29
|
"dependencies": {
|
|
24
|
-
"
|
|
25
|
-
"
|
|
30
|
+
"core-js": "3",
|
|
31
|
+
"ramda": "^0.30.1"
|
|
26
32
|
},
|
|
27
33
|
"devDependencies": {
|
|
28
|
-
"jest": "^29.7.0",
|
|
29
|
-
"cross-env": "^7.0.3",
|
|
30
34
|
"@babel/cli": "^7.26.4",
|
|
31
35
|
"@babel/core": "^7.26.10",
|
|
32
36
|
"@babel/preset-env": "^7.26.9",
|
|
@@ -38,13 +42,16 @@
|
|
|
38
42
|
"@types/ramda": "^0.30.2",
|
|
39
43
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
40
44
|
"commitlint": "^19.7.1",
|
|
45
|
+
"cross-env": "^7.0.3",
|
|
41
46
|
"eslint": "^9.21.0",
|
|
42
47
|
"globals": "^16.0.0",
|
|
43
48
|
"husky": "^9.1.7",
|
|
49
|
+
"jest": "^29.7.0",
|
|
44
50
|
"lint-staged": "^15.4.3",
|
|
45
51
|
"prettier-plugin-classify-imports": "^0.0.2",
|
|
46
52
|
"ts-jest": "^29.2.6",
|
|
47
53
|
"ts-node": "^10.9.2",
|
|
54
|
+
"tsc-alias": "^1.8.11",
|
|
48
55
|
"typescript-eslint": "^8.26.0"
|
|
49
56
|
},
|
|
50
57
|
"lint-staged": {
|
package/.babelrc
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"ignore": ["**/*.test.ts"],
|
|
3
|
-
"presets": [
|
|
4
|
-
"@babel/preset-typescript",
|
|
5
|
-
[
|
|
6
|
-
"@babel/preset-env",
|
|
7
|
-
{
|
|
8
|
-
"targets": {
|
|
9
|
-
// "node": "current"
|
|
10
|
-
"browsers": "> 0.25%"
|
|
11
|
-
},
|
|
12
|
-
// false标识es module
|
|
13
|
-
"modules": "commonjs",
|
|
14
|
-
// 根据使用的特性引入 polyfills
|
|
15
|
-
"useBuiltIns": "usage",
|
|
16
|
-
// 指定 core-js 版本
|
|
17
|
-
"corejs": { "version": 3, "proposals": true }
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
],
|
|
21
|
-
"plugins": [
|
|
22
|
-
[
|
|
23
|
-
"module-resolver",
|
|
24
|
-
{
|
|
25
|
-
"root": ["./src"],
|
|
26
|
-
"alias": {
|
|
27
|
-
"@": "./src"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
]
|
|
32
|
-
}
|
package/.commitlintrc
DELETED
package/.husky/commit-msg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
npx --no -- commitlint --edit $1
|
package/.husky/pre-commit
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
npx lint-staged
|
package/.prettierignore
DELETED
package/.prettierrc
DELETED
package/dist/Controller/index.js
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.symbol.js");
|
|
4
|
-
require("core-js/modules/es.symbol.description.js");
|
|
5
|
-
require("core-js/modules/es.symbol.async-iterator.js");
|
|
6
|
-
require("core-js/modules/es.symbol.iterator.js");
|
|
7
|
-
require("core-js/modules/es.symbol.to-primitive.js");
|
|
8
|
-
require("core-js/modules/es.symbol.to-string-tag.js");
|
|
9
|
-
require("core-js/modules/es.array.slice.js");
|
|
10
|
-
require("core-js/modules/es.date.to-primitive.js");
|
|
11
|
-
require("core-js/modules/es.function.name.js");
|
|
12
|
-
require("core-js/modules/es.json.to-string-tag.js");
|
|
13
|
-
require("core-js/modules/es.math.to-string-tag.js");
|
|
14
|
-
require("core-js/modules/es.number.constructor.js");
|
|
15
|
-
require("core-js/modules/es.object.get-prototype-of.js");
|
|
16
|
-
require("core-js/modules/es.promise.js");
|
|
17
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
18
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
19
|
-
Object.defineProperty(exports, "__esModule", {
|
|
20
|
-
value: true
|
|
21
|
-
});
|
|
22
|
-
exports.default = void 0;
|
|
23
|
-
require("core-js/modules/es.array.filter.js");
|
|
24
|
-
require("core-js/modules/es.array.find-index.js");
|
|
25
|
-
require("core-js/modules/es.array.iterator.js");
|
|
26
|
-
require("core-js/modules/es.array.map.js");
|
|
27
|
-
require("core-js/modules/es.object.to-string.js");
|
|
28
|
-
require("core-js/modules/es.string.iterator.js");
|
|
29
|
-
require("core-js/modules/es.weak-map.js");
|
|
30
|
-
require("core-js/modules/esnext.weak-map.delete-all.js");
|
|
31
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
32
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
33
|
-
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
34
|
-
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
35
|
-
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
36
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
37
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
38
|
-
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
|
39
|
-
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
|
40
|
-
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
41
|
-
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
42
|
-
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
43
|
-
// 控制游戏的进程
|
|
44
|
-
|
|
45
|
-
var stages = ['pre-flop', 'flop', 'turn', 'river', 'showdown'];
|
|
46
|
-
var _status = /*#__PURE__*/new WeakMap();
|
|
47
|
-
var _stage = /*#__PURE__*/new WeakMap();
|
|
48
|
-
var _activePlayer = /*#__PURE__*/new WeakMap();
|
|
49
|
-
var _timer = /*#__PURE__*/new WeakMap();
|
|
50
|
-
var _count = /*#__PURE__*/new WeakMap();
|
|
51
|
-
var _dealer = /*#__PURE__*/new WeakMap();
|
|
52
|
-
var Controller = /*#__PURE__*/function () {
|
|
53
|
-
function Controller(dealer) {
|
|
54
|
-
_classCallCheck(this, Controller);
|
|
55
|
-
_classPrivateFieldInitSpec(this, _status, 'waiting');
|
|
56
|
-
_classPrivateFieldInitSpec(this, _stage, 'pre-flop');
|
|
57
|
-
_classPrivateFieldInitSpec(this, _activePlayer, null);
|
|
58
|
-
_classPrivateFieldInitSpec(this, _timer, null);
|
|
59
|
-
// 记录游戏的进行时间,单位 second
|
|
60
|
-
_classPrivateFieldInitSpec(this, _count, 0);
|
|
61
|
-
_classPrivateFieldInitSpec(this, _dealer, void 0);
|
|
62
|
-
_classPrivateFieldSet(_dealer, this, dealer);
|
|
63
|
-
}
|
|
64
|
-
return _createClass(Controller, [{
|
|
65
|
-
key: "stage",
|
|
66
|
-
get: function get() {
|
|
67
|
-
return _classPrivateFieldGet(_stage, this);
|
|
68
|
-
}
|
|
69
|
-
}, {
|
|
70
|
-
key: "setControl",
|
|
71
|
-
value: function setControl(player) {
|
|
72
|
-
_classPrivateFieldSet(_activePlayer, this, player);
|
|
73
|
-
}
|
|
74
|
-
}, {
|
|
75
|
-
key: "transferControlToNext",
|
|
76
|
-
value: function transferControlToNext(nextPlayer) {
|
|
77
|
-
this.setControl(nextPlayer);
|
|
78
|
-
nextPlayer === null || nextPlayer === void 0 || nextPlayer.getControl();
|
|
79
|
-
}
|
|
80
|
-
}, {
|
|
81
|
-
key: "activePlayer",
|
|
82
|
-
get: function get() {
|
|
83
|
-
return _classPrivateFieldGet(_activePlayer, this);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// 每个玩家行动之后, 都要调用此方法
|
|
87
|
-
// 推进到新的阶段后, 将控制权交给小盲位
|
|
88
|
-
// 如果小盲位已经出局或者无法行动(all-in), 依次将控制权交给下一个可以行动的玩家
|
|
89
|
-
}, {
|
|
90
|
-
key: "tryToAdvanceGameToNextStage",
|
|
91
|
-
value: function tryToAdvanceGameToNextStage() {
|
|
92
|
-
var _this = this;
|
|
93
|
-
if (_classPrivateFieldGet(_stage, this) === 'showdown') throw new Error('游戏已经结束');
|
|
94
|
-
var maxBetAmount = _classPrivateFieldGet(_dealer, this).getCurrentStageMaxBetAmount();
|
|
95
|
-
// this.#dealer.forEach((p) => p.log('ss,'))
|
|
96
|
-
var players = _classPrivateFieldGet(_dealer, this)
|
|
97
|
-
// 场上正常下注的玩家, 下注金额需要都等于最大下注金额
|
|
98
|
-
.filter(function (p) {
|
|
99
|
-
return p.getStatus() === 'waiting';
|
|
100
|
-
});
|
|
101
|
-
var allPlayersBetThSameAmount = players.map(function (p) {
|
|
102
|
-
return p.getCurrentStageTotalAmount();
|
|
103
|
-
}).every(function (amount) {
|
|
104
|
-
return amount === maxBetAmount;
|
|
105
|
-
});
|
|
106
|
-
if (allPlayersBetThSameAmount) {
|
|
107
|
-
var index = stages.findIndex(function (stage) {
|
|
108
|
-
return stage === _classPrivateFieldGet(_stage, _this);
|
|
109
|
-
});
|
|
110
|
-
_classPrivateFieldSet(_stage, this, stages[index + 1]);
|
|
111
|
-
this.setControl(_classPrivateFieldGet(_dealer, this).getTheFirstPlayerToAct());
|
|
112
|
-
_classPrivateFieldGet(_dealer, this).resetCurrentStageTotalAmount();
|
|
113
|
-
_classPrivateFieldGet(_dealer, this).resetActionsOfPlayers();
|
|
114
|
-
console.log('游戏进入下一个阶段 => ', _classPrivateFieldGet(_stage, this));
|
|
115
|
-
return true;
|
|
116
|
-
}
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// 创建一个迭代器控制游戏进行
|
|
121
|
-
}, {
|
|
122
|
-
key: "gameIterator",
|
|
123
|
-
value:
|
|
124
|
-
/*#__PURE__*/
|
|
125
|
-
_regeneratorRuntime().mark(function gameIterator() {
|
|
126
|
-
return _regeneratorRuntime().wrap(function gameIterator$(_context) {
|
|
127
|
-
while (1) switch (_context.prev = _context.next) {
|
|
128
|
-
case 0:
|
|
129
|
-
if (!true) {
|
|
130
|
-
_context.next = 5;
|
|
131
|
-
break;
|
|
132
|
-
}
|
|
133
|
-
_context.next = 3;
|
|
134
|
-
return;
|
|
135
|
-
case 3:
|
|
136
|
-
_context.next = 0;
|
|
137
|
-
break;
|
|
138
|
-
case 5:
|
|
139
|
-
case "end":
|
|
140
|
-
return _context.stop();
|
|
141
|
-
}
|
|
142
|
-
}, gameIterator);
|
|
143
|
-
})
|
|
144
|
-
/**
|
|
145
|
-
* @description 开始计时器, 将控制权移交给第一个可以行动的玩家
|
|
146
|
-
*/
|
|
147
|
-
}, {
|
|
148
|
-
key: "start",
|
|
149
|
-
value: function start() {
|
|
150
|
-
// 将控制权给第一个可以行动的玩家
|
|
151
|
-
this.transferControlToNext(_classPrivateFieldGet(_dealer, this).getTheFirstPlayerToAct());
|
|
152
|
-
_classPrivateFieldSet(_status, this, 'on');
|
|
153
|
-
_classPrivateFieldSet(_stage, this, 'pre-flop');
|
|
154
|
-
this.startTimer();
|
|
155
|
-
}
|
|
156
|
-
}, {
|
|
157
|
-
key: "startTimer",
|
|
158
|
-
value: function startTimer() {
|
|
159
|
-
var _this2 = this;
|
|
160
|
-
// 避免重复开启计时器
|
|
161
|
-
if (_classPrivateFieldGet(_timer, this)) return;
|
|
162
|
-
_classPrivateFieldSet(_timer, this, setInterval(function () {
|
|
163
|
-
var _this$count, _this$count2;
|
|
164
|
-
_classPrivateFieldSet(_count, _this2, (_this$count = _classPrivateFieldGet(_count, _this2), _this$count2 = _this$count++, _this$count)), _this$count2;
|
|
165
|
-
}, 1000));
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* @description 继续游戏
|
|
170
|
-
*/
|
|
171
|
-
}, {
|
|
172
|
-
key: "continue",
|
|
173
|
-
value: function _continue() {
|
|
174
|
-
var _classPrivateFieldGet2;
|
|
175
|
-
_classPrivateFieldSet(_status, this, 'on');
|
|
176
|
-
(_classPrivateFieldGet2 = _classPrivateFieldGet(_activePlayer, this)) === null || _classPrivateFieldGet2 === void 0 || _classPrivateFieldGet2.continue();
|
|
177
|
-
this.startTimer();
|
|
178
|
-
}
|
|
179
|
-
}, {
|
|
180
|
-
key: "clearTimer",
|
|
181
|
-
value: function clearTimer() {
|
|
182
|
-
if (_classPrivateFieldGet(_timer, this)) {
|
|
183
|
-
clearInterval(_classPrivateFieldGet(_timer, this));
|
|
184
|
-
_classPrivateFieldSet(_timer, this, null);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* @description 结束游戏, 回收控制权, 清除玩家的计时器
|
|
189
|
-
*/
|
|
190
|
-
}, {
|
|
191
|
-
key: "end",
|
|
192
|
-
value: function end() {
|
|
193
|
-
var _classPrivateFieldGet3, _classPrivateFieldGet4;
|
|
194
|
-
this.clearTimer();
|
|
195
|
-
_classPrivateFieldSet(_stage, this, 'showdown');
|
|
196
|
-
(_classPrivateFieldGet3 = _classPrivateFieldGet(_activePlayer, this)) === null || _classPrivateFieldGet3 === void 0 || _classPrivateFieldGet3.removeControl();
|
|
197
|
-
(_classPrivateFieldGet4 = _classPrivateFieldGet(_activePlayer, this)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.clearTimer();
|
|
198
|
-
_classPrivateFieldSet(_activePlayer, this, null);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* @description 暂停游戏
|
|
203
|
-
*/
|
|
204
|
-
}, {
|
|
205
|
-
key: "pause",
|
|
206
|
-
value: function pause() {
|
|
207
|
-
var _this$activePlayer;
|
|
208
|
-
_classPrivateFieldSet(_status, this, 'pause');
|
|
209
|
-
this.clearTimer();
|
|
210
|
-
(_this$activePlayer = this.activePlayer) === null || _this$activePlayer === void 0 || _this$activePlayer.pause();
|
|
211
|
-
}
|
|
212
|
-
}]);
|
|
213
|
-
}();
|
|
214
|
-
var _default = exports.default = Controller;
|