August 26, 2008

Starting Over

I have officially decided to start all over in Pebble, due to poor planning. Actually, it's not that the plan is bad, it's that I don't know how to program chess and I want to do it right. I honestly think that there is no "right" way to design a chess program, but there are hundreds, if not thousands, of wrong ways to do it. Using my gut and my head I will design a program that can hopefully(!), eventually beat me.

Okay, now that I'm starting over, I have to make a plan.

The main thing is the language that I will use. I plan on using C++. I'm taking a class on C++, and I have three books on how to learn the language. I think between them, and what I can find online, I will do fine.

Now for the Engine itself. Pebble. I plan on using Object-Oriented Programming, although I have no clue how to do it. Oh, well, I can learn.

The Objects I plan to use are:

Main-Basically tie Pebble together, and communicate with either Winboard or UCI protocol.

Board-Represent the state of the board. Keep track of the move history, whether or not en passant and castling are possible, and last but not least whose turn is it to move.

Definitions-This was not my idea for including this. It was actually the creator of Mediocre Chess who thought of it first. It's a good idea, and I hope that he doesn't get mad at me for using it.

Eval-Main part of the engine that handles move generation, evaluates the position, and makes a move.

So far, that's going to be it. If I think of anything else, I will possibly implement it.

No comments: