JustinReno Posted February 24, 2008 Share Posted February 24, 2008 I made this script a while ago, but never released because it was either too buggy or the general uselessness of it. It has the simple ability for you to tell it random things and make it learn. Still, it has a far ways to go. ***Note***: The INI structure is unique. You can add multiple inputs and outputs (If that makes sense.) To add multiple inputs, separate them by a /. To add multiple responses, separate them by a |. [brain] Hello/Hi/Hey:Whats Up?|Hello|Hi ***Note*** Feedback is appreciated. 45 Lines of code. expandcollapse popupGlobal $IniBrain = @ScriptDir & "\Artificial Intelligence Brain.ini" Global $MultipleDefinitions Global $GetInputFromBrain $GUI = GUICreate("Artificial Intelligence by Justin Reno", 364, 314) $Edit = GUICtrlCreateEdit("", 0, 0, 361, 257) $Input = GUICtrlCreateInput("", 0, 264, 361, 21) $Send = GUICtrlCreateButton("Send", 0, 288, 180, 25, 0x0001) $AddNewThing = GUICtrlCreateButton("Add New Thing", 183, 288, 180, 0) If Not FileExists($IniBrain) Then GUICtrlSetData($Edit, "Please click 'Add New Thing' to make me smarter. " & @CRLF & "I currently know nothing. :)") GUISetState(@SW_SHOW) While 1 Switch GUIGetMsg() Case - 3 Exit Case $Send If FileRead($IniBrain) <> "" Then $GetInputFromBrain = IniReadSection($IniBrain, "Brain") For $A = 1 To $GetInputFromBrain[0][0] If StringInStr($GetInputFromBrain[$A][0], "/") Then $GetIndividualInput = StringSplit($GetInputFromBrain[$A][0], "/") For $B = 1 To $GetIndividualInput[0] If GUICtrlRead($Input) = $GetIndividualInput[$B] Then If StringInStr($GetInputFromBrain[$A][1], "|") Then $GetAll = StringSplit($GetInputFromBrain[$A][1], "|") $MultipleDefinitions = $GetAll[Random(1, $GetAll[0] + 1) ] EndIf EndIf If Not GUICtrlRead($Input) = $GetIndividualInput[$B] Then GUICtrlSetData($Edit, "What?") Next If $MultipleDefinitions = "" Then GUICtrlSetData($Edit, $GetInputFromBrain[$A][1] & @CRLF) If $MultipleDefinitions <> "" Then GUICtrlSetData($Edit, $MultipleDefinitions & @CRLF) EndIf Next EndIf GUICtrlSetData($Input, "") Case $AddNewThing $GetResponse = InputBox("Artificial Intelligence", "Please type in the thing and a response. Example: Crap:Gross. Example 2: Crap:Gross|Eww|Haha. Example 3: Crap/Poop/Feces:Gross|Eww|Haha") If Not @error Then $GetBoth = StringSplit($GetResponse, ":") IniWrite($IniBrain, "Brain", $GetBoth[1], $GetBoth[2]) EndIf EndSwitch WEnd Link to comment Share on other sites More sharing options...
jackyyll Posted February 24, 2008 Share Posted February 24, 2008 This isn't really.. A.I.. It's more like writing and reading to/from a file Link to comment Share on other sites More sharing options...
uPod Posted February 25, 2008 Share Posted February 25, 2008 (edited) But he has the right idea. I'm pretty sure that the A.I. would need some sort of file to use to read and write, therefore learn. He's got a really cool concept here. Edited February 25, 2008 by uPod Link to comment Share on other sites More sharing options...
SiteMaze Posted February 25, 2008 Share Posted February 25, 2008 A.I. is a loaded word and use it reservedly. I am an engineer with Applied Statistics and I was thinking someone implemented along the lines of neural networks. Nonetheless, thanks for sharing. Arsenal Football Fan Club in Singapore Link to comment Share on other sites More sharing options...
BillLuvsU Posted February 25, 2008 Share Posted February 25, 2008 haha, nice. I was thinking of doing somting like this a while back, except I was going to implement it into a website type thing that was basically a chat room. Then I'd have it watch the conversations and pull appropite responses from that. Then see if I could get it to pas of as a human user. Then I remembered I don't have that kind of time... [center][/center]Working on the next big thing.Currently Playing: Halo 4, League of LegendsXBL GT: iRememberYhslaw Link to comment Share on other sites More sharing options...
Toady Posted February 25, 2008 Share Posted February 25, 2008 Good start, read up on The Turing Test to get a understanding if you looking to take this further. Kind of reminds me of Eliza Therapist. www.itoady.com A* (A-star) Searching Algorithm - A.I. Artificial Intelligence bot path finding Link to comment Share on other sites More sharing options...
JustinReno Posted February 26, 2008 Author Share Posted February 26, 2008 I found out and tried an experimental Turing Test on the web, and I've talked to Eliza the Therapist before. There both cool! Link to comment Share on other sites More sharing options...
Merovingian Posted October 13, 2008 Share Posted October 13, 2008 I found out and tried an experimental Turing Test on the web, and I've talked to Eliza the Therapist before. There both cool! MegaHAL is even COOLER! A.I. has always been fascinating. I wonder though, about how one would go about it seeing as AutoIt is single threaded?It would be neat to see a Port of MegaHAL or even ELIZA done in AutoIt. 01000001 01110101 01110100 01101111 01001001 01110100 00100000An immortal object must be copied, so that we get a mortal copy of it, since we try not to destroy immortal objects. Link to comment Share on other sites More sharing options...
Shafayat Posted October 13, 2008 Share Posted October 13, 2008 This is offtopic but How do I run MegaHAL? [Not using this account any more. Using "iShafayet" instead] Link to comment Share on other sites More sharing options...
Merovingian Posted October 14, 2008 Share Posted October 14, 2008 This is offtopic but How do I run MegaHAL?Go to http://megahal.alioth.debian.org/download/old/ and get the win95.zip (66Kb) for windows, extract to a folder then run megahal.exe Its a Command Line Interface (CLI) When MegaHAL is started it has no knowledge of language, and is unable to give a reply at all; the program needs to be trained using a source of text, so just start typing sentences into it... before long it will begin to reply on its own Also on the MegaHAL site there are personality files you can put into it. You might even make your own based on those.The MegaHAL Source is available on the site as well. I'm hoping someone will do an AutoIt port of it if at all possible I'd do it but I still have a lot to learn about AutoIt so it may be a whiles yet.We had it working after a fashion on Yahoo! Chat the other day as a dry beta run thru YahELite It was hilarious fun.Apologies for being Slightly offtopic... But man AI is fun! 01000001 01110101 01110100 01101111 01001001 01110100 00100000An immortal object must be copied, so that we get a mortal copy of it, since we try not to destroy immortal objects. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now