union{ struct{ // 順子 WORD kui:2; WORD syuntsu:1; // 1 WORD hai0:2; WORD hai1:2; WORD hai2:2; WORD __padding__:1; WORD type6:6; // 21*3=63(0x3F) /* (0) 01 23① (1) 02 2①3 (2) 03 ①23 (3) 11 13② (4) 12 1②3 (5) 13 ②13 (6) 21 12③ (7) 22 1③2 (8) 23 ③12 */ }; struct{ // 刻子 WORD kui:2; WORD syuntsu:1; // 0 WORD koutsu:1; // 1 WORD chakan:1; // 0 WORD hai_unused:2; WORD __padding__:2; WORD type7:7; // 34*3=102(0x66) /* (0) 01 23① (1) 02 2①3 (2) 03 ①23 (3) 11 13② (4) 12 1②3 (5) 13 ②13 (6) 21 12③ (7) 22 1③2 (8) 23 ③12 */ }; struct{ // 槓子 WORD kui:2; WORD syuntsu:1; // 0 WORD koutsu:1; // 0 WORD chakan:1; // 0 WORD nuki:1; // 0 WORD __padding__:2; WORD type8:8; // 136(0x88) /* (0) 01 234① (1) 02 23①4 (2) 03 ①234 (3) 11 134② (4) 12 13②4 (5) 13 ②134 (6) 21 124③ (7) 22 12③4 (8) 23 ③124 (9) 31 123④ (A) 32 12④3 (B) 33 ④123 */ }; struct{ // 加カン -> 刻子から WORD kui:2; WORD syuntsu:1; // 0 WORD koutsu:1; // 0 WORD chakan:1; // 1 WORD hai_added:2; WORD __padding__:2; WORD type7:7; // 34*3=102(0x66) /* (0) 01 23① (1) 02 2①3 (2) 03 ①23 (3) 11 13② (4) 12 1②3 (5) 13 ②13 (6) 21 12③ (7) 22 1③2 (8) 23 ③12 */ }; struct{ // 抜き WORD kui:2; // 0 WORD syuntsu:1; // 0 WORD koutsu:1; // 0 WORD chakan:1; // 0 WORD nuki:1; // 1 WORD __padding__:2; WORD type8:8; // 136(0x88) }; WORD all; };