Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: nitacku on November 07, 2008, 10:52:39 pm

Title: Othello with Artificial Intelligence
Post by: nitacku on November 07, 2008, 10:52:39 pm
Othello with Artificial Intelligence (as seen on uti)

I have been wanting to create an AI for Othello for a very long time, so I am finally deciding to pursue this idea. AI is something that has always fascinated me. Out of all the topics in mathematics and computer science, I find that there are 3 topics that interest me most:

Chaos Theory
Artificial Intelligence
Cellular Automaton

Getting back on topic, I will be posting to this thread as I develop the AI. So far I have already completed the engine, so all that is left is the AI. Since creating an AI is rather difficult, at least in my opinion, I have organized a tentative schedule which I believe will allow the AI to be constructed most easily.

Rules constraining the AI's movement will be developed in the following order:

1] random location
2] location yielding maximum points
3] static location offense (corners and edges)
4] static location defense
5] increase AI mobility
6] decrease opponent mobility

After all of these have been implemented, the AI will no longer be basing moves on trivial information such as maximum points, but rather it will be forcing moves onto its opponent. The first 2 stages are for development purposes only, and only exist to help lay the foundation for the real AI.

Alright, so that is the current plan. Just thought I would let everyone know, since I will be requiring quite a few testers to verse the AI for me in addition to my own limited playing ability. My final thoughts as I wrap this post up are concerning depth search and self learning. It would be sort of an ultimate goal to include self learning into the AI, but seeing as this will be programmed in basic, the limitations will probably make this impossible to implement. As with the depth of search, I will probably be limited to 2 ply, since anything greater would make the AI latency unbearable.
Title: Re: Othello with Artificial Intelligence
Post by: DJ Omnimaga on November 07, 2008, 11:26:06 pm
Interesting. I need to get familiarized with Othello. I am curious how far a BASIC AI can be pushed
Title: Re: Othello with Artificial Intelligence
Post by: nitacku on November 07, 2008, 11:32:56 pm
yes, basic is not as basic as basic seems :P

I've already created a basic AI (as seen on uti). It has the capability to move based on most points. It runs rather slow, which concerns me, since there's a ton more stuff to add. If anyone would like to help optimize or even come up with a faster solution, I will definitely use it in the AI.

I've attached what I have so far:

Reversi.8xp
This is the main program/engine. There is no code pertaining to the AI or point calculation.

Scan.8xp
This program requires the coordinates of a tile (store X coordinate to A variable, store Y coordinate to B variable) and checks to see if any points are available. If points are available, it will flip the discs and update the score.

AI.8xp
This program will calculate the optimal solution to the current board and output the solution coordinates in A & B to use with Scan.8xp
Title: Re: Othello with Artificial Intelligence
Post by: DJ Omnimaga on November 08, 2008, 12:22:02 am
cool I will check out whenever I get some time
Title: Re: Othello with Artificial Intelligence
Post by: bfr on November 09, 2008, 11:09:40 pm
Quote from: nitacku
It would be sort of an ultimate goal to include self learning into the AI

Yeah, that'd be awesome 8)

This seems like a pretty interesting project.  I'll check out the demos you have so far
Title: Re: Othello with Artificial Intelligence
Post by: metagross111 on November 15, 2008, 10:03:31 pm
AI has always fascinated me. I wonder how hard it would be to program a Pokemon AI?
Title: Re: Othello with Artificial Intelligence
Post by: simplethinker on November 15, 2008, 10:09:02 pm
What intelligence is there?  The strategies of trainers in every version I've played seem to just be picking random attacks and the pokemon brought out are just whichever has the type advantage.
Title: Re: Othello with Artificial Intelligence
Post by: metagross111 on November 15, 2008, 10:15:17 pm
actually, in R/B/Y, its totally random. but some of the advance games have an AI that isnt totally bogus. they are smart enough in the Gamecube games to use double battle strategies. although not so much in the gba games, in which plusle and minun both use helping hand >_<