et enkelt eksempel på kunstig intelligens med delphi array

, (computer simulerer indlæring af menneskelige lærer ved at korrigere fejl!),, kunstig intelligens (ai) er et forskud videnskabsgren, at undersøgelser proces af menneskelig tankegang og forsøg på at anvende den viden til at simulere samme proces i maskiner.som computere er langt foran i maraton af maskiner, ai anses for at være en filial af computer videnskab end den generelle videnskab.,, der har været mange forskning og udvikling inden for kunstig intelligens.inden for forskningen omfatte tale og mønstergenkendelse naturligt sprog forarbejdning, lære af tidligere erfaringer (uddannelse, ved at gøre og korrigere fejl!)i de situationer, der er begrænset, ræsonnement eller ufuldstændige oplysninger osv. ai er praktisk anvendelse i forbindelse med computerspil, ekspertsystemer, neurale netværk, robotteknik og mange andre områder inden for videnskab og teknologi,.,,, i denne artikel, vil vi forsøge at vise et meget enkelt praktisk eksempel på kunstig intelligens programmering i delphi ved hjælp af delphi arrays.jeg har valgt en nepalesisk leg, der hedder "gatta tipne khel" (dvs. sten - spil) til dette formål.vi kan se små børn at lege denne leg på legepladsen.,,, ved den måde, nepal, min nation, er en lille asiatisk land mellem indien og kina.for nylig var den største højdepunkt i nepal medier for den berygtede kongelige massakre, som hele familien til den kendelse, king blev brutalt myrdet.), på denne sten - spillet en bunke af nogle sten er holdt i jorden.en af de to aktører samler en, to eller tre småsten på et tidspunkt i hans tur, forlader den bunke for den anden spiller for at hente hans suppleant.i en ny plukker proces, en spiller, der samler de sidste sten (er) vil blive taberen, og opfordrede til et endeligt i yazd, iran.,, det primære mål med spillet er at forlade den bunke sten med 13, 9, 5 eller 1 sten (er) for modstander at vælge.,, i programmet fra flere småsten, der er 17, 21, 25, 29...osv., således at computer kunne vinde altid, hvis det ikke gør en fejltagelse.men i virkeligheden spille computer, synes at være ved at lære ved at korrigere fejl af den hidtil har spillet før.endelig finder alle sine fejl og korrigerer dem for at blive uovervindelige mester.det er computer simulerer den psykologiske indlæring af dyr, at lære ved at korrigere og ikke gentage de fejl,.,, en multidimensional række elementer (1 - 4,1 - 3) er valgt som manual for computeren at vælge småsten.instruktionsbogen indeholder fire sider med tre linjer af instrukser for at samle småsten.den første linje pålægger at vælge en enkelt sten, anden linje, pålægger at vælge 2 og tredje linje pålægger for at hente 3 småsten.i begyndelsen, edb - vælger en tilfældig side og en tilfældig række instruks om at samle småsten.når spillet færdig, hvis edb - mister spillet, de sidste instruktioner er rød markeret (slettet) og undervisningen ikke vil blive læst i fremtiden.efter at have spillet mange kampe, alle de instruktioner, der fører til en tabt kamp vil være rød markeret, og der bliver kun de instrukser, de fører til en vinder.,,, men det er nok til en beskrivelse af spillet.,, lad os springe direkte til kode nedenfor:,,, enhed enhed1;,,, grænseflade, anvendelser, vinduer, beskeder, sysutils, klasser, grafik, kontrol, formularer, dialoger,,, stdctrls, extctrls, knapper,,,,,,,,, tform1 = klasse (tform), panel1: tpanel;,, labelpeb1: tlabel;,, labelpeb2: tlabel;,, panel2: tpanel;,, panel3: tpanel;,, panel4: tpanel;,, label1: tlabel;,, combobox1: tcombobox;,, label2: tlabel;,, label3: tlabel;,, label4: tlabel;,, label5: tlabel;,, label6: tlabel;,, labeliwon: tetiket;,, labelyouwon: tlabel;,, labeltotplayed: tlabel;,, listbox1: tlistbox;,, groupbox1: tgroupbox;,, bitbtn1: tbitbtn;,, bitbtn2: tbitbtn;,, bitbtn3: tbitbtn;,, bitbtn5: tbitbtn;,, panel5: tpanel;,, labelbtn: tlabel,,, bitbtnresign: tbitbtn;,, label7: tlabel;,, procedure formcreate (afsender: tobject);,, procedure combobox1change (afsender: tobject);,, procedure bitbtnresignclick (afsender: tobject);,, procedure labelbtnclick (afsender: tobject);,, procedure bitbtn1click (afsender: tobject), private, (private erklæringer}, //procedure til at vise de resterende småsten, procedure disppebbles (denne npebs: heltal); //procedure til at nulstille variabler og mærker efter enspillet er slut, færdig, procedure; //procedure for at gøre det muligt for eller deaktivere en kontrol, procedurer manageenabling (lvalue: boolean); //procedure til at vise at vinde eller tabe beskeder, procedure messaging (denne mistede: boolean; denne op: boolean); //ægte procedure for spiller spillet, procedure learnbymistakes;, offentlig, {offentlige erklæringer},,,,,, var, form1: tform1;,,, gennemførelse,,, ($r *. dfm},,, var, playedgames, computerwon: heltal,, totpebs, remainpebs, nturn: heltal,, oldpagenum, oldlinenum: heltal, //18 mulige kombinationer af 3 cifre: 1,2 og 3 //, til at fastslå antallet af småsten at tage til computeren, apermutations: array - [1 - 6. 3] af heltal, //en bog farligtning the instruction pages(4) and lines(3 in each page) to draw the pebbles for the computer,, aPages:Array[1..4,1..3] of integer;,,, procedure TForm1.FormCreate(Sender: TObject);,, //Permutations of 1,2 and 3 in the group of 3s to fill the permutation Array,, const cPermutations='123132213231312321';,, var,, x,y: Integer;,, begin,, //Filling Permutation Array,, for x:=1 to 6 do,, for y:=1 to 3 do,, aPermutations[x,y]:=strtoInt(copy(cPermutations,(x-1)*3+y,1));,, //Filling the lines of all pages of the instruction Book (array aPages[1..4,1..3]).,, for x:=1 to 4 do , ,, for y:=1 to 3 do,, aPages[x,y]:=y;,, ComboBox1.ItemIndex:=1;,, PlayedGames:=0;,, ComputerWon:=0;,, totPebs:=17; {Default to 17 pebbles},, RemainPebs:=17; {All are intact up to Now},, end;,, procedure TForm1.DispPebbles(const nPebs:integer);,, begin,, LabelPeb1.Caption:=intToStr(nPebs);,, LabelPeb2.Caption:=LabelPeb1.Caption;,, end;,, procedure TForm1.ManageEnabling(lValue:Boolean);,, begin,, BitBtn1.Enabled:=lValue;,, BitBtn2.Enabled:=lValue;,, BitBtn3.Enabled:=lValue;,, Labelbtn.Enabled:=lValue;,, BitBtnResign.Enabled:=lValue;,, GroupBox1.Enabled:=lValue;,, if (RemainPebs<3) and (RemainPebs>0) and lValue then,, begin,, if RemainPebs<3 then BitBtn3.Enabled:=False;,, if RemainPebs<2 then BitBtn2.Enabled:=False;,, end,,, end;,, procedure TForm1.Finish;,, begin,, LabelTotPlayed.caption:=intToStr(PlayedGames);,, LabelIWon.caption:=intToStr(ComputerWon);,, LabelYouWon.caption:=intToStr(PlayedGames-ComputerWon);,, DispPebbles(strToInt(ComboBox1.Items[ComboBox1.ItemIndex]));,, totPebs:=strtoint(LabelPeb1.Caption);,, RemainPebs:=totPebs;,, ManageEnabling(True);,, ComboBox1.Enabled:=True;,, Labelbtn.Enabled:=False;,, BitBtnResign.Enabled:=False;,, end;,, procedure TForm1.ComboBox1Change(Sender: TObject);,, begin,, DispPebbles(strToInt(ComboBox1.Items[ComboBox1.ItemIndex]));,, totPebs:=strtoint(LabelPeb1.Caption);,, RemainPebs:=totPebs;,, end;,, procedure TForm1.Messaging(const lost:Boolean; const resigning:Boolean);,, begin,, inc(PlayedGames);,, MESSAGEBEEP(0);,, if lost then,, begin,, if resigning then showmessage (') op!du vandt igen!!), andet showmessage ('congratulations!du vandt!jeg erkender, at besejre! "),,,,,,, begynder, inc. (computerwon);,, showmessage ('hi!du tabte!jeg vandt kampen.!),,,,,,,,,, færdig, procedure tform1. learnbymistakes;,, var,, x, pagenum, linenum, ntemp, ntakes: heltal, begynder, hvis remainpebs < = 0, begynder, //openent tegnede de sidste sten (er).computer!. //disppebbles (0);,, messaging (falske, urigtige), udgang;,,,,, ntemp: = stikprøver (6) + 1, pagenum: = remainpebs mod 4, hvis pagenum = 0, så pagenum: = 4;,, for x: = 1 til 3, begynder, linenum: = apermutations [ntemp, x], hvis (apages [pagenum, linenum] > 0, så bryd,,,,,, hvis x > 3 - (nr. umærkede instruktioner var!alle er redmarked!!}, begynder, //virkningen af dette skridt blev kendt tidligere.men det viste sig at være dødelig, denne gang!,, //redmark denne oldlinenum af denne oldpagenum!,, apages [oldpagenum, oldlinenum] = - 99; //tabt med afgørende budskab.,, listbox1. poster. tilføje (inttostr (nturn) + «.jeg sagde "), disppebbles (remainpebs);,, messaging (sandt), udgang;,,,,, ntakes: = apages [pagenum, linenum], hvis ntakes > = remainpebs så, begynder, listbox1. poster. tilføje (inttostr (nturn) + «.jeg (edb): + inttostr (remainpebs), //, er jeg den sidste skuffe, og jeg tabte!. //redmark denne linenum af denne pagenum!,, apages [pagenum, linenum] = - 99;,, disppebbles (0);,, messaging (sand, falske), udgang;,,,,, listbox1. poster. tilføje (inttostr (nturn) + «.jeg (edb): + inttostr (ntakes), showmessage (') (pc): + inttostr (ntakes) + sten (er) for denne tur! "),,, oldpagenum: = pagenum;,, oldlinenum: = linenum;,, remainpebs: = remainpebs ntakes;,, manageenabling (korrekt), disppebbles (remainpebs);,,,,,, procedure tform1. bitbtnresignclick (afsender: tobject), begynder, inc. (playedgames);,, inc. (computerwon);,, inc. (nturn);,, listbox1. poster. tilføje (inttostr (nturn) + «.du sagde ");,, færdig,,,,,,, procedure tform1. labelbtnclick (afsender: tobject), begynder, bitbtnresign. setfocus;,, bitbtnresign. klik,,,,,,, procedure tform1. bitbtn1click (afsender: tobject), var ntaken,,,: heltal, begynder med afsender som tbitbtn gøre ntaken: = mærke;,, manageenabling (forkert), hvis (remainpebs = totpebs), begynder, combobox1. mulighed for: = falske,, listbox1.,,, nturn: = 1,,,,, andet, inc. (nturn);,, listbox1. poster. tilføje (inttostr (nturn) + «.du: "+ inttostr (ntaken), remainpebs: = remainpebs ntaken;,, disppebbles (remainpebs);,, learnbymistakes,,,,,,,.,,, en lukket fil game.zip indeholder alle foderstoffer (formularer, enheder og projekt - fil) af projektet i dette spil.dette projekt blev udarbejdet og løbe med delphi - 3.,,, på det sidste for interesserede venner:,, jeg har planlagt et spil af strategiske overvejelser, at anvende principperne for kunstig intelligens.kampen er på en eller anden måde som skak.,, spillet var programmeret med powerbasic og samling af sprog.denne kamp er vundet førstepræmien i første nepal software, konkurrence, software opfylder 2000.kampen kan hentes på http: //: www.viewnepal.com/gamezip.exe (en selvstændig udvinding af pkzip fil).jeg vil være glad for at fremlægge en kopi via e - mail, hvis overførslen ikke arbejde.,,, game.zip,



Previous:
Next Page: