# Let's build tic-tac-toe (noughts and crosses) together...

Printable View

Show 40 post(s) from this thread on one page
Page 2 of 2 First 12
• December 28th, 2011, 11:10 PM
Mr.777
Re: Let's build tic-tac-toe (noughts and crosses) together...
Hello everyone. @Tjstretch: The latest version you uploaded here, seems to have multiple errors in it. Are these errors occuring at your side too?
• December 28th, 2011, 11:24 PM
Mr.777
Re: Let's build tic-tac-toe (noughts and crosses) together...
For AI Script, i will first check the grid size. Then algorithm will start working, let's say it's my turn, so i will mark at the place whose probability of winning is more than any other box. Opponent will mark, algorithm will now check the possibility of winning of the remaining grid. There will be a method which will be called after every turn opponent makes, which will check and return the highest winning probability cell (box).

Now, how this method will work.
If the grid is empty, most probably the center one has the highest probability to win (as far as i know :P) so mark center, opponent will make his/her turn and this method will be called, initially there will be 3 main logic to implement on this.
1. Check if there is any place if opponent can win, if there is, mark the place or if it can win.
2. If 1 fails, (means no place to win for opponent), see the diagonals and parallel places for empty box to place a mark.
3. If 2 fails too, Count for the number of empty boxes, evaluate if there can be a win for either player, if yes, see the (well.... ummm... it's confusing, i guess i can't explain it here but implement :) )
• December 29th, 2011, 12:06 AM
Tjstretch
Re: Let's build tic-tac-toe (noughts and crosses) together...
@ 2cd Post Well that is certainly very impressive. , can't wait to see it implemented! The play method will always be called on your turn, and (when another bug is fixed) there will always be a spot open.

Yes, there are multiple bugs/missing functionality (Especially in the TTTBot) in the one I have, it is most certainly not complete! However it should compile without any errors (It does), if you are having issues compiling it may be because I am on java 1.7, which has some slightly different syntax.
• December 29th, 2011, 12:12 AM
Mr.777
Re: Let's build tic-tac-toe (noughts and crosses) together...
Quote:

if you are having issues compiling it may be because I am on java 1.7, which has some slightly different syntax.
Yeah i figured it out on my own :P
And sure, i will implement it as soon as i could coz i am going to have up-coming project this January first week so i will finish with this, early January.
• December 30th, 2011, 12:51 AM
Mr.777
Re: Let's build tic-tac-toe (noughts and crosses) together...
Well, after googling i found many of already developed AI algorithms for Tic Tac Toe. Why don't you use those instead of developing new? That's just a question from you, may be you have some reasons. But i want to make them clear.
• December 30th, 2011, 01:20 AM
Tjstretch
Re: Let's build tic-tac-toe (noughts and crosses) together...
Yeah, I assumed they were out there, but I didn't want to remove anyone the fun of developing an algorithm themselves. If you don't feel a need to develop a new algorithm or attempt to implement a new one, that's certainly fine. (I'm sure the ones released are pretty amazing :P)
• December 30th, 2011, 02:36 AM
Mr.777
Re: Let's build tic-tac-toe (noughts and crosses) together...
Quote:

Originally Posted by Tjstretch
Yeah, I assumed they were out there, but I didn't want to remove anyone the fun of developing an algorithm themselves. If you don't feel a need to develop a new algorithm or attempt to implement a new one, that's certainly fine. (I'm sure the ones released are pretty amazing :P)

I don't feel bad attempting to implement a new algorithm but what i thought was to use Alpha-Beta Pruning and after search i found there are already several algorithms implemented for this then why need to write our own? As said, Write Once Use Everytime you need to. So, why bothering implementing the same thing twice with just wasting time of implementing the same scenarios, conditions etc stuff :P
• December 30th, 2011, 04:16 AM
ChristopherLowe
Re: Let's build tic-tac-toe (noughts and crosses) together...
Quote:

Originally Posted by Mr.777
So, why bothering implementing the same thing twice with just wasting time of implementing the same scenarios, conditions etc stuff :P

Why bother doing anything if it has already been done? Why bother going back to the moon or taking a second look at those fuzzy patches in the telescope? It is not the end result I am interested in here; tic-tac-toe is hardly exciting. All I am interested in is if I can do it and if not then what do I need to learn.

Anyway, I have started work on my own AI and had a flash of inspiration. I am going to create an abstract bot class and implement it in several 'personality' classes. Game will use polymorphism to ask the given personality which move to make given the board as a parameter.
- Bot 1 never makes a mistake
- Bot 2 randomly makes a mistake every n turns
- Bot 3 randomly picks a square without any thought
- Bot 4 randomly picks a square but remembers options that did not work

et cetera. My idea is to have a choice of bots to play against, better yet; play bots against each other. Could even swap bots in and out of play while a round is in progress.
• December 30th, 2011, 06:58 AM
Mr.777
Re: Let's build tic-tac-toe (noughts and crosses) together...
Quote:

Why bother doing anything if it has already been done? Why bother going back to the moon or taking a second look at those fuzzy patches in the telescope? It is not the end result I am interested in here; tic-tac-toe is hardly exciting. All I am interested in is if I can do it and if not then what do I need to learn.
Fine. Going to the moon, nice, what if you can't afford going to moon? What you do is a look of previous visits or the history.
Same, if you got enough time to develop your own AI script, go on but what if you are making this for a client and it's deadline after two days and you need to complete this in the day end? Will you still write your own? Don't be such a pessimist, i just said, why bothering writing and wasting a huge time, waiting for AI scripts to implement, instead use already developed AI algorithms.
As i don't have enough time to do all this or to waste my time on already developed algorithms, one of the many things i was taught is to use already developed thing to let your work get completed.

Why do you use API's? Why don't you create your own?

I guess, this thread will get too personal. So, let these comments come to PM. Christopher if you got any comments, against this, PM me.

Thanks
• December 30th, 2011, 10:52 PM
ChristopherLowe
Re: Let's build tic-tac-toe (noughts and crosses) together...
@Mr. 777 - pm sent with an apology.

I have been too lazy to do much, but I have implemented the random bot and the perfect bot. Unfortunately, there is a problem with my algorithm for the perfect bot and it falls back to random behavior. It is not calculating the weights correctly. I will take a look at it next year.

I have also decided to put in a 'thinking time' for the bots to give them human reactions. There is an object diagram in the zip file.

Happy new year all!
Show 40 post(s) from this thread on one page
Page 2 of 2 First 12