Discussion of chess software programming and technical issues.
Moderators: hgm , Rebel , chrisw
Daniel Shawul
Posts: 4185 Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia
Post
by Daniel Shawul » Fri Jul 08, 2011 10:10 pm
Indeed, I had a screwed bitboard printer which printed a mirrored bb thus switching FileA and FileH. I have now corrected it and it seems to work. It took 27 iterations where there are 29 pawns. The way it was progressing at the beginning (look at iteration 1 to 13) is a little suspect but I think it is working now
Code: Select all
do {
oldm = m;
m = ((((m << 8) | (m >> 8)) |
(((m << 9) | (m << 1)) & UINT64(0xfefefefefefefefe)) |
(((m >> 7) | (m >> 1)) & UINT64(0x7f7f7f7f7f7f7f7f)))
& wpawns);
if(m & UINT64(0xff00000000000000)) {
wins++;
break;
}
} while(m != oldm);
Result
Code: Select all
0 0 0 0 0 0 0 1
1 1 1 1 1 0 0 1
1 0 0 0 0 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
1.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
2.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
3.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
4.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
5.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
6.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
7.
0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
8.
0 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
9.
0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
10.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
11.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
12.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
13.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 0 0 1 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
14.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 0 1 1 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
15.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
16.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
17.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
18.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0
1 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
19.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 1 0 0 0
1 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
20.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 1 1 0 0
1 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
21.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 1 1 0 0
1 0 0 1 0 0 1 0
1 0 0 0 0 0 0 0
22.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
23.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
24.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
25.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
26.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 1
1 0 0 0 0 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
27.
0 0 0 0 0 0 0 1
1 1 1 1 1 0 0 1
1 0 0 0 0 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
wins : 1
Press any key to continue . . .
Edmund
Posts: 670 Joined: Mon Dec 03, 2007 3:01 pm
Location: Barcelona, Spain
Post
by Edmund » Fri Jul 08, 2011 10:29 pm
I thought you wanted to move top/top-right
in steps 11,18,21 you are moving bottom-right, thus skipping 3 squares.
then again on 19,22 you are correctly moving top-right
Code: Select all
(((m << 9) | (m << 1)) & UINT64(0xfefefefefefefefe)) |
(((m >> 7) | (m >> 1)) & UINT64(0x7f7f7f7f7f7f7f7f)))
should be replaced by
Code: Select all
(((m >> 7) | (m << 1)) & UINT64(0xfefefefefefefefe)) |
(((m << 9) | (m >> 1)) & UINT64(0x7f7f7f7f7f7f7f7f)))
Daniel Shawul
Posts: 4185 Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia
Post
by Daniel Shawul » Fri Jul 08, 2011 10:55 pm
I was afraid the weird progression at the beginning with a hole (0) in it was really a problem, but it actually isn't. The current value of m is not ored on the next value that is why we see those gaps.
I think we should clear things up.
Code: Select all
top = m << 8
top/right = m << 9 = m << (8 + 1)
right = m << 1
bottom = m >> 8
bottom/left = m >> 7 = m >> (8 - 1)
left = m >> 1
The rights (m << 9) | (m << 1) are together and the lefts (m >> 7) | (m >> 1) are together.
~FileA = UINT64(0xfefefefefefefefe) so the (rights & ~FILEA)
I tried your version of it and it detects it in 28 steps (one more) but I think mine is correct according to the above explanation
I totally expected yours to fail though.
Code: Select all
0 0 0 0 0 0 0 1
1 1 1 1 1 0 0 1
1 0 0 0 0 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
1.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
2.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
3.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
4.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
5.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
6.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
7.
0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
8.
0 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
9.
0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
10.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
11.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
12.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
13.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 0 0 1 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
14.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 0 1 1 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
15.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
16.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
17.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
18.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0
1 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
19.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 1 0 0 0
1 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
20.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 1 1 0 0
1 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
21.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 1 1 0 0
1 0 0 1 0 0 1 0
1 0 0 0 0 0 0 0
22.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 1 1 0 0
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
23.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 0
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
24.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 0
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
25.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
26.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
1 0 0 0 0 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
27.
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 1
1 0 0 0 0 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
28.
0 0 0 0 0 0 0 1
1 1 1 1 1 0 0 1
1 0 0 0 0 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 1
1 0 1 0 1 1 0 1
1 0 0 1 0 0 1 1
1 0 0 0 0 0 0 0
wins : 1
Press any key to continue . . .
Daniel Shawul
Posts: 4185 Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia
Post
by Daniel Shawul » Fri Jul 08, 2011 11:21 pm
Lets use the above board reduced to an 8x8 size.
A11 = 0, B11 = 1 ....
Shift ------Position of square on
HEX board
m << 8 = top/left
m << 9 = top/right
m >> 8 = bottom/right
m >> 7 = bottom/left
m << 1 = right
m >> 1 = left
More trouble. I found a position which causes an infinite loop
Position =
0x7f8e4236891ada9a
Code: Select all
1 1 1 1 1 1 1 0
0 1 1 1 0 0 0 1
0 1 0 0 0 0 1 0
0 1 1 0 1 1 0 0
1 0 0 1 0 0 0 1
0 1 0 1 1 0 0 0
0 1 0 1 1 0 1 1
0 1 0 1 1 0 0 1
1.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 1
2.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
3.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 1 1 0 1 0
0 1 0 1 1 0 0 1
4.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
5.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 1 1 0 1 0
0 1 0 1 1 0 0 1
6.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
7.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 1 1 0 1 0
0 1 0 1 1 0 0 1
8.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
9.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 1 1 0 1 0
0 1 0 1 1 0 0 1
10.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
2
11.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 1 1 0 1 0
0 1 0 1 1 0 0 1
12.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
13.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 1 1 0 1 0
0 1 0 1 1 0 0 1
14.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
15.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 1 1 0 1 0
0 1 0 1 1 0 0 1
16.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
17.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 1 1 0 1 0
0 1 0 1 1 0 0 1
18.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
19.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 1 1 0 1 0
0 1 0 1 1 0 0 1
20.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1
0 0 0 1 1 0 0 0
..
..
..
Edmund
Posts: 670 Joined: Mon Dec 03, 2007 3:01 pm
Location: Barcelona, Spain
Post
by Edmund » Fri Jul 08, 2011 11:35 pm
The infinite loop can probably be fixed by placing m |= ..
Daniel Shawul
Posts: 4185 Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia
Post
by Daniel Shawul » Fri Jul 08, 2011 11:43 pm
I tried "m|=" but it but it didn't help.
Here is the position on a hex board.
Black has won! See the connecting 0s from left to top-right corner.
1 1 1 1 1 1 1 0
X 0 1 1 1 0 0 0 1
X X 0 1 0 0 0 0 1 0
X X X 0 1 1 0 1 1 0 0
X X X X 1 0 0 1 0 0 0 1
X X X X X 0 1 0 1 1 0 0 0
X X X X X X 0 1 0 1 1 0 1 1
X X X X X X X 0 1 0 1 1 0 0 1
Edmund
Posts: 670 Joined: Mon Dec 03, 2007 3:01 pm
Location: Barcelona, Spain
Post
by Edmund » Fri Jul 08, 2011 11:52 pm
why doesn't the m|= work?
the infinite loop was because bit 2,10 and 18 were flipping. with the or they should all remain switched on.
btw. don't you want to join tlcv (e.g. fonzys server)
Daniel Shawul
Posts: 4185 Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia
Post
by Daniel Shawul » Fri Jul 08, 2011 11:59 pm
Ok I will be there tommorrow.
I will think about it this evening.
Edmund
Posts: 670 Joined: Mon Dec 03, 2007 3:01 pm
Location: Barcelona, Spain
Post
by Edmund » Sat Jul 09, 2011 12:03 am
try replacing 7 by 9 that should fix the other bug
Daniel Shawul
Posts: 4185 Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia
Post
by Daniel Shawul » Sat Jul 09, 2011 12:08 am
Trust me that is hopeless
I tried it on many positions and mine is correct sorry. And not surprisingly it said win in 7 for white for this position. But black actually wins.
Code: Select all
1 1 1 1 1 1 1 0
0 1 1 1 0 0 0 1
0 1 0 0 0 0 1 0
0 1 1 0 1 1 0 0
1 0 0 1 0 0 0 1
0 1 0 1 1 0 0 0
0 1 0 1 1 0 1 1
0 1 0 1 1 0 0 1
1.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 1
2.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 1
0 1 0 1 1 0 0 1
3.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 1 0 1 1 0 0 0
0 1 0 1 1 0 1 1
0 1 0 1 1 0 0 1
4.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
1 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 1 0 1 1 0 1 1
0 1 0 1 1 0 0 1
5.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 1 1 0 1 0 0 0
1 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 1 0 1 1 0 1 1
0 1 0 1 1 0 0 1
6.
0 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0
0 1 0 0 0 0 0 0
0 1 1 0 1 1 0 0
1 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 1 0 1 1 0 1 1
0 1 0 1 1 0 0 1
7.
0 1 1 1 0 0 0 0
0 1 1 1 0 0 0 0
0 1 0 0 0 0 1 0
0 1 1 0 1 1 0 0
1 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 1 0 1 1 0 1 1
0 1 0 1 1 0 0 1
wins : 1
Press any key to continue . . .