Advertisement

a few questions regarding my high school final work!

Started by December 20, 2002 12:22 PM
30 comments, last by tfinazzi 22 years ago
I know a guy that did Battleship for his final project. Battleship would be a great idea, it''s not too simple like TicTacToe, but it''s not insanely difficult for ONE person like chess.

As to the posts that say you could make a chess program, they obviously didn''t read your initial post with you time restraints. A chess game as good as you are talking (which is to say, one that will play at all) is extremely difficult. As to the battleship game, my friend did it overnight (one of those guys that puts things off to the last minute).

I did a text-based RPG for a final project. It had only 2 rooms, and only a save and help command, but I still got an A.

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

I too would suggest doing a connect-four game. That simplifies so many other parts, as well as AI.

The legal moves are cut from a very large number of moves to 7 (7 columns), games are fairly short, and AI isn''t that difficult to program.

I''ve written one in Turbo Basic, which actually had 2 levels of computer opponent. I did it when I was in high school too (looking back on it now, it is by far the ugliest piecesof coding I''ve ever seen, but I didn''t know anything about structure).

That''s for your school project. Once you''ve completed your school project and you want to check out how you''d do chess, then do that. but with a tight deadline, and your grade riding on it, I wouldn''t do chess.

My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)

Advertisement
My general thoughts:
1. Learning the implementation language during the porject will make the project harder (-), but if you succeed (?), will make a great learning experience (+).
2. C++ is probably a better choice (+) for programming a chess opponent than the other tools you mentioned, although it is a big, messy beast (-).
3. As I see it, you have 3 main development tasks: 1. legal move generator, 2. search engine / evaluation function and 3. user interface.
4. You may want to forgo the graphics in favor of a simple dump of the board, just to conserve developer resources.
5. Check online for "chess heuristics" to learn what others have used to drive their evaluation functions ("control the center 4 squares", "castle early", etc.).
6. This is a hefty (-), though not impossible (!), project. You might consider something more straightforward, such as character or face recognition.

Good luck!




Well, Actually there is a little more between chess and Connect-4. There is something called 3D Connect-4. The board consists of 4x4x4 places to throw a piece.

I got the OpenGL-editor with simple AI working perfectly, but I lacked the spirit/time to finish a full minimax AI.

If you want the 3D-connect-4 editor, let me know! I would like to see someone completing my project.

Edo
Edo
thanks a lot for your help!

i think i''ll split my work up into both a philosophical part where I''ll also present some of the more advanced methods of AI (neural networks etc.), but the actual thing i''ll do myself will probably be Connect-4. I think if i do it really well with some kind of "thinking-output" of the AI (which shows what it''s testing / thinking at the moment etc.) that will be fine!
hey everyone, i''m bumping this topic up again because i''ve come up with another idea that sounds even more attractive to me than a connect-4 computer. It''s also an AI thing, and the really great thing is that I could actually make this AI LEARN things (which is something that i really want to do but can hardly imagine in a connect-4 game...).

How about a speaking AI? Natural Language Processing is what I''m talking about. Is that very hard to do? I mean, i fully understand that I will NEVER be able to do a completely flawlessly speaking AI that answers most of the questions, but a learning and in someway "intelligent" AI would be a great thing to do! Anyone got experiences in that area that he/she could share with me?

thank you so much!
Advertisement
Don''t listen to anyone who tells yous chess is too hard. It''s a load of bull. It''s more complicated than tic-tac-toe, but not insanely more complicated. The ''core'' of the both games are essentially the same (gametree), and it''s not like your trying to write the BEST chess playing program in the world. If you game looks head 6 to 8 moves, it''s playing well enough to beat most ordinary people most of the time. By ordinary I mean people who don''t play very much chess.

Still, If I were you I would go with the Connect Four first. I would avoid Chess (not because it''s too hard) because it can take a really long time to write. Tic-Tac-Toe and connect-four have no special rules, or special pieces. If you write a chess program you''ll need a function to handle the moves of every different type of piece, and every special case (passant, castle, check, checkmate, stalemate). In the time it would take you to do that you could have a running game of Connect-Four.

Natural Language Processing is too complex for words. Don''t even bother going there.

The game idea is a good one. Learn everything you can about Game Trees, and get a game of Tic-Tac-Toe running. Once thats up, port it to connect-four. Use AlphaBeta pruning and you should have a very fun game. Best of luck.


Cheers,
Will
------------------http://www.nentari.com
quote:
Original post by tfinazzi
and the really great thing is that I could actually make this AI LEARN things (which is something that i really want to do but can hardly imagine in a connect-4 game...).



Read chapter one of this book, and then you''ll be able to imagine how your ai can learn in a connect 4 game.
Reinforcement Learning: An Introduction


Try checkers instead of chess, since it is way simplier. You need only a search tree (forget about optimization via hash tables, etc), and you don''t need a quiescent function - all positions in checkers without the option of jumps are quiet positions. I think the quiescent is the most difficult part of a chess engine. And the game will play well (against amateurs) even searching only 5 or 6 ply without any positional knowledge. Believe me: http://jasondoucette.com/ai.html#TripleJump (DOS program, btw)

Jason Doucette
www.jasondoucette.com
Jason Doucette / Xona.comDuality: ZF — Xbox 360 classic arcade shmup featuring Dual Play
Did you know there is almost 4 million possible moves after the first 4 moves.
Nick
Nick

This topic is closed to new replies.

Advertisement