我想知道是否有一种有效的方法可以在 C++ 中生成一组这 4 个数字:
(0,2,1,0) ; // A
(1,2,2,0) ; // B
(2,2,3,0) ; // C
(4,1,0,3) ; // D
(4,2,5,0) ; // E
(5,1,1,3) ; // F
(5,2,6,0) ; // G
(6,1,2,3) ; // H
(6,2,7,0) ; // I
(7,1,3,3) ; // J
(8,1,4,3) ; // K
(8,2,9,0) ; // L
(9,1,5,3) ; // M
(9,2,10,0) ; // N
(10,1,6,3) ; // O
(10,2,11,0) ; // P
(11,1,7,3) ; // Q
(12,1,8,3) ; // R
(12,2,13,0) ; // S
(13,1,9,3) ; // T
(13,2,14,0) ; // U
(14,1,10,3) ; // V
(14,2,15,0) ; // W
(15,1,11,3) ; // X
(16,1,12,3) ; // Y
(16,2,17,0) ; // Z
(17,1,13,3) ; // A1
(17,2,18,0) ; // B1
(18,1,14,3) ; // C1
(18,2,19,0) ; // D1
(19,1,15,3) ; // E1
" 16 Y 12 R 8 K 4 D 0"
" Z S L E A"
" 17 A1 13 T 9 M 5 F 1"
" B1 U N G B"
" 18 C1 14 V 10 O 6 H 2"
" D1 W P I C"
" 19 E1 15 X 11 Q 7 J 3"
将上图中的数字视为一个正方形,将字母 A 到 E1 视为相邻正方形边缘的交点。在上面的列表中,每个集合 (A,B,C..) 有 4 个数字。位置 1 和 3 处的数字代表方形件数。位置 2 和 4 的数字代表方形边缘的类型(顶部 - 0 ,右侧 - 1,底部 - 2,左侧 - 3 )。第一组数字表示交点A。如上图所示,它是正方形数字0(底边--2)和正方形数字1(顶边--0)的交点。所以,A是0,2 ,1,0 。
类似地,B 是方形块 1(底部边缘 -- 2)和方形块 2(顶部边缘 -- 0)的交集。因此 B 是 (1,2,2,0)。类似地,C 是 (2,2,3,0) -- 正方形块 2(底边 - 2)和正方形块 3(顶边 - 0)的交点
问题是如何在 C++ 中生成这些数字