Dark Chess 960 0.1
Dark Chess 960 is a chess game which has a randomized starting position and 'fog of war'.
A great deal of research has been done in writing chess-playing computer programs of various kinds. Almost all of this research, however, has been in chess and variations of chess which involve complete knowledge of the board. I thought it would be cool to try writing a computer player for a variation of the game where there is incomplete knowledge. Thus, a variant of chess called Dark Chess 960. A combination of Dark Chess and Chess 960.
Simply, the rules are as normal chess, but where certain information is hidden from you. So-called "Fog of War". You can only see your own pieces, as well as any square that any of your pieces can move to. Your vision is updated at the beginning of each turn. Because you can't see where your opponent's pieces are, you don't know if you're in check. As such the game has no concept of 'check'! Instead, the objective is to capture the enemy king. If you do this, you win instantly. Thus, safeguarding your king is extremely important.
Additionally, as per the rules of Chess 960, the position of your pieces is randomized along the home row at the start of the game. You and your opponent's pieces always start in the same positions though, so you know where his king and all his pieces are at the start of the game. Castling is not allowed, at least for now. It may be added in a future version.
The computer does not cheat in this game! It only has the same information as you have when deciding where to move. It must plan out its moves carefully, based on where it thinks you might have moved, just as you do with it. As its vision is updated, it tries to deduce where your pieces might be, just as you do. The computer isn't great at playing, yet, but it's much much better than any other non-cheating Dark Chess implementation I've seen! It can often beat me when I play against it casually. It also tends to be a little slow to move sometimes, and uses a lot of memory, especially toward the end of the game.