1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// SPDX-FileCopyrightText: 2024 Apricot S.
// SPDX-License-Identifier: MIT
// This file is part of https://github.com/Apricot-S/xiangting
// table[i][n][s]
// i = 0, 1, ..., N - 1 (N = 9 or 7 or 2)
// n = 0, 1, ..., 14
// s = 0, 1, 2, 3, 4
type Table<const I: usize> = ;
pub type ShupaiTable = ;
pub type ZipaiTable = ;
pub type Wanzi19Table = ;
// Value contains the following structure:
//
// 0- 1 Bits: Replacement number of 0 pair 1 melds
// 2- 4 Bits: Replacement number of 0 pair 2 melds
// 5- 8 Bits: Replacement number of 0 pair 3 melds
// 9-12 Bits: Replacement number of 0 pair 4 melds
// 13-14 Bits: Replacement number of 1 pair 0 melds
// 15-17 Bits: Replacement number of 1 pair 1 melds
// 18-21 Bits: Replacement number of 1 pair 2 melds
// 22-25 Bits: Replacement number of 1 pair 3 melds
// 26-29 Bits: Replacement number of 1 pair 4 melds
pub type ReplacementNumberMapValue = u32;
// Each element contains the following structure:
//
// Index [0]:
// 0- 8 Bits: Necessary tiles of 0 pair 1 melds
// 9-17 Bits: Necessary tiles of 0 pair 2 melds
// 18-26 Bits: Necessary tiles of 0 pair 3 melds
// 27-31 Bits: Unused
//
// Index [1]:
// 0- 8 Bits: Necessary tiles of 0 pair 4 melds
// 9-17 Bits: Necessary tiles of 1 pair 0 melds
// 18-26 Bits: Necessary tiles of 1 pair 1 melds
// 27-31 Bits: Unused
//
// Index [2]:
// 0- 8 Bits: Necessary tiles of 1 pair 2 melds
// 9-17 Bits: Necessary tiles of 1 pair 3 melds
// 18-26 Bits: Necessary tiles of 1 pair 4 melds
// 27-31 Bits: Unused
pub type NecessaryTilesMapValue = ;
// Each element contains the following structure:
//
// Index [0]:
// 0- 8 Bits: Unnecessary tiles of 0 pair 0 melds
// 9-17 Bits: Unnecessary tiles of 0 pair 1 melds
// 18-26 Bits: Unnecessary tiles of 0 pair 2 melds
// 27-31 Bits: Upper 5 bits of Unnecessary tiles of 0 pair 3 melds
//
// Index [1]:
// 0- 3 Bits: Lower 4 bits of Unnecessary tiles of 0 pair 3 melds
// 4-12 Bits: Unnecessary tiles of 0 pair 4 melds
// 13-21 Bits: Unnecessary tiles of 1 pair 0 melds
// 22-30 Bits: Unnecessary tiles of 1 pair 1 melds
// 31 Bit : Unused
//
// Index [2]:
// 0- 8 Bits: Unnecessary tiles of 1 pair 2 melds
// 9-17 Bits: Unnecessary tiles of 1 pair 3 melds
// 18-26 Bits: Unnecessary tiles of 1 pair 4 melds
// 27-31 Bits: Unused
pub type UnnecessaryTilesMapValue = ;