@@ -229,8 +229,7 @@ const MAPMOVEIDX: [[i32; 239]; 4] = [ [// Direction 0
229229/// The first dimension is color: Black, White and Empty.\
230230/// The second and third one are 2 x 512-bit. Direction 0 and 2 use the first 512-bit. Direction 1 and
231231/// 3 use the second 512-bit.\
232- /// Each 512-bit is a 32-bit x 16 array. Direction 0 and 1 store at bit 31-16 and Direction 2 and 3 store at bit 15-0.
233-
232+ /// Each 512-bit is a 32-bit x 16 array. Direction 0 and 1 store at bit 31-16 and Direction 2 and 3 store at bit 15-0.
234233pub struct Pos {
235234 // position
236235 state : [ Color ; SQUARE_SIZE as usize ] ,
@@ -556,7 +555,7 @@ fn search(pos: &Pos, alpha: i32, beta: i32, depth: i32, _ply: i32) -> i32 {
556555 }
557556
558557 assert_ne ! ( bm, MOVE_NONE ) ;
559- assert ! ( bs >= -EVAL_INF && bs <= EVAL_INF ) ;
558+ assert ! ( ( -EVAL_INF ..= EVAL_INF ) . contains ( & bs ) ) ;
560559
561560 if _ply == 0 { bm } else { bs } //best move at the root node, best score elsewhere
562561}
@@ -724,12 +723,12 @@ fn check_pattern5(pos: &Pos, sd: Side) -> bool {
724723 for fl in 0 ..FILE_SIZE {
725724 let sq: Square = square_make ( fl, rk) ;
726725
727- for pat in 0 .. 4 {
726+ for direction in & DIRECTION {
728727 let idx0 = sq;
729- let idx1 = sq + DIRECTION [ pat ] [ 0 ] ;
730- let idx2 = sq + DIRECTION [ pat ] [ 1 ] ;
731- let idx3 = sq + DIRECTION [ pat ] [ 2 ] ;
732- let idx4 = sq + DIRECTION [ pat ] [ 3 ] ;
728+ let idx1 = sq + direction [ 0 ] ;
729+ let idx2 = sq + direction [ 1 ] ;
730+ let idx3 = sq + direction [ 2 ] ;
731+ let idx4 = sq + direction [ 3 ] ;
733732
734733 let val0 = pos. state [ idx0 as usize ] ;
735734 let val1 = pos. state [ idx1 as usize ] ;
@@ -754,13 +753,13 @@ fn check_patternlive4(pos: &Pos, sd: Side) -> bool {
754753 for fl in 0 ..FILE_SIZE {
755754 let sq: Square = square_make ( fl, rk) ;
756755
757- for pat in 0 .. 4 {
756+ for direction in & DIRECTION {
758757 let idx0 = sq;
759- let idx1 = sq + DIRECTION [ pat ] [ 0 ] ;
760- let idx2 = sq + DIRECTION [ pat ] [ 1 ] ;
761- let idx3 = sq + DIRECTION [ pat ] [ 2 ] ;
762- let idx4 = sq + DIRECTION [ pat ] [ 3 ] ;
763- let idx5 = sq + DIRECTION [ pat ] [ 4 ] ;
758+ let idx1 = sq + direction [ 0 ] ;
759+ let idx2 = sq + direction [ 1 ] ;
760+ let idx3 = sq + direction [ 2 ] ;
761+ let idx4 = sq + direction [ 3 ] ;
762+ let idx5 = sq + direction [ 4 ] ;
764763
765764 let val0 = pos. state [ idx0 as usize ] ;
766765 let val1 = pos. state [ idx1 as usize ] ;
@@ -786,12 +785,12 @@ fn check_patterndead4(pos: &Pos, sd: Side) -> i32 {
786785 for fl in 0 ..FILE_SIZE {
787786 let sq: Square = square_make ( fl, rk) ;
788787
789- for dir in 0 .. 4 {
788+ for direction in & DIRECTION {
790789 let idx0 = sq;
791- let idx1 = sq + DIRECTION [ dir ] [ 0 ] ;
792- let idx2 = sq + DIRECTION [ dir ] [ 1 ] ;
793- let idx3 = sq + DIRECTION [ dir ] [ 2 ] ;
794- let idx4 = sq + DIRECTION [ dir ] [ 3 ] ;
790+ let idx1 = sq + direction [ 0 ] ;
791+ let idx2 = sq + direction [ 1 ] ;
792+ let idx3 = sq + direction [ 2 ] ;
793+ let idx4 = sq + direction [ 3 ] ;
795794
796795 let val0 = pos. state [ idx0 as usize ] ;
797796 let val1 = pos. state [ idx1 as usize ] ;
@@ -824,13 +823,13 @@ fn check_patternlive3(pos: &Pos, sd: Side) -> i32 {
824823 for fl in 0 ..FILE_SIZE {
825824 let sq: Square = square_make ( fl, rk) ;
826825
827- for dir in 0 .. 4 {
826+ for direction in & DIRECTION {
828827 let idx0 = sq;
829- let idx1 = sq + DIRECTION [ dir ] [ 0 ] ;
830- let idx2 = sq + DIRECTION [ dir ] [ 1 ] ;
831- let idx3 = sq + DIRECTION [ dir ] [ 2 ] ;
832- let idx4 = sq + DIRECTION [ dir ] [ 3 ] ;
833- let idx5 = sq + DIRECTION [ dir ] [ 4 ] ;
828+ let idx1 = sq + direction [ 0 ] ;
829+ let idx2 = sq + direction [ 1 ] ;
830+ let idx3 = sq + direction [ 2 ] ;
831+ let idx4 = sq + direction [ 3 ] ;
832+ let idx5 = sq + direction [ 4 ] ;
834833
835834 let val0 = pos. state [ idx0 as usize ] ;
836835 let val1 = pos. state [ idx1 as usize ] ;
0 commit comments