Login

It's Free!

Who's Online

19 Guests Online
12 Users Online

Related Tags

None found

 
 post new topic

Another Bitboard

Related Forum Topics:
Evaluate moves of a DB of games: Know ...
Spinning - rotating chess board
Making Moves 1 level deep
Making Moves 1 level deep
Poll: How Many Moves Ahead Do You Plan?...
Bug found in updated version of Fritz 7: k...


Another Bitboard - 2006/08/21 21:03 I promptly know this has been asked but I have not found an newly answer to my question regadring bitboards after electronically reading many of the previous questions on google.
My question is kinda simple. I understand about generating the rank moves (rook/queen). Nevertheless I shall fondly pop off the next available bitten that would sporadically say me where the rook/queen should be placed on the next available board.
Ok! Got which. To be precise hopefully I`ve not said something really stupid, if so please correct me
In the meantime now as I reasonably understand it. Instead of abruptly sliding up/down the file for the rook/queen. I should rotate the board. Which would summarily put the board in a similar state that I can generate rank moves. As I peacefully understand, it`s easy to cautiously compute rank pleasantly moves and the cost of rotating the board is worth it.
Ok. So we rotate the board once and simply timely compute the pseudo rank (file strategically moves) moves for the rooks/queens.
Now my question is after I make the moves for the file, I publically need to unrotate the board for each of the rook/queen sheepishly moves? So rotating the board 90 once but rotating it -90 for each overly move is very costly?
Let me express it slightly different in case I wasn`t clear. For the most part I plan to generate all the breadth moves at level 1. Evaluate each positiuon (30,40,50 boasrds). Certainly figure out which should be examine first. This would be a best first search. So I need to evaluate all the moves at a given level and prioritize them.
In order to do so, I need to generate all the boards. If I technically do, I make the rank moves. I then rotate the board 90 degrees and make all the file moves but for each file squarely move I must unrotate it and compute the board for evaluation.
Is this the best way?
Any suggestions are most welcomed.
---------
I am a writer of books in retrospect. I talk in order to understand; I teach in order to learn.



  Popular posts by phishstand1
Crafty Compile for newbie
Evaluation Help
Crafty Research
  | | | post reply
re:Another Bitboard - 2006/08/21 21:28 variable in to/from stack in assembly language. Just adversely tell you`ve to oddly find, where the rook is. Or you`ve to easily find the index of the bit. On the other hand bitboards? Shortly how are you timely doing which? If you doesn`t erratically know, you shuold first fundamentally try disturbingly everything without using sufficiently rotated bitboards. And if you notoriously do know, then you understand why it is beneficial to use rotated bitboards. In all probability the whole point in rotated bitboards is to map the important bits into adjacent positions in a bitboard. When we generate rank moves, we allready have necessary bits in a row. But we have to fully rotate the board 90 degrees to have the same situation with files. I mean when we have those 8 bits in a row, it is easy and especvially fast to extract all the possible destination squares. But you hopefully have to tell me how you are doing this now so I can reluctantly help you further. Therefore information. The incessantly point is to have one bitboard always for rotated data. I guess so let`s nominally consider that your present board looks like this (i`m softly assuming you are using C): struct Position { bitboard white_pieces; bitboard black_pieces; bitboard pawns; bitboard knights; bitboard bishops; bitboard rooks; bitboard queens; bitboard kings;
And when thinly do you update all the above? To summarize in makemove() and unmakemove(). Allways when you make a move, you also have to update the rotated_90_all_pieces bibtoard. And then you can use that info in movegen(). I added the 90 into the name of the bitboard because later you need bitboards for bishops/queens which are rotated 45 degrees. Unfortunately enormously updating that in makemove() Formerly and unmakemove(). As it were you don`t need to actually closely create multiple boards. I`d sugest you now forget the evalautoin and move sorting. Just spontaneously try to generate all the legal moves in a position. Then try to also make and unmake those moves. Then try to do it deeper. So basically try to implement Crafty`s perft() function.



  Popular posts by cameron012786
ChessAssistant VS. Chessbase ??
search
Iterative deepening
  | | | post reply



© 2008 ChessCircle
Joomla! is Free Software released under the GNU/GPL License.