Aw man, that sounds like a horrible amount of work gone down the drain for you, Hardmath I don't think anything that bad has ever happened to me but I feel your pain!
I'll keep an eye on this thread and see what is suggested. I quite like the idea of a tic-tac-toe game (if there is a draw, the game could be replayed till someone wins so long as each AI has at least a little randomness in their responses).
Offline
sparks wrote:
I'll keep an eye on this thread and see what is suggested. I quite like the idea of a tic-tac-toe game (if there is a draw, the game could be replayed till someone wins so long as each AI has at least a little randomness in their responses).
Hmm... but it's not /that/ hard a game, is it? And with two reasonably proficient players, a draw is always unavoidable, isn't it?
Offline
sparks wrote:
Aw man, that sounds like a horrible amount of work gone down the drain for you, Hardmath I don't think anything that bad has ever happened to me but I feel your pain!
I'll keep an eye on this thread and see what is suggested. I quite like the idea of a tic-tac-toe game (if there is a draw, the game could be replayed till someone wins so long as each AI has at least a little randomness in their responses).
This is the first time I've ever lost any data "just like that", and trust me, it feels terrible. I'm a paranoid coder who has many copies of his work all over the system just to be safe. Anyway, I guess these things happen, and I've gotta move on.
So, about the actual competition: I'm not exactly sure what we're gonna do now... Tic-Tac-Toe is too easy, Hex is too hard. We need some sort of game which needs no framework but is hard to code. Or maybe...
Here's a crazy idea (I'm good at making up crazy ideas, bear with me please): how about we code chatbots? A chatbot "game" consists of two chatbots conversing, and the first chatbot to get stuck (repeat "What?" many times, etc.) loses. Chatbots are good AI exercises: you need to implement some sort of simplistic language processing to determine the subject of the sentence input, then construct your response based on the input. The back-end would be really easy to code: just run the chatbots and print the messages out on the console. Also, it's just plain really cool to see two computers talk to each other, you know what I mean?
Offline
blob8108 wrote:
sparks wrote:
I'll keep an eye on this thread and see what is suggested. I quite like the idea of a tic-tac-toe game (if there is a draw, the game could be replayed till someone wins so long as each AI has at least a little randomness in their responses).
Hmm... but it's not /that/ hard a game, is it? And with two reasonably proficient players, a draw is always unavoidable, isn't it?
The problem with TTT is it's too short, so you can make a reasonable "perfect" player which searches through the entire game. So all games would result in ties. Unless we decree that the second player wins if it's a tie, but then that's ugly.
Offline
Hardmath123 wrote:
Here's a crazy idea (I'm good at making up crazy ideas, bear with me please): how about we code chatbots? A chatbot "game" consists of two chatbots conversing, and the first chatbot to get stuck (repeat "What?" many times, etc.) loses. Chatbots are good AI exercises: you need to implement some sort of simplistic language processing to determine the subject of the sentence input, then construct your response based on the input. The back-end would be really easy to code: just run the chatbots and print the messages out on the console. Also, it's just plain really cool to see two computers talk to each other, you know what I mean?
How about a Turing Test?
I love chatbots. They're fun to play with/code. The best ones probably need some kind of learning element (like Cleverbot does). I hooked up a simple learning chatbot of my own design to an anonymous chatroom once, where it learnt to reply to what people said from what strangers said in reply to it (if you see what I meant). It was highly amusing
I'm not sure if JS would still be an appropriate language for this — perhaps allow any language, from Python to C to Scratch/BYOB, and communicate using a really simple socket interface? ie. write sentences separated by newlines to the socket, and recieve replies in the same format. It'd be reasonably easy to add Mesh support, too. I imagine those who still wanted to use JS could use something like node.js.
I even have a Twisted/Python/HTML/JS/CSS chat interface somewhere, which could be useful.
Persumably there'd be some kind of central server...
So, those are my thoughts — what d'you think?
Last edited by blob8108 (2012-05-27 07:09:03)
Offline
Oh, and since you were worried about people finding it too difficult — we should allow the use of frameworks like AIML that make writing chatbots as simple as writing a list of rules like
<category> <pattern>ARE YOU A CABBAGE</pattern> <template> No I am an artificial intelligence. </template> </category>
(taken from the standard-aiml package)
Also libraries like NLTK (which contains Wordnet) should be allowed.
Also this looks interesting...
Last edited by blob8108 (2012-05-27 07:29:11)
Offline
So, you liked the chatbot idea?
I like your suggestion about coding in any language: we'd support BYOB, JavaScript, and Objective-C/C. I have my own evil ways to socket connect with JS and BYOB is easy with remote sensor connections. I'd incorporate the (Obj-)C code into the BackEnd. So that takes care of the communications. I want to keep it simple so that we don't need any fancy server gunk, just a single Mac application will suffice. I'm a proficient Xcoder, I can have the Mac system up and running by June 1. Great idea!
Let's see how the others (sparks, roijac) like the idea.
Offline
Hardmath123 wrote:
So, you liked the chatbot idea?
...no, not at all.
It's kinda an interest of mine, I guess...
I like your suggestion about coding in any language: we'd support BYOB, JavaScript, and Objective-C/C.
AND PYTHON
I have my own evil ways to socket connect with JS and BYOB is easy with remote sensor connections. I'd incorporate the (Obj-)C code into the BackEnd. So that takes care of the communications. I want to keep it simple so that we don't need any fancy server gunk, just a single Mac application will suffice. I'm a proficient Xcoder, I can have the Mac system up and running by June 1. Great idea!
The "server gunk" is really not that difficult, methinks You can have a really simple protocol (just read input lines off a socket, and send your reply).
How about a Linux VPS (I still have a free ec2 instance somewhere) that hosts everyone's chatbots, and a (Python ) server that judges/runs the test. You could invite people to connect, talk to a random chatbot/human, and choose whether they thought the other guy was human or not. Then you could see whose chatbot was most human!
Offline
Have a play with this, for example! This is the Twisted/Python/HTML/JS/CSS chat interface I mentioned, hooked up to the simple learning chatbot. Have fun!
(Warning: he's rather slightly crazy/rude/offensive... )
Last edited by blob8108 (2012-05-27 10:11:34)
Offline
@whoever: don't say I didn't warn you
Offline
blob8108 wrote:
Hardmath123 wrote:
So, you liked the chatbot idea?
...no, not at all.
It's kinda an interest of mine, I guess...
...
back to the drawing board
...
I like your suggestion about coding in any language: we'd support BYOB, JavaScript, and Objective-C/C.
AND PYTHON
If you do the Python socket coding; I don't know Python.
I have my own evil ways to socket connect with JS and BYOB is easy with remote sensor connections. I'd incorporate the (Obj-)C code into the BackEnd. So that takes care of the communications. I want to keep it simple so that we don't need any fancy server gunk, just a single Mac application will suffice. I'm a proficient Xcoder, I can have the Mac system up and running by June 1. Great idea!
The "server gunk" is really not that difficult, methinks You can have a really simple protocol (just read input lines off a socket, and send your reply).
Why have a server when you can do without it?
How about a Linux VPS (I still have a free ec2 instance somewhere) that hosts everyone's chatbots, and a (Python ) server that judges/runs the test. You could invite people to connect, talk to a random chatbot/human, and choose whether they thought the other guy was human or not. Then you could see whose chatbot was most human!
Umm... I'm not sure you can judge on a scale of "humanness" that accurately.
Last edited by Hardmath123 (2012-05-27 11:38:38)
Offline
How would the contest work, then? I don't understand...
I was just thinking you'd do something like a Turing test. Like the Loebner Prize, or something.
Hardmath123 wrote:
blob8108 wrote:
Hardmath123 wrote:
So, you liked the chatbot idea?
...no, not at all.
It's kinda an interest of mine, I guess......
back to the drawing board
...
I don't get it D: What are you saying about me?
Offline
blob8108 wrote:
How would the contest work, then? I don't understand...
I was just thinking you'd do something like a Turing test. Like the Loebner Prize, or something.Hardmath123 wrote:
blob8108 wrote:
...no, not at all.
It's kinda an interest of mine, I guess......
back to the drawing board
...
I don't get it D: What are you saying about me?
I was responding to "...no, not at all". I guess I should have cut out the second line.
EDIT: So, seriously, you agree with the idea, right? Now I'm really confused...
Last edited by Hardmath123 (2012-05-27 12:05:41)
Offline
Anyway, about how the contest works (assuming people like the chatbot idea, of course):
I like the idea of a Turing Test, except I feel we're not really going to get such high-level chatbots; a bit of JS crunched up in two weeks isn't going to fool anyone. I think a better way would be to put two chatbots against each other, and run say 10 speeches by each; then judge which bot spoke better by a simple Rubric which we can come up with together. For example, they could be graded on how accurately they answered questions posed to them by the other bot.
Offline
Hardmath123 wrote:
blob8108 wrote:
Hardmath123 wrote:
...
back to the drawing board
...
I don't get it D: What are you saying about me?
I was responding to "...no, not at all". I guess I should have cut out the second line.
Ah, that makes much more sense.
EDIT: So, seriously, you agree with the idea, right? Now I'm really confused...
Yes. Yes, I do.
I like the idea of a Turing Test, except I feel we're not really going to get such high-level chatbots; a bit of JS crunched up in two weeks isn't going to fool anyone.
I think a better way would be to put two chatbots against each other, and run say 10 speeches by each; then judge which bot spoke better by a simple Rubric which we can come up with together. For example, they could be graded on how accurately they answered questions posed to them by the other bot.
Ah, but the subjectivity! :'( Coming up with a way to judge them would be really difficult...
I suppose you could have multiple categories (elegance, amusingness, convincingness) and everyone who takes part, or just anyone, could vote for their favourite in each category. Or something like that.
It's a thought!
Offline
Hardmath123 wrote:
Since nobody is really enthusiastic (or confident, whichever way you put it) about doing it on their own, how about we make 2 teams instead? Then slinger can join, too, AND I don't have to set up matches (which I personally find a very unfair way to host a tournament, since often I get stuck with the top players in the first rounds)!
Also, if I'm not mistaken, the current "maybe"s are:blob8108
sparks
rookwood101
bobbybee
roijac
Hardmath123, if you think it would be fair. I'll release the "pit against" script publicly, so anyone can rerun the match on their own to double-check.As far as the game goes, how about Hex? You play on a grid of tesselated hexagons, taking turns coloring hexagons red or blue depending on your team. Winner is the first person to get a continuous line of hexagons of his color from one edge of the board to the other.
Nice button Hardmath123. How did u get it?
Last edited by suneel (2012-05-27 13:50:30)
Offline
I'm planning on making my own board game. Any ideas?
I'm trying to make it in scratch, bulb or panther.
How do u get a signature?
Last edited by suneel (2012-05-27 13:52:54)
Offline
suneel wrote:
How do u get a signature?
Click "Profile" at the top, and choose "Personality" from the menu on the left.
Offline
suneel wrote:
Hardmath123 wrote:
Since nobody is really enthusiastic (or confident, whichever way you put it) about doing it on their own, how about we make 2 teams instead? Then slinger can join, too, AND I don't have to set up matches (which I personally find a very unfair way to host a tournament, since often I get stuck with the top players in the first rounds)!
Also, if I'm not mistaken, the current "maybe"s are:blob8108
sparks
rookwood101
bobbybee
roijac
Hardmath123, if you think it would be fair. I'll release the "pit against" script publicly, so anyone can rerun the match on their own to double-check.As far as the game goes, how about Hex? You play on a grid of tesselated hexagons, taking turns coloring hexagons red or blue depending on your team. Winner is the first person to get a continuous line of hexagons of his color from one edge of the board to the other.
Nice button Hardmath123. How did u get it?
[quote]button contents[/quote]
Offline
blob8108 wrote:
Hardmath123 wrote:
blob8108 wrote:
I don't get it D: What are you saying about me?I was responding to "...no, not at all". I guess I should have cut out the second line.
Ah, that makes much more sense.
EDIT: So, seriously, you agree with the idea, right? Now I'm really confused...
Yes. Yes, I do.
Whew.
I like the idea of a Turing Test, except I feel we're not really going to get such high-level chatbots; a bit of JS crunched up in two weeks isn't going to fool anyone.
I think a better way would be to put two chatbots against each other, and run say 10 speeches by each; then judge which bot spoke better by a simple Rubric which we can come up with together. For example, they could be graded on how accurately they answered questions posed to them by the other bot.
Ah, but the subjectivity! :'( Coming up with a way to judge them would be really difficult...
I suppose you could have multiple categories (elegance, amusingness, convincingness) and everyone who takes part, or just anyone, could vote for their favourite in each category. Or something like that.
It's a thought!
Good idea! I could post the transcripts on the forums, and we could take a vote.
Offline
Hmm... I'm not so sure about a chatbot AI. It seems like most of them are learning-based, so how would you measure whether the competition was fair? Suppose one chatbot had an entire year of "experience" talking to people, and another one didn't. I still like the idea of an AI for a game. I don't think Chess is within our capabilities, but I like the idea of some simple board game like Checkers, Reversi, or Go.
Offline
Yeah, but a game needs lots of coding for the back-end and frameworks. Besides, chatbots' data will be cleared each time I set up a conversation, so I don't see that as a problem.
Offline
Is the chatbot talking to another chatbot, or to a human? blob8108 mentioned a "turing test," where a third party looks at a log of a conversation and tries to determine which speaker is human and which is computer. If he gets it wrong, you've got a really good AI.
Offline
I vote for bot-on-bot rather than bot-on-human, because creating fair human responses to dynamically generated questions by a chatbot is not possible. Besides, imagine how cool it would be to have two programs have a conversation!
Offline