@@ -229,8 +229,7 @@ const MAPMOVEIDX: [[i32; 239]; 4] = [ [// Direction 0
229
229
/// The first dimension is color: Black, White and Empty.\
230
230
/// The second and third one are 2 x 512-bit. Direction 0 and 2 use the first 512-bit. Direction 1 and
231
231
/// 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.
234
233
pub struct Pos {
235
234
// position
236
235
state : [ Color ; SQUARE_SIZE as usize ] ,
@@ -473,6 +472,7 @@ fn gen_moves(list: &mut List, pos: &Pos) {
473
472
}
474
473
475
474
/// AI: use Minimax search with alpha-beta pruning
475
+ #[ allow( clippy:: manual_range_contains) ]
476
476
fn search ( pos : & Pos , alpha : i32 , beta : i32 , depth : i32 , _ply : i32 ) -> i32 {
477
477
assert ! ( -EVAL_INF <= alpha && alpha < beta && beta <= EVAL_INF ) ;
478
478
// leaf?
@@ -724,12 +724,12 @@ fn check_pattern5(pos: &Pos, sd: Side) -> bool {
724
724
for fl in 0 ..FILE_SIZE {
725
725
let sq: Square = square_make ( fl, rk) ;
726
726
727
- for pat in 0 .. 4 {
727
+ for direction in & DIRECTION {
728
728
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 ] ;
729
+ let idx1 = sq + direction [ 0 ] ;
730
+ let idx2 = sq + direction [ 1 ] ;
731
+ let idx3 = sq + direction [ 2 ] ;
732
+ let idx4 = sq + direction [ 3 ] ;
733
733
734
734
let val0 = pos. state [ idx0 as usize ] ;
735
735
let val1 = pos. state [ idx1 as usize ] ;
@@ -754,13 +754,13 @@ fn check_patternlive4(pos: &Pos, sd: Side) -> bool {
754
754
for fl in 0 ..FILE_SIZE {
755
755
let sq: Square = square_make ( fl, rk) ;
756
756
757
- for pat in 0 .. 4 {
757
+ for direction in & DIRECTION {
758
758
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 ] ;
759
+ let idx1 = sq + direction [ 0 ] ;
760
+ let idx2 = sq + direction [ 1 ] ;
761
+ let idx3 = sq + direction [ 2 ] ;
762
+ let idx4 = sq + direction [ 3 ] ;
763
+ let idx5 = sq + direction [ 4 ] ;
764
764
765
765
let val0 = pos. state [ idx0 as usize ] ;
766
766
let val1 = pos. state [ idx1 as usize ] ;
@@ -786,12 +786,12 @@ fn check_patterndead4(pos: &Pos, sd: Side) -> i32 {
786
786
for fl in 0 ..FILE_SIZE {
787
787
let sq: Square = square_make ( fl, rk) ;
788
788
789
- for dir in 0 .. 4 {
789
+ for direction in & DIRECTION {
790
790
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 ] ;
791
+ let idx1 = sq + direction [ 0 ] ;
792
+ let idx2 = sq + direction [ 1 ] ;
793
+ let idx3 = sq + direction [ 2 ] ;
794
+ let idx4 = sq + direction [ 3 ] ;
795
795
796
796
let val0 = pos. state [ idx0 as usize ] ;
797
797
let val1 = pos. state [ idx1 as usize ] ;
@@ -824,13 +824,13 @@ fn check_patternlive3(pos: &Pos, sd: Side) -> i32 {
824
824
for fl in 0 ..FILE_SIZE {
825
825
let sq: Square = square_make ( fl, rk) ;
826
826
827
- for dir in 0 .. 4 {
827
+ for direction in & DIRECTION {
828
828
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 ] ;
829
+ let idx1 = sq + direction [ 0 ] ;
830
+ let idx2 = sq + direction [ 1 ] ;
831
+ let idx3 = sq + direction [ 2 ] ;
832
+ let idx4 = sq + direction [ 3 ] ;
833
+ let idx5 = sq + direction [ 4 ] ;
834
834
835
835
let val0 = pos. state [ idx0 as usize ] ;
836
836
let val1 = pos. state [ idx1 as usize ] ;
0 commit comments