C Board  

Go Back   C Board > Community Boards > Contests Board

Reply
 
LinkBack Thread Tools Display Modes
Old 07-02-2005, 08:14 AM   #1
Registered User
 
Join Date: Aug 2001
Posts: 244
chess ai contest

well some ppl already had the idea for a chess ai contest.
i think that would be an interesting and challenging contest.

goal:
.) so the goal would simply be to create a chess ai routine.
.) the different ai versions would fight each other over internet.
.) winner is the ai version with most wins.


end of the contest:
31st september 2005

the interface:
in order for letting different ai versions fight each other some conventions must be followed.

so every participant MUST use the following definitions in order to provide an common interface:

THEY MUST BE C-STYLE IN ORDER TO HAVE A COMMON INTERFACE BETWEEN PARTICIPANTS WHO SOLVE THAT PROBLEM IN C AND THOSE WHO SOLVE IT IN C++.

typedef enum _EChessMan {
CM_NONE, // indicates empty field
CM_PAWN,
CM_KNIGHT,
CM_BISHOP,
CM_ROOK,
CM_QUEEN,
CM_KING
}ChessMan;


typedef enum _Move {
unsigned char x_from;
unsigned char y_from;
unsigned char x_to;
unsigned char y_to;
}Move;

thus the chess_ai_function prototype looks like:
Code:
Move chess_ai_function(EChessMan board[][]);
THE CHESS AI FUNCTION DEFINITION ITSELF MUST BE C-STYLE
the internals though can be c++.

the participants may give any name to "chess_ai_function" but they MUST
use the return type and the argument type specified here.

the fight:
in order to determine the winner of the contest the ai routines are passes to a test environment.
all this environment does is
1) initialize a chess board
2) consult the ai routines of 2 participants in turn
3) check if they return valid moves (if not: abort, the ai which produced to invalid move automatically loses)
4) update the chess board
5) goto 2 until someone wins or there were more than 1000 moves
(this move limit is neccessariy in order to prevent endless loops)

so... what do you think?
__________________
signature under construction

Last edited by Raven Arkadon; 07-02-2005 at 08:17 AM.
Raven Arkadon is offline   Reply With Quote
Old 07-07-2005, 03:50 PM   #2
Registered User
 
Join Date: Aug 2001
Posts: 244
lol, ok, due to lack of response i guess noone thinks this is a good idea ^^
__________________
signature under construction
Raven Arkadon is offline   Reply With Quote
Old 07-07-2005, 05:08 PM   #3
VA National Guard
 
The Brain's Avatar
 
Join Date: May 2004
Location: Manassas, VA USA
Posts: 902
didn't see this thread.. otherwise i'd be all over this.
__________________
  • "Problem Solving C++, The Object of Programming" -Walter Savitch
  • "Data Structures and Other Objects using C++" -Walter Savitch
  • "Assembly Language for Intel-Based Computers" -Kip Irvine
  • "Programming Windows, 5th edition" -Charles Petzold
  • "Visual C++ MFC Programming by Example" -John E. Swanke
  • "Network Programming Windows" -Jones/Ohlund
  • "Sams Teach Yourself Game Programming in 24 Hours" -Michael Morrison
  • "Mathmatics for 3D Game Programming & Computer Graphics" -Eric Lengyel
The Brain is offline   Reply With Quote
Old 07-08-2005, 12:50 PM   #4
Registered User
 
Join Date: Aug 2001
Posts: 244
hmm.. could all people who read this thread post a comment plz?
ignore the my first post about the dead line and the coding conventions

just tell me wheter you think this a good idea or not
so if enough ppl think is a nice idea i would make the rules more clear

also, if you dont like chess but you know another game (e.g. checkers) youd like to write an ai for, tell me too.

basically i want an ai contest for a game which does not depend 90% on luck (like basically all card games do).
__________________
signature under construction
Raven Arkadon is offline   Reply With Quote
Old 07-08-2005, 01:46 PM   #5
Tropical Coder
 
Darryl's Avatar
 
Join Date: Mar 2005
Location: Cayman Islands
Posts: 503
Quote:
the different ai versions would fight each other over internet.
Are you saying we build a chess client that connects to a server/peer?
If so, a person could make it any language as long as they followed whatever protocol was developed? Also, How would you check against cheating, instead of AI, I could create a client where I could move manually. I am quite a strong player and could easily beat most low level AI.

Quote:
5) goto 2 until someone wins or there were more than 1000 moves
(this move limit is neccessariy in order to prevent endless loops)
Chess already has rules to prevent this kind of thing, ie. repeating same position 3 times with same side to move, insufficient mating material, 50 moves without progress.

While doing a chess AI would be challenging, there are so many already available, it would be difficult verifying original work.

Also, can a person use an open book?

In general, I think a chess framework would have to be created, which then the contestants anc overide a basic player class to implement their AI
Darryl is offline   Reply With Quote
Old 07-08-2005, 02:28 PM   #6
VA National Guard
 
The Brain's Avatar
 
Join Date: May 2004
Location: Manassas, VA USA
Posts: 902
Quote:
In general, I think a chess framework would have to be created, which then the contestants anc overide a basic player class to implement their AI

good call
__________________
  • "Problem Solving C++, The Object of Programming" -Walter Savitch
  • "Data Structures and Other Objects using C++" -Walter Savitch
  • "Assembly Language for Intel-Based Computers" -Kip Irvine
  • "Programming Windows, 5th edition" -Charles Petzold
  • "Visual C++ MFC Programming by Example" -John E. Swanke
  • "Network Programming Windows" -Jones/Ohlund
  • "Sams Teach Yourself Game Programming in 24 Hours" -Michael Morrison
  • "Mathmatics for 3D Game Programming & Computer Graphics" -Eric Lengyel
The Brain is offline   Reply With Quote
Old 07-08-2005, 07:02 PM   #7
Registered User
 
Join Date: Aug 2001
Posts: 244
yep - there definitely needs to be a framework.
actually i was thinking of a callback function.
of course that one can be attached to a net interface.


since participants must submit their code anyway it should be easy to find out if someone cheats.
(like if someone submits code that keeps moving units randomly it would be strange if suddenly the units are moved strategically)

also: there could be a time limit: e.g. clients have to respond within 8 seconds.
but that of course would be unfair for ppl with slower comps
(since their ai routines would have to take fewer possible moves into account than on a faster comp).


of course an opening book can be used.


edit: if enough players sign up, id do the framework
__________________
signature under construction
Raven Arkadon is offline   Reply With Quote
Old 07-09-2005, 06:38 AM   #8
VOX
Deleting...
 
VOX's Avatar
 
Join Date: Oct 2004
Location: VA
Posts: 94
I am interested, but it seems that we are limited to C and C++? There should be a framework of some kind that allows C, C++, or C# implementation.

Or allow us to write a program ourselves that can set up and show the game board, and basically have a random game you can watch each time you start, using your AI.
__________________
Boy you stink, go take a shower before you continue to code. Better do your laundry and spray your chair too.

The one and only resource for finding information.

Next version of windows released!!!!
VOX is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Action Game - AI Contest Queatrix Contests Board 4 01-18-2007 06:55 PM
YACC (yet another chess contest) IfYouSaySo Contests Board 4 12-10-2005 02:41 AM
New AI contest: sign up Sang-drax Contests Board 20 07-27-2005 05:54 PM
AI Contest Proposal MadCow257 Contests Board 4 03-13-2005 03:27 PM
Ultra chess engine contest yodacpp Projects and Job Recruitment 8 11-21-2004 07:58 AM


All times are GMT -6. The time now is 12:28 AM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0 RC2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22