PascalPons / connect4

Connect 4 Solver
GNU Affero General Public License v3.0
273 stars 50 forks source link

Not optimal Position.compute_winning_position #27

Closed yurkovas closed 3 years ago

yurkovas commented 3 years ago

I'm removed (commented) the possibly unnecessary code in Position.compute_winning_position:

//horizontal position_t p = (position << (HEIGHT + 1)) & (position << 2 (HEIGHT + 1)); r |= p & (position << 3 (HEIGHT + 1)); // r |= p & (position >> (HEIGHT + 1)); p = (position >> (HEIGHT + 1)) & (position >> 2 (HEIGHT + 1)); // r |= p & (position << (HEIGHT + 1)); r |= p & (position >> 3 (HEIGHT + 1));

//diagonal 1 p = (position << HEIGHT) & (position << 2 HEIGHT); r |= p & (position << 3 HEIGHT); // r |= p & (position >> HEIGHT); p = (position >> HEIGHT) & (position >> 2 HEIGHT); // r |= p & (position << HEIGHT); r |= p & (position >> 3 HEIGHT);

//diagonal 2 p = (position << (HEIGHT + 2)) & (position << 2 (HEIGHT + 2)); r |= p & (position << 3 (HEIGHT + 2)); // r |= p & (position >> (HEIGHT + 2)); p = (position >> (HEIGHT + 2)) & (position >> 2 (HEIGHT + 2)); // r |= p & (position << (HEIGHT + 2)); r |= p & (position >> 3 (HEIGHT + 2));

yurkovas commented 3 years ago

I was wrong. compute_winning_position works correctly.