shogi.js 3.2.0 → 4.0.1
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/dist/dist/Color.d.ts +1 -0
- package/dist/dist/Kind.d.ts +1 -0
- package/dist/dist/shogi.d.ts +3 -3
- package/dist/shogi.js +1 -1
- package/package.json +2 -2
package/dist/dist/Color.d.ts
CHANGED
package/dist/dist/Kind.d.ts
CHANGED
package/dist/dist/shogi.d.ts
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* This software is released under the MIT License.
|
|
5
5
|
* http://opensource.org/licenses/mit-license.php
|
|
6
6
|
*/
|
|
7
|
-
import Color from "./Color";
|
|
7
|
+
import Color, { colorToString } from "./Color";
|
|
8
8
|
import IMoveDefinition from "./IMoveDefinition";
|
|
9
|
-
import { Kind } from "./Kind";
|
|
9
|
+
import { Kind, kindToString } from "./Kind";
|
|
10
10
|
import Piece from "./Piece";
|
|
11
11
|
import "./polyfills";
|
|
12
12
|
/**
|
|
@@ -167,4 +167,4 @@ export interface IMove {
|
|
|
167
167
|
kind?: Kind;
|
|
168
168
|
color?: Color;
|
|
169
169
|
}
|
|
170
|
-
export { Color, Piece, Kind, IMoveDefinition };
|
|
170
|
+
export { Color, Piece, Kind, IMoveDefinition, kindToString, colorToString };
|
package/dist/shogi.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see shogi.js.LICENSE.txt */
|
|
2
|
-
(()=>{"use strict";var t={371:(t,o)=>{var r;Object.defineProperty(o,"__esModule",{value:!0}),function(t){t[t.Black=0]="Black",t[t.White=1]="White"}(r||(r={})),o.default=r},51:(t,o,r)=>{Object.defineProperty(o,"__esModule",{value:!0});var e=r(371),n=function(){function t(t){this.color="+"===t.slice(0,1)?e.default.Black:e.default.White,this.kind=t.slice(1)}return t.promote=function(t){return{FU:"TO",KY:"NY",KE:"NK",GI:"NG",KA:"UM",HI:"RY"}[t]||t},t.unpromote=function(t){return{TO:"FU",NY:"KY",NK:"KE",NG:"GI",KI:"KI",UM:"KA",RY:"HI",OU:"OU"}[t]||t},t.canPromote=function(o){return t.promote(o)!==o},t.isPromoted=function(t){return["TO","NY","NK","NG","UM","RY"].indexOf(t)>=0},t.oppositeColor=function(t){return t===e.default.Black?e.default.White:e.default.Black},t.fromSFENString=function(o){var r="+"===o[0];r&&(o=o.slice(1));var e=new t((o.match(/[A-Z]/)?"+":"-")+{P:"FU",L:"KY",N:"KE",S:"GI",G:"KI",B:"KA",R:"HI",K:"OU"}[o.toUpperCase()]);return r&&e.promote(),e},t.prototype.promote=function(){this.kind=t.promote(this.kind)},t.prototype.unpromote=function(){this.kind=t.unpromote(this.kind)},t.prototype.inverse=function(){this.color=this.color===e.default.Black?e.default.White:e.default.Black},t.prototype.toCSAString=function(){return(this.color===e.default.Black?"+":"-")+this.kind},t.prototype.toSFENString=function(){var o={FU:"P",KY:"L",KE:"N",GI:"S",KI:"G",KA:"B",HI:"R",OU:"K"}[t.unpromote(this.kind)];return(t.isPromoted(this.kind)?"+":"")+(this.color===e.default.Black?o:o.toLowerCase())},t}();o.default=n},297:(t,o,r)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.toSfen=o.fromSfen=o.toCSA=o.fromPreset=void 0;var e=r(371),n=r(446),i=r(51);o.fromPreset=function(t,o){var r,a=[],u=[[],[]];if("OTHER"!==o.preset){for(var f=(0,n.getInitialFromPreset)(o.preset),s=0;s<9;s++){a[s]=[];for(var l=0;l<9;l++){var d=f.board[l].slice(24-3*s,24-3*s+3);a[s][l]=" * "===d?null:new i.default(d)}}r=f.turn}else{for(s=0;s<9;s++)for(a[s]=[],l=0;l<9;l++){var h=o.data.board[s][l];a[s][l]=h.kind?new i.default((h.color===e.default.Black?"+":"-")+h.kind):null}r=o.data.color;for(var c=0;c<2;c++)for(var p in o.data.hands[c])if(o.data.hands[c].hasOwnProperty(p))for(d=(0===c?"+":"-")+p,s=0;s<o.data.hands[c][p];s++)u[c].push(new i.default(d))}t.board=a,t.turn=r,t.hands=u},o.toCSA=function(t){for(var o=[],r=0;r<9;r++){for(var n="P"+(r+1),i=8;i>=0;i--){var a=t.board[i][r];n+=null==a?" * ":a.toCSAString()}o.push(n)}for(var u=0;u<2;u++){n="P"+"+-"[u];for(var f=0,s=t.hands[u];f<s.length;f++)n+="00"+s[f].kind;o.push(n)}return o.push(t.turn===e.default.Black?"+":"-"),o.join("\n")},o.fromSfen=function(t,o){for(var r=[],n=0;n<9;n++){r[n]=[];for(var a=0;a<9;a++)r[n][a]=null}var u=o.split(" "),f=u[0],s=8,l=0;for(n=0;n<f.length;n++){var d=f[n];"+"===d&&(d+=f[++n]),d.match(/^[1-9]$/)?s-=Number(d):"/"===d?(l++,s=8):(r[s][l]=i.default.fromSFENString(d),s--)}t.board=r,t.turn="b"===u[1]?e.default.Black:e.default.White;var h=[[],[]],c=u[2];if("-"!==c)for(;c.length>0;){var p=1,v=c.match(/^[0-9]+/);for(v&&(p=Number(v[0]),c=c.slice(v[0].length)),n=0;n<p;n++){var K=i.default.fromSFENString(c[0]);h[K.color].push(K)}c=c.slice(1)}t.hands=h},o.toSfen=function(t,o){for(var r=[],n=[],i=0;i<9;i++){for(var a="",u=0,f=8;f>=0;f--){var s=t.board[f][i];null==s?u++:(u>0&&(a+=""+u,u=0),a+=s.toSFENString())}u>0&&(a+=""+u),n.push(a)}if(r.push(n.join("/")),r.push(t.turn===e.default.Black?"b":"w"),0===t.hands[0].length&&0===t.hands[1].length)r.push("-");else{for(var l="",d={},h=0;h<2;h++)for(var c=0,p=t.hands[h];c<p.length;c++){var v=p[c].toSFENString();d[v]=(d[v]||0)+1}for(var K=0,I=["R","B","G","S","N","L","P","r","b","g","s","n","l","p"];K<I.length;K++){var g=I[K];d[g]>0&&(l+=(d[g]>1?d[g]:"")+g)}r.push(l)}return r.push(""+o),r.join(" ")}},333:(t,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.getMoveDefinitions=void 0;var r=[0,-1],e=[0,1],n=[1,0],i=[-1,0],a=[-1,-1],u=[1,-1],f=[-1,1],s=[1,1],l={just:[a,r,u,i,n,e]},d={FU:{just:[r]},KY:{fly:[r]},KE:{just:[[-1,-2],[1,-2]]},GI:{just:[a,r,u,f,s]},KI:l,TO:l,NY:l,NK:l,NG:l,KA:{fly:[a,u,f,s]},HI:{fly:[r,i,n,e]},OU:{just:[a,r,u,i,n,f,e,s]},UM:{fly:[a,u,f,s],just:[r,i,n,e]},RY:{fly:[r,i,n,e],just:[a,u,f,s]}};o.getMoveDefinitions=function(t){return d[t]}},31:(t,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),Array.prototype.some||(Array.prototype.some=function(t){if(null==this)throw new TypeError;var o=Object(this),r=o.length>>>0;if("function"!=typeof t)throw new TypeError;for(var e=arguments[1],n=0;n<r;n++)if(n in o&&t.call(e,o[n],n,o))return!0;return!1})},446:(t,o,r)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.getInitialFromPreset=void 0;var e=r(371),n=" * * * * * * * * * ",i=["-FU-FU-FU-FU-FU-FU-FU-FU-FU",n,n,n,"+FU+FU+FU+FU+FU+FU+FU+FU+FU"," * +KA * * * * * +HI * ","+KY+KE+GI+KI+OU+KI+GI+KE+KY"],a=[n].concat(i),u={HIRATE:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"," * -HI * * * * * -KA * "].concat(i),turn:e.default.Black},KY:{board:["-KY-KE-GI-KI-OU-KI-GI-KE * "," * -HI * * * * * -KA * "].concat(i),turn:e.default.White},KY_R:{board:[" * -KE-GI-KI-OU-KI-GI-KE-KY"," * -HI * * * * * -KA * "].concat(i),turn:e.default.White},KA:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"," * -HI * * * * * * * "].concat(i),turn:e.default.White},HI:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"," * * * * * * * -KA * "].concat(i),turn:e.default.White},HIKY:{board:["-KY-KE-GI-KI-OU-KI-GI-KE * "," * * * * * * * -KA * "].concat(i),turn:e.default.White},2:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"].concat(a),turn:e.default.White},3:{board:["-KY-KE-GI-KI-OU-KI-GI-KE * "].concat(a),turn:e.default.White},4:{board:[" * -KE-GI-KI-OU-KI-GI-KE * "].concat(a),turn:e.default.White},5:{board:[" * * -GI-KI-OU-KI-GI-KE * "].concat(a),turn:e.default.White},"5_L":{board:[" * -KE-GI-KI-OU-KI-GI * * "].concat(a),turn:e.default.White},6:{board:[" * * -GI-KI-OU-KI-GI * * "].concat(a),turn:e.default.White},"7_R":{board:[" * * * -KI-OU-KI-GI * * "].concat(a),turn:e.default.White},"7_L":{board:[" * * -GI-KI-OU-KI * * * "].concat(a),turn:e.default.White},8:{board:[" * * * -KI-OU-KI * * * "].concat(a),turn:e.default.White},10:{board:[" * * * * -OU * * * * "].concat(a),turn:e.default.White}};o.getInitialFromPreset=function(t){var o=u[t];if(!o)throw new Error("Unknown preset: ".concat(t));return o};var f=Object.keys(u);o.default=f}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var i=o[e]={exports:{}};return t[e](i,i.exports,r),i.exports}var e={};(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.Piece=t.Color=t.Shogi=void 0;var o=r(371);t.Color=o.default;var n=r(333),i=r(51);t.Piece=i.default,r(31);var a=r(297),u=function(){function t(t){this.initialize(t)}return t.getIllegalUnpromotedRow=function(t){switch(t){case"FU":case"KY":return 1;case"KE":return 2;default:return 0}},t.getRowToOppositeEnd=function(t,r){return r===o.default.Black?t:10-t},t.prototype.initialize=function(t){void 0===t&&(t={preset:"HIRATE"}),(0,a.fromPreset)(this,t),this.flagEditMode=!1},t.prototype.initializeFromSFENString=function(t){(0,a.fromSfen)(this,t)},t.prototype.toCSAString=function(){return(0,a.toCSA)(this)},t.prototype.toSFENString=function(t){return void 0===t&&(t=1),(0,a.toSfen)(this,t)},t.prototype.editMode=function(t){this.flagEditMode=t},t.prototype.move=function(o,r,e,n,i){void 0===i&&(i=!1);var a=this.get(o,r);if(null==a)throw new Error("no piece found at "+o+", "+r);if(this.checkTurn(a.color),!this.flagEditMode&&!this.getMovesFrom(o,r).some((function(t){return t.to.x===e&&t.to.y===n})))throw new Error("cannot move from "+o+", "+r+" to "+e+", "+n);null!=this.get(e,n)&&this.capture(e,n);var u=t.getIllegalUnpromotedRow(a.kind)>=t.getRowToOppositeEnd(n,a.color);(i||u)&&a.promote(),this.set(e,n,a),this.set(o,r,null),this.nextTurn()},t.prototype.unmove=function(t,o,r,e,n,a){void 0===n&&(n=!1);var u,f=this.get(r,e);if(null==f)throw new Error("no piece found at "+r+", "+e);this.checkTurn(i.default.oppositeColor(f.color)),a&&(u=this.popFromHand(i.default.unpromote(a),f.color)).inverse();var s=this.flagEditMode;this.editMode(!0),this.move(r,e,t,o),n&&f.unpromote(),a&&(i.default.isPromoted(a)&&u.promote(),this.set(r,e,u)),this.editMode(s),this.prevTurn()},t.prototype.drop=function(t,o,r,e){if(void 0===e&&(e=this.turn),this.checkTurn(e),null!=this.get(t,o))throw new Error("there is a piece at "+t+", "+o);if(!this.getDropsBy(e).some((function(e){return e.to.x===t&&e.to.y===o&&e.kind===r})))throw new Error("Cannot move");var n=this.popFromHand(r,e);this.set(t,o,n),this.nextTurn()},t.prototype.undrop=function(t,o){var r=this.get(t,o);if(null==r)throw new Error("there is no piece at "+t+", "+o);this.checkTurn(i.default.oppositeColor(r.color)),this.pushToHand(r),this.set(t,o,null),this.prevTurn()},t.prototype.getMovesFrom=function(t,r){var e=function(t,o,r){if(t<1||9<t||o<1||9<o)return!1;var e=this.get(t,o);return null==e||e.color!==r}.bind(this),i=function(t,o,r){var e=this.get(t,o);return null!=e&&e.color!==r}.bind(this),a=this.get(t,r);if(null==a)return[];var u=(0,n.getMoveDefinitions)(a.kind),f=[],s={x:t,y:r},l=a.color===o.default.Black?1:-1;if(u.just)for(var d=0,h=u.just;d<h.length;d++){var c=h[d];e((K={x:s.x+c[0]*l,y:s.y+c[1]*l}).x,K.y,a.color)&&f.push({from:s,to:K})}if(u.fly)for(var p=0,v=u.fly;p<v.length;p++){c=v[p];for(var K={x:s.x+c[0]*l,y:s.y+c[1]*l};e(K.x,K.y,a.color)&&(f.push({from:s,to:{x:K.x,y:K.y}}),!i(K.x,K.y,a.color));)K.x+=c[0]*l,K.y+=c[1]*l}return f},t.prototype.getDropsBy=function(o){for(var r=[],e=[],n=[],i=1;i<=9;i++){for(var a=!1,u=1;u<=9;u++){var f=this.get(i,u);null==f?e.push({x:i,y:u}):f.color===o&&"FU"===f.kind&&(a=!0)}n.push(a)}for(var s={},l=0,d=this.hands[o];l<d.length;l++){var h=d[l].kind;if(!s[h]){s[h]=!0;for(var c=t.getIllegalUnpromotedRow(h),p=0,v=e;p<v.length;p++){var K=v[p];"FU"===h&&n[K.x-1]||c>=t.getRowToOppositeEnd(K.y,o)||r.push({to:K,color:o,kind:h})}}}return r},t.prototype.getMovesTo=function(t,o,r,e){void 0===e&&(e=this.turn);for(var n={x:t,y:o},i=[],a=1;a<=9;a++)for(var u=1;u<=9;u++){var f=this.get(a,u);f&&f.kind===r&&f.color===e&&this.getMovesFrom(a,u).some((function(r){return r.to.x===t&&r.to.y===o}))&&i.push({from:{x:a,y:u},to:n})}return i},t.prototype.get=function(t,o){return this.board[t-1][o-1]},t.prototype.getHandsSummary=function(t){for(var o={FU:0,KY:0,KE:0,GI:0,KI:0,KA:0,HI:0},r=0,e=this.hands[t];r<e.length;r++)o[e[r].kind]++;return o},t.prototype.captureByColor=function(t,o,r){if(!this.flagEditMode)throw new Error("cannot edit board without editMode");var e=this.get(t,o);this.set(t,o,null),e.unpromote(),e.color!==r&&e.inverse(),this.pushToHand(e)},t.prototype.flip=function(t,o){if(!this.flagEditMode)throw new Error("cannot edit board without editMode");var r=this.get(t,o);return!!r&&(i.default.isPromoted(r.kind)?(r.unpromote(),r.inverse()):i.default.canPromote(r.kind)?r.promote():r.inverse(),!0)},t.prototype.setTurn=function(t){if(!this.flagEditMode)throw new Error("cannot set turn without editMode");this.turn=t},t.prototype.set=function(t,o,r){this.board[t-1][o-1]=r},t.prototype.capture=function(t,o){var r=this.get(t,o);this.set(t,o,null),r.unpromote(),r.inverse(),this.pushToHand(r)},t.prototype.pushToHand=function(t){this.hands[t.color].push(t)},t.prototype.popFromHand=function(t,o){for(var r=this.hands[o],e=0;e<r.length;e++)if(r[e].kind===t){var n=r[e];return r.splice(e,1),n}throw new Error(o+" has no "+t)},t.prototype.nextTurn=function(){this.flagEditMode||(this.turn=this.turn===o.default.Black?o.default.White:o.default.Black)},t.prototype.prevTurn=function(){this.flagEditMode||this.nextTurn()},t.prototype.checkTurn=function(t){if(!this.flagEditMode&&t!==this.turn)throw new Error("cannot move opposite piece")},t}();t.Shogi=u})(),module.exports=e})();
|
|
2
|
+
(()=>{"use strict";var t={371:(t,o)=>{var r;Object.defineProperty(o,"__esModule",{value:!0}),o.colorToString=void 0,function(t){t[t.Black=0]="Black",t[t.White=1]="White"}(r||(r={})),o.default=r,o.colorToString=function(t){switch(t){case r.Black:return"先手";case r.White:return"後手"}}},825:(t,o)=>{var r;Object.defineProperty(o,"__esModule",{value:!0}),o.kindToString=o.values=void 0,function(t){t[t.FU=0]="FU",t[t.KY=1]="KY",t[t.KE=2]="KE",t[t.GI=3]="GI",t[t.KI=4]="KI",t[t.KA=5]="KA",t[t.HI=6]="HI",t[t.OU=7]="OU",t[t.TO=8]="TO",t[t.NY=9]="NY",t[t.NK=10]="NK",t[t.NG=11]="NG",t[t.UM=12]="UM",t[t.RY=13]="RY"}(r||(r={})),o.values=Object.keys(r).filter((function(t){return Number.isNaN(parseInt(t))})),o.kindToString=function(t){return{FU:"歩",KY:"香",KE:"桂",GI:"銀",KI:"金",KA:"角",HI:"飛",OU:"玉",TO:"と",NY:"成香",NK:"成桂",NG:"成銀",UM:"馬",RY:"龍"}[t]}},51:(t,o,r)=>{Object.defineProperty(o,"__esModule",{value:!0});var e=r(371),n=function(){function t(t){this.color="+"===t.slice(0,1)?e.default.Black:e.default.White,this.kind=t.slice(1)}return t.promote=function(t){return{FU:"TO",KY:"NY",KE:"NK",GI:"NG",KA:"UM",HI:"RY"}[t]||t},t.unpromote=function(t){return{TO:"FU",NY:"KY",NK:"KE",NG:"GI",KI:"KI",UM:"KA",RY:"HI",OU:"OU"}[t]||t},t.canPromote=function(o){return t.promote(o)!==o},t.isPromoted=function(t){return["TO","NY","NK","NG","UM","RY"].indexOf(t)>=0},t.oppositeColor=function(t){return t===e.default.Black?e.default.White:e.default.Black},t.fromSFENString=function(o){var r="+"===o[0];r&&(o=o.slice(1));var e=new t((o.match(/[A-Z]/)?"+":"-")+{P:"FU",L:"KY",N:"KE",S:"GI",G:"KI",B:"KA",R:"HI",K:"OU"}[o.toUpperCase()]);return r&&e.promote(),e},t.prototype.promote=function(){this.kind=t.promote(this.kind)},t.prototype.unpromote=function(){this.kind=t.unpromote(this.kind)},t.prototype.inverse=function(){this.color=this.color===e.default.Black?e.default.White:e.default.Black},t.prototype.toCSAString=function(){return(this.color===e.default.Black?"+":"-")+this.kind},t.prototype.toSFENString=function(){var o={FU:"P",KY:"L",KE:"N",GI:"S",KI:"G",KA:"B",HI:"R",OU:"K"}[t.unpromote(this.kind)];return(t.isPromoted(this.kind)?"+":"")+(this.color===e.default.Black?o:o.toLowerCase())},t}();o.default=n},297:(t,o,r)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.toSfen=o.fromSfen=o.toCSA=o.fromPreset=void 0;var e=r(371),n=r(446),i=r(51);o.fromPreset=function(t,o){var r,u=[],a=[[],[]];if("OTHER"!==o.preset){for(var f=(0,n.getInitialFromPreset)(o.preset),l=0;l<9;l++){u[l]=[];for(var s=0;s<9;s++){var d=f.board[s].slice(24-3*l,24-3*l+3);u[l][s]=" * "===d?null:new i.default(d)}}r=f.turn}else{for(l=0;l<9;l++)for(u[l]=[],s=0;s<9;s++){var c=o.data.board[l][s];u[l][s]=c.kind?new i.default((c.color===e.default.Black?"+":"-")+c.kind):null}r=o.data.color;for(var h=0;h<2;h++)for(var p in o.data.hands[h])if(o.data.hands[h].hasOwnProperty(p))for(d=(0===h?"+":"-")+p,l=0;l<o.data.hands[h][p];l++)a[h].push(new i.default(d))}t.board=u,t.turn=r,t.hands=a},o.toCSA=function(t){for(var o=[],r=0;r<9;r++){for(var n="P"+(r+1),i=8;i>=0;i--){var u=t.board[i][r];n+=null==u?" * ":u.toCSAString()}o.push(n)}for(var a=0;a<2;a++){n="P"+"+-"[a];for(var f=0,l=t.hands[a];f<l.length;f++)n+="00"+l[f].kind;o.push(n)}return o.push(t.turn===e.default.Black?"+":"-"),o.join("\n")},o.fromSfen=function(t,o){for(var r=[],n=0;n<9;n++){r[n]=[];for(var u=0;u<9;u++)r[n][u]=null}var a=o.split(" "),f=a[0],l=8,s=0;for(n=0;n<f.length;n++){var d=f[n];"+"===d&&(d+=f[++n]),d.match(/^[1-9]$/)?l-=Number(d):"/"===d?(s++,l=8):(r[l][s]=i.default.fromSFENString(d),l--)}t.board=r,t.turn="b"===a[1]?e.default.Black:e.default.White;var c=[[],[]],h=a[2];if("-"!==h)for(;h.length>0;){var p=1,K=h.match(/^[0-9]+/);for(K&&(p=Number(K[0]),h=h.slice(K[0].length)),n=0;n<p;n++){var v=i.default.fromSFENString(h[0]);c[v.color].push(v)}h=h.slice(1)}t.hands=c},o.toSfen=function(t,o){for(var r=[],n=[],i=0;i<9;i++){for(var u="",a=0,f=8;f>=0;f--){var l=t.board[f][i];null==l?a++:(a>0&&(u+=""+a,a=0),u+=l.toSFENString())}a>0&&(u+=""+a),n.push(u)}if(r.push(n.join("/")),r.push(t.turn===e.default.Black?"b":"w"),0===t.hands[0].length&&0===t.hands[1].length)r.push("-");else{for(var s="",d={},c=0;c<2;c++)for(var h=0,p=t.hands[c];h<p.length;h++){var K=p[h].toSFENString();d[K]=(d[K]||0)+1}for(var v=0,I=["R","B","G","S","N","L","P","r","b","g","s","n","l","p"];v<I.length;v++){var g=I[v];d[g]>0&&(s+=(d[g]>1?d[g]:"")+g)}r.push(s)}return r.push(""+o),r.join(" ")}},333:(t,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.getMoveDefinitions=void 0;var r=[0,-1],e=[0,1],n=[1,0],i=[-1,0],u=[-1,-1],a=[1,-1],f=[-1,1],l=[1,1],s={just:[u,r,a,i,n,e]},d={FU:{just:[r]},KY:{fly:[r]},KE:{just:[[-1,-2],[1,-2]]},GI:{just:[u,r,a,f,l]},KI:s,TO:s,NY:s,NK:s,NG:s,KA:{fly:[u,a,f,l]},HI:{fly:[r,i,n,e]},OU:{just:[u,r,a,i,n,f,e,l]},UM:{fly:[u,a,f,l],just:[r,i,n,e]},RY:{fly:[r,i,n,e],just:[u,a,f,l]}};o.getMoveDefinitions=function(t){return d[t]}},31:(t,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),Array.prototype.some||(Array.prototype.some=function(t){if(null==this)throw new TypeError;var o=Object(this),r=o.length>>>0;if("function"!=typeof t)throw new TypeError;for(var e=arguments[1],n=0;n<r;n++)if(n in o&&t.call(e,o[n],n,o))return!0;return!1})},446:(t,o,r)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.getInitialFromPreset=void 0;var e=r(371),n=" * * * * * * * * * ",i=["-FU-FU-FU-FU-FU-FU-FU-FU-FU",n,n,n,"+FU+FU+FU+FU+FU+FU+FU+FU+FU"," * +KA * * * * * +HI * ","+KY+KE+GI+KI+OU+KI+GI+KE+KY"],u=[n].concat(i),a={HIRATE:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"," * -HI * * * * * -KA * "].concat(i),turn:e.default.Black},KY:{board:["-KY-KE-GI-KI-OU-KI-GI-KE * "," * -HI * * * * * -KA * "].concat(i),turn:e.default.White},KY_R:{board:[" * -KE-GI-KI-OU-KI-GI-KE-KY"," * -HI * * * * * -KA * "].concat(i),turn:e.default.White},KA:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"," * -HI * * * * * * * "].concat(i),turn:e.default.White},HI:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"," * * * * * * * -KA * "].concat(i),turn:e.default.White},HIKY:{board:["-KY-KE-GI-KI-OU-KI-GI-KE * "," * * * * * * * -KA * "].concat(i),turn:e.default.White},2:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"].concat(u),turn:e.default.White},3:{board:["-KY-KE-GI-KI-OU-KI-GI-KE * "].concat(u),turn:e.default.White},4:{board:[" * -KE-GI-KI-OU-KI-GI-KE * "].concat(u),turn:e.default.White},5:{board:[" * * -GI-KI-OU-KI-GI-KE * "].concat(u),turn:e.default.White},"5_L":{board:[" * -KE-GI-KI-OU-KI-GI * * "].concat(u),turn:e.default.White},6:{board:[" * * -GI-KI-OU-KI-GI * * "].concat(u),turn:e.default.White},"7_R":{board:[" * * * -KI-OU-KI-GI * * "].concat(u),turn:e.default.White},"7_L":{board:[" * * -GI-KI-OU-KI * * * "].concat(u),turn:e.default.White},8:{board:[" * * * -KI-OU-KI * * * "].concat(u),turn:e.default.White},10:{board:[" * * * * -OU * * * * "].concat(u),turn:e.default.White}};o.getInitialFromPreset=function(t){var o=a[t];if(!o)throw new Error("Unknown preset: ".concat(t));return o};var f=Object.keys(a);o.default=f}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var i=o[e]={exports:{}};return t[e](i,i.exports,r),i.exports}var e={};(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.colorToString=t.kindToString=t.Piece=t.Color=t.Shogi=void 0;var o=r(371);t.Color=o.default,Object.defineProperty(t,"colorToString",{enumerable:!0,get:function(){return o.colorToString}});var n=r(825);Object.defineProperty(t,"kindToString",{enumerable:!0,get:function(){return n.kindToString}});var i=r(333),u=r(51);t.Piece=u.default,r(31);var a=r(297),f=function(){function t(t){this.initialize(t)}return t.getIllegalUnpromotedRow=function(t){switch(t){case"FU":case"KY":return 1;case"KE":return 2;default:return 0}},t.getRowToOppositeEnd=function(t,r){return r===o.default.Black?t:10-t},t.prototype.initialize=function(t){void 0===t&&(t={preset:"HIRATE"}),(0,a.fromPreset)(this,t),this.flagEditMode=!1},t.prototype.initializeFromSFENString=function(t){(0,a.fromSfen)(this,t)},t.prototype.toCSAString=function(){return(0,a.toCSA)(this)},t.prototype.toSFENString=function(t){return void 0===t&&(t=1),(0,a.toSfen)(this,t)},t.prototype.editMode=function(t){this.flagEditMode=t},t.prototype.move=function(o,r,e,n,i){void 0===i&&(i=!1);var u=this.get(o,r);if(null==u)throw new Error("no piece found at "+o+", "+r);if(this.checkTurn(u.color),!this.flagEditMode&&!this.getMovesFrom(o,r).some((function(t){return t.to.x===e&&t.to.y===n})))throw new Error("cannot move from "+o+", "+r+" to "+e+", "+n);null!=this.get(e,n)&&this.capture(e,n);var a=t.getIllegalUnpromotedRow(u.kind)>=t.getRowToOppositeEnd(n,u.color);(i||a)&&u.promote(),this.set(e,n,u),this.set(o,r,null),this.nextTurn()},t.prototype.unmove=function(t,o,r,e,n,i){void 0===n&&(n=!1);var a,f=this.get(r,e);if(null==f)throw new Error("no piece found at "+r+", "+e);this.checkTurn(u.default.oppositeColor(f.color)),i&&(a=this.popFromHand(u.default.unpromote(i),f.color)).inverse();var l=this.flagEditMode;this.editMode(!0),this.move(r,e,t,o),n&&f.unpromote(),i&&(u.default.isPromoted(i)&&a.promote(),this.set(r,e,a)),this.editMode(l),this.prevTurn()},t.prototype.drop=function(t,o,r,e){if(void 0===e&&(e=this.turn),this.checkTurn(e),null!=this.get(t,o))throw new Error("there is a piece at "+t+", "+o);if(!this.getDropsBy(e).some((function(e){return e.to.x===t&&e.to.y===o&&e.kind===r})))throw new Error("Cannot move");var n=this.popFromHand(r,e);this.set(t,o,n),this.nextTurn()},t.prototype.undrop=function(t,o){var r=this.get(t,o);if(null==r)throw new Error("there is no piece at "+t+", "+o);this.checkTurn(u.default.oppositeColor(r.color)),this.pushToHand(r),this.set(t,o,null),this.prevTurn()},t.prototype.getMovesFrom=function(t,r){var e=function(t,o,r){if(t<1||9<t||o<1||9<o)return!1;var e=this.get(t,o);return null==e||e.color!==r}.bind(this),n=function(t,o,r){var e=this.get(t,o);return null!=e&&e.color!==r}.bind(this),u=this.get(t,r);if(null==u)return[];var a=(0,i.getMoveDefinitions)(u.kind),f=[],l={x:t,y:r},s=u.color===o.default.Black?1:-1;if(a.just)for(var d=0,c=a.just;d<c.length;d++){var h=c[d];e((v={x:l.x+h[0]*s,y:l.y+h[1]*s}).x,v.y,u.color)&&f.push({from:l,to:v})}if(a.fly)for(var p=0,K=a.fly;p<K.length;p++){h=K[p];for(var v={x:l.x+h[0]*s,y:l.y+h[1]*s};e(v.x,v.y,u.color)&&(f.push({from:l,to:{x:v.x,y:v.y}}),!n(v.x,v.y,u.color));)v.x+=h[0]*s,v.y+=h[1]*s}return f},t.prototype.getDropsBy=function(o){for(var r=[],e=[],n=[],i=1;i<=9;i++){for(var u=!1,a=1;a<=9;a++){var f=this.get(i,a);null==f?e.push({x:i,y:a}):f.color===o&&"FU"===f.kind&&(u=!0)}n.push(u)}for(var l={},s=0,d=this.hands[o];s<d.length;s++){var c=d[s].kind;if(!l[c]){l[c]=!0;for(var h=t.getIllegalUnpromotedRow(c),p=0,K=e;p<K.length;p++){var v=K[p];"FU"===c&&n[v.x-1]||h>=t.getRowToOppositeEnd(v.y,o)||r.push({to:v,color:o,kind:c})}}}return r},t.prototype.getMovesTo=function(t,o,r,e){void 0===e&&(e=this.turn);for(var n={x:t,y:o},i=[],u=1;u<=9;u++)for(var a=1;a<=9;a++){var f=this.get(u,a);f&&f.kind===r&&f.color===e&&this.getMovesFrom(u,a).some((function(r){return r.to.x===t&&r.to.y===o}))&&i.push({from:{x:u,y:a},to:n})}return i},t.prototype.get=function(t,o){return this.board[t-1][o-1]},t.prototype.getHandsSummary=function(t){for(var o={FU:0,KY:0,KE:0,GI:0,KI:0,KA:0,HI:0},r=0,e=this.hands[t];r<e.length;r++)o[e[r].kind]++;return o},t.prototype.captureByColor=function(t,o,r){if(!this.flagEditMode)throw new Error("cannot edit board without editMode");var e=this.get(t,o);this.set(t,o,null),e.unpromote(),e.color!==r&&e.inverse(),this.pushToHand(e)},t.prototype.flip=function(t,o){if(!this.flagEditMode)throw new Error("cannot edit board without editMode");var r=this.get(t,o);return!!r&&(u.default.isPromoted(r.kind)?(r.unpromote(),r.inverse()):u.default.canPromote(r.kind)?r.promote():r.inverse(),!0)},t.prototype.setTurn=function(t){if(!this.flagEditMode)throw new Error("cannot set turn without editMode");this.turn=t},t.prototype.set=function(t,o,r){this.board[t-1][o-1]=r},t.prototype.capture=function(t,o){var r=this.get(t,o);this.set(t,o,null),r.unpromote(),r.inverse(),this.pushToHand(r)},t.prototype.pushToHand=function(t){this.hands[t.color].push(t)},t.prototype.popFromHand=function(t,o){for(var r=this.hands[o],e=0;e<r.length;e++)if(r[e].kind===t){var n=r[e];return r.splice(e,1),n}throw new Error(o+" has no "+t)},t.prototype.nextTurn=function(){this.flagEditMode||(this.turn=this.turn===o.default.Black?o.default.White:o.default.Black)},t.prototype.prevTurn=function(){this.flagEditMode||this.nextTurn()},t.prototype.checkTurn=function(t){if(!this.flagEditMode&&t!==this.turn)throw new Error("cannot move opposite piece")},t}();t.Shogi=f})(),module.exports=e})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shogi.js",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"description": "simple shogi library for JavaScript",
|
|
5
5
|
"main": "dist/shogi.js",
|
|
6
6
|
"types": "dist/src/shogi.d.ts",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"ts-jest": "^27.1.3"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "d36aa65b52ced12a8560222a65bdd2a0278af1bd"
|
|
41
41
|
}
|