@renju-note/quintet 0.9.2 → 0.10.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/README.md CHANGED
@@ -7,14 +7,14 @@ Renju mate solver compilable to WebAssemby
7
7
  ### VCF
8
8
 
9
9
  ```
10
- $ cargo build --release --example solve_vcf
11
-
12
- $ ./target/release/examples/solve_vcf x H8,H7,F6,G7,I7,G9,G6,H6,F8,E8,F9,F7,E7,D6,H4,G5,J6,I5,J4,K5,J5,J3,J8,J7,I4,K4,K6,L7,L6,M6,I2,N7,L5,K7,M7,G4,I8,G8,K8,L8,D5,E4,F4,F3,H3,G2,
13
- E2,I10,J11,F11,G11,D9,E10,E12,F13,C10,B11,C12,D12
10
+ % cargo run --release --example solve vcf 10 x \
11
+ H8,H7,F6,G7,I7,G9,G6,H6,F8,E8,F9,F7,E7,D6,H4,G5,J6,I5,J4,K5,J5,J3,J8,J7,I4,K4,K6,L7,L6,M6,I2,N7,L5,K7,M7,G4,I8,G8,K8,L8,D5,E4,F4,F3,H3,G2,E2,I10,J11,F11,G11,D9,E10,E12,F13,C10,B11,C12,D12
12
+ Finished release [optimized] target(s) in 0.00s
13
+ Running `target/release/examples/solve vcf 10 x H8,H7,F6,G7,I7,G9,G6,H6,F8,E8,F9,F7,E7,D6,H4,G5,J6,I5,J4,K5,J5,J3,J8,J7,I4,K4,K6,L7,L6,M6,I2,N7,L5,K7,M7,G4,I8,G8,K8,L8,D5,E4,F4,F3,H3,G2,E2,I10,J11,F11,G11,D9,E10,E12,F13,C10,B11,C12,D12`
14
+ Kind: VCF
15
+ MaxDepth: 10
14
16
  Player: White
15
-
16
17
  Board:
17
-
18
18
  15 . . . . . . . . . . . . . . .
19
19
  14 . . . . . . . . . . . . . . .
20
20
  13 . . . . . o . . . . . . . . .
@@ -34,22 +34,22 @@ Board:
34
34
 
35
35
  Solving...
36
36
 
37
- Elapsed: 1.414262ms
38
- 7 times
39
- H5,I6,E6,H9,F5,E5,C8,D7,C11,C9,C14,C13,D13
37
+ Elapsed: 45.041µs
38
+ Depth: 8
39
+ Solution: G1,G3,E6,H9,H5,I6,F5,E5,C8,D7,C11,C9,C14,C13,D13
40
40
  ```
41
41
 
42
42
  ### VCT
43
43
 
44
44
  ```
45
- $ cargo build --release --example solve_vct_dfpn
46
-
47
- $ ./target/release/examples/solve_vct_dfpn x H8,I9,H7,J8,F8,H9,G9,H10,G11,F10,I10,G10,I8,J9,E10,K9,L9,G8,J10,K7,L6,K8,K6,L10,I7,J6,M9,I5,H4,F7,
48
- G6,E6,D5,F5,G4
45
+ % cargo run --release --example solve vct_dfpn 255 x \
46
+ H8,I9,H7,J8,F8,H9,G9,H10,G11,F10,I10,G10,I8,J9,E10,K9,L9,G8,J10,K7,L6,K8,K6,L10,I7,J6,M9,I5,H4,F7,G6,E6,D5,F5,G4
47
+ Finished release [optimized] target(s) in 0.03s
48
+ Running `target/release/examples/solve vct_dfpn 255 x H8,I9,H7,J8,F8,H9,G9,H10,G11,F10,I10,G10,I8,J9,E10,K9,L9,G8,J10,K7,L6,K8,K6,L10,I7,J6,M9,I5,H4,F7,G6,E6,D5,F5,G4`
49
+ Kind: VCTDFPN
50
+ MaxDepth: 255
49
51
  Player: White
50
-
51
52
  Board:
52
-
53
53
  15 . . . . . . . . . . . . . . .
54
54
  14 . . . . . . . . . . . . . . .
55
55
  13 . . . . . . . . . . . . . . .
@@ -69,9 +69,9 @@ Board:
69
69
 
70
70
  Solving...
71
71
 
72
- Elapsed: 8.763508458s
73
- 23 times
74
- K11,K10,N12,M11,N8,H5,H6,L8,J5,J7,M5,L4,M6,K5,N5,L7,J4,G7,K3,L2,M4,M3,M8,M7,N7,I6,F3,G5,G3,O1,N2,K2,F4,F6,F1,F2,J3,J2,I3,H3,N4,N6,N1,N3,K4
72
+ Elapsed: 2.370459s
73
+ Depth: 17
74
+ Solution: K11,K10,N12,M11,N8,H5,H6,L8,J5,J7,M5,L4,M6,K5,N7,N5,M4,M7,J4,I6,F3,M8,M10,I12,J11,K3,K4,J3,O8,L5,M2,M3,N1
75
75
  ```
76
76
 
77
77
  Original game: https://www.renju.net/media/games.php?gameid=92337
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "yubessy <yubessy0@gmail.com>"
5
5
  ],
6
6
  "description": "Renju mate solver compilable to WebAssemby",
7
- "version": "0.9.2",
7
+ "version": "0.10.1",
8
8
  "license": "MIT",
9
9
  "repository": {
10
10
  "type": "git",
package/quintet.d.ts CHANGED
@@ -1,29 +1,39 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  /**
4
+ * @param {number} mode
5
+ * @param {number} limit
4
6
  * @param {Uint8Array} blacks
5
7
  * @param {Uint8Array} whites
6
8
  * @param {boolean} black
7
- * @param {number} max_depth
9
+ * @param {number} threat_limit
8
10
  * @returns {Uint8Array | undefined}
9
11
  */
10
- export function solve_vcf(blacks: Uint8Array, whites: Uint8Array, black: boolean, max_depth: number): Uint8Array | undefined;
12
+ export function solve(mode: number, limit: number, blacks: Uint8Array, whites: Uint8Array, black: boolean, threat_limit: number): Uint8Array | undefined;
11
13
  /**
12
14
  * @param {Uint8Array} blacks
13
15
  * @param {Uint8Array} whites
14
16
  * @param {boolean} black
15
- * @param {number} max_depth
17
+ * @param {number} limit
16
18
  * @returns {Uint8Array | undefined}
17
19
  */
18
- export function solve_vct(blacks: Uint8Array, whites: Uint8Array, black: boolean, max_depth: number): Uint8Array | undefined;
20
+ export function solve_vcf(blacks: Uint8Array, whites: Uint8Array, black: boolean, limit: number): Uint8Array | undefined;
19
21
  /**
20
22
  * @param {Uint8Array} blacks
21
23
  * @param {Uint8Array} whites
22
24
  * @param {boolean} black
23
- * @param {number} max_depth
25
+ * @param {number} limit
24
26
  * @returns {Uint8Array | undefined}
25
27
  */
26
- export function solve_vct_dfpn(blacks: Uint8Array, whites: Uint8Array, black: boolean, max_depth: number): Uint8Array | undefined;
28
+ export function solve_vct(blacks: Uint8Array, whites: Uint8Array, black: boolean, limit: number): Uint8Array | undefined;
29
+ /**
30
+ * @param {Uint8Array} blacks
31
+ * @param {Uint8Array} whites
32
+ * @param {boolean} black
33
+ * @param {number} limit
34
+ * @returns {Uint8Array | undefined}
35
+ */
36
+ export function solve_vct_dfpn(blacks: Uint8Array, whites: Uint8Array, black: boolean, limit: number): Uint8Array | undefined;
27
37
  /**
28
38
  * @param {number} x
29
39
  * @param {number} y
package/quintet_bg.js CHANGED
@@ -29,20 +29,22 @@ function getArrayU8FromWasm0(ptr, len) {
29
29
  return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);
30
30
  }
31
31
  /**
32
+ * @param {number} mode
33
+ * @param {number} limit
32
34
  * @param {Uint8Array} blacks
33
35
  * @param {Uint8Array} whites
34
36
  * @param {boolean} black
35
- * @param {number} max_depth
37
+ * @param {number} threat_limit
36
38
  * @returns {Uint8Array | undefined}
37
39
  */
38
- export function solve_vcf(blacks, whites, black, max_depth) {
40
+ export function solve(mode, limit, blacks, whites, black, threat_limit) {
39
41
  try {
40
42
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
41
43
  var ptr0 = passArray8ToWasm0(blacks, wasm.__wbindgen_malloc);
42
44
  var len0 = WASM_VECTOR_LEN;
43
45
  var ptr1 = passArray8ToWasm0(whites, wasm.__wbindgen_malloc);
44
46
  var len1 = WASM_VECTOR_LEN;
45
- wasm.solve_vcf(retptr, ptr0, len0, ptr1, len1, black, max_depth);
47
+ wasm.solve(retptr, mode, limit, ptr0, len0, ptr1, len1, black, threat_limit);
46
48
  var r0 = getInt32Memory0()[retptr / 4 + 0];
47
49
  var r1 = getInt32Memory0()[retptr / 4 + 1];
48
50
  let v2;
@@ -60,17 +62,17 @@ export function solve_vcf(blacks, whites, black, max_depth) {
60
62
  * @param {Uint8Array} blacks
61
63
  * @param {Uint8Array} whites
62
64
  * @param {boolean} black
63
- * @param {number} max_depth
65
+ * @param {number} limit
64
66
  * @returns {Uint8Array | undefined}
65
67
  */
66
- export function solve_vct(blacks, whites, black, max_depth) {
68
+ export function solve_vcf(blacks, whites, black, limit) {
67
69
  try {
68
70
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
69
71
  var ptr0 = passArray8ToWasm0(blacks, wasm.__wbindgen_malloc);
70
72
  var len0 = WASM_VECTOR_LEN;
71
73
  var ptr1 = passArray8ToWasm0(whites, wasm.__wbindgen_malloc);
72
74
  var len1 = WASM_VECTOR_LEN;
73
- wasm.solve_vct(retptr, ptr0, len0, ptr1, len1, black, max_depth);
75
+ wasm.solve_vcf(retptr, ptr0, len0, ptr1, len1, black, limit);
74
76
  var r0 = getInt32Memory0()[retptr / 4 + 0];
75
77
  var r1 = getInt32Memory0()[retptr / 4 + 1];
76
78
  let v2;
@@ -88,17 +90,45 @@ export function solve_vct(blacks, whites, black, max_depth) {
88
90
  * @param {Uint8Array} blacks
89
91
  * @param {Uint8Array} whites
90
92
  * @param {boolean} black
91
- * @param {number} max_depth
93
+ * @param {number} limit
92
94
  * @returns {Uint8Array | undefined}
93
95
  */
94
- export function solve_vct_dfpn(blacks, whites, black, max_depth) {
96
+ export function solve_vct(blacks, whites, black, limit) {
95
97
  try {
96
98
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
97
99
  var ptr0 = passArray8ToWasm0(blacks, wasm.__wbindgen_malloc);
98
100
  var len0 = WASM_VECTOR_LEN;
99
101
  var ptr1 = passArray8ToWasm0(whites, wasm.__wbindgen_malloc);
100
102
  var len1 = WASM_VECTOR_LEN;
101
- wasm.solve_vct_dfpn(retptr, ptr0, len0, ptr1, len1, black, max_depth);
103
+ wasm.solve_vct(retptr, ptr0, len0, ptr1, len1, black, limit);
104
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
105
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
106
+ let v2;
107
+ if (r0 !== 0) {
108
+ v2 = getArrayU8FromWasm0(r0, r1).slice();
109
+ wasm.__wbindgen_free(r0, r1 * 1);
110
+ }
111
+ return v2;
112
+ } finally {
113
+ wasm.__wbindgen_add_to_stack_pointer(16);
114
+ }
115
+ }
116
+
117
+ /**
118
+ * @param {Uint8Array} blacks
119
+ * @param {Uint8Array} whites
120
+ * @param {boolean} black
121
+ * @param {number} limit
122
+ * @returns {Uint8Array | undefined}
123
+ */
124
+ export function solve_vct_dfpn(blacks, whites, black, limit) {
125
+ try {
126
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
127
+ var ptr0 = passArray8ToWasm0(blacks, wasm.__wbindgen_malloc);
128
+ var len0 = WASM_VECTOR_LEN;
129
+ var ptr1 = passArray8ToWasm0(whites, wasm.__wbindgen_malloc);
130
+ var len1 = WASM_VECTOR_LEN;
131
+ wasm.solve_vct_dfpn(retptr, ptr0, len0, ptr1, len1, black, limit);
102
132
  var r0 = getInt32Memory0()[retptr / 4 + 0];
103
133
  var r1 = getInt32Memory0()[retptr / 4 + 1];
104
134
  let v2;
package/quintet_bg.wasm CHANGED
Binary file