Spiel mit min/max wie mache ich das???
-
Wie mache ich ein programm das tic tac toe spielt und mit Min max funktioniert bin für jeden ratschlak offen. Bitte um hilfe. Danke im voraus.
-
Was erwartest Du eigentlich als Antwort?
Einen kompletten Quellcode?
Wie schon im anderen Thread von mir gesagt... Dame oder Schach würden sich besser eignen. Tic-Tac-Toe ist eigentlich nicht tief genug für irgendwelche tollen großen Algorithmen.
-
Nun ich habe so eine aufgabe bekommen und ich weis nicht wie ich anfgen soll?? Nun ich habe bekonnen den kanzen baum von TIC TAC TOE zu zeichen sind ungefehr 5000 kompinationen (ich habe es mit binominalkoefizienten berechnet). Nun als ich beim kritzeln war habe ich bemmerkt das manchen kompinationen symetrisch sind. Das veringert die anzahl deutlich. Danach habe ich mir überlegt wie ich die kompinationen weiter verkurzen kann. Antord wenn XXX oder OOO ist hat es kein sin weitere kompinationen aus dieser wurzel zu ziehen. Nun jetzt benete ich grande alle kompination im 4 zug noch 11 kompinationen für diesen zug. Nun wenn ich vertich bin wie soll ich weiter machen. Ich weis nur das die min max theory sagt maximise you and niminaise your partner. Nicht mehr und nicht weniger. Deshalb bin ich für jeden ratschlag offen. Nun ich will nicht das jemand ein programm für mich schreibt auser er hat eins schon fertich. Wie soll ich weitermachen und noch ne dumme frage. Kann ich objekte/classen in c programmieren bitte helft mir!!! Ich muus TIC TAC TOE unbedingt min MIN MAX schreiben!!!
-
Ist der Text ernst gemeint oder kannst du nicht so gut Deutsch? (Was jetzt ne ernste Frage ist und keine Beleidigung sein soll).
-
http://www.google.de/search?q=KI+minimax+tic+tac+toe&hl=de&lr=&ie=UTF-8&oe=UTF-8&start=10&sa=N
bringt etliche treffer
hab mal grob drüber geschaut es sollte alles "theoretisches" dabei sein was du brauchst...
bye
tt
-
mein Gott sind wir hier im Kindergarten? Drück dich verständlich aus oder meinst du die ganzen Forumuser sind nur minderbemittelte Idioten? Ich bin mir sehr sicher, dass das Absicht ist...kennt ein Ausländer das Wort "kritzeln"?
-
Was spricht dagegen, dass ein Ausländer das Wort "kritzeln" kennt? Er könnte es doch bei einem Gespräch gelernt haben. Wenn Deutsch seine Muttersprache ist, dann sollte er mal was an seiner Rechtschriebung ändern. Aber das glaube ich nicht, denn er schreibt zum Beispiel "Kombinationen" immer auf die selbe Art und Weise falsch. Wenn es nur dieses eine Wort wäre, dann könnte es auch ein Deutscher sein, der dieses Wort nicht richtig schreiben kann. Aber man findet auch Wörter, die er anscheinend noch nie im Unterricht (falls er überhaupt welchen hat) schreiben musste, und die hat er dann so geschrieben, wie sie (umgangssprachlich) ausgesprochen werden.
User, die sich direkt beleidigend über die Rechtschreibung anderer beschweren, kann ich nicht verstehen.
-
Meinst du jemand beherrscht eine Grammatik annähernd perfekt und die Rechtschreibung überhaupt nicht? Na dann merci...
-
Zählt Zeichensetzung nicht auch zu Grammatik ? Denn die ist ja nicht gerade perfekt, bzw nicht vorhanden. Aber macht das was ? Wir wissen doch glaub ich alle, was gemeint ist (sofern wir es verstehen - was ich nicht "tue", da ich mich noch nicht mit TIC,TAC,TOE-Algorithmen beschäftigt hab =),oder ?
Viele Grüße
E-the-Real
-
Das da nennst du eine annähernd perfekte Grammatik????????????? Guck dir nur zum Beispiel mal die Kommasetzung an! (nichts gegen MasterUser)
Aber ich denke, ethereal hat Recht. Solange man nach einem Mal durchlesen weiß, was gemeint ist, dann sollte man nicht gleich einen Aufstand machen.
-
Master User schrieb:
Wie mache ich ein programm das tic tac toe spielt und mit Min max funktioniert bin für jeden ratschlak offen. Bitte um hilfe. Danke im voraus.
Einen gut lesbaren Code, der Denkanreize gibt, und der in
der neusten Version mit Alpha-Beta Cut arbeitet findest Du
auf http://www.algorithman.de/Algorithmen/KI.htmVielen Dank an Viktor Engelmann
-
Leute vielen dann fur die suche aber ich brauche ein programm in C und zwar mit stdio.h und so wennich queltext kann so viel machen. Nun meine rechtschreibung konnen wie ein anderes mal erläutern okey. Wie programmiere ich die inteligenz ich verstehe fast nicht von c und unser lerer bei der uni hat uns im ertsen semmeter so ein programm gegeben!!! leute ich brauche dringent eure hilfe. ich habe in google auch gesucht aber da kamm nur müll raus. Wie mache ich die Min Max alguritmus könnt ihr mir schritweise tipps geben und dieses programm das ihr mir gegeben habt ich weiss nicht irgebt wie kommisch leute. BITTE BITTE hilft mir!!!
-
Hier ist noch eine Variante.
#include <stdio.h> int freieFelder, Feld [3][3]; void ZeigFeld() // Zeigt das Spielfeld an { int x,y; for(y=0;y<3;y++) { for(x=0;x<3;x++) { if(Feld[x][y]==1) printf("O "); else if(Feld[x][y]==-1) printf("X "); else printf(". "); } printf("\n"); } } int DreiInReihe() // Liefert 1 zurück, wenn sich drei gleiche Symbole in einer Reihe befinden { if((Feld[0][0]!=0)&&(Feld[0][0]==Feld[0][1])&&(Feld[0][1]==Feld[0][2])) return 1; if((Feld[1][0]!=0)&&(Feld[1][0]==Feld[1][1])&&(Feld[1][1]==Feld[1][2])) return 1; if((Feld[2][0]!=0)&&(Feld[2][0]==Feld[2][1])&&(Feld[2][1]==Feld[2][2])) return 1; if((Feld[0][0]!=0)&&(Feld[0][0]==Feld[1][0])&&(Feld[1][0]==Feld[2][0])) return 1; if((Feld[0][1]!=0)&&(Feld[0][1]==Feld[1][1])&&(Feld[1][1]==Feld[2][1])) return 1; if((Feld[0][2]!=0)&&(Feld[0][2]==Feld[1][2])&&(Feld[1][2]==Feld[2][2])) return 1; if((Feld[0][0]!=0)&&(Feld[0][0]==Feld[1][1])&&(Feld[1][1]==Feld[2][2])) return 1; if((Feld[2][0]!=0)&&(Feld[2][0]==Feld[1][1])&&(Feld[1][1]==Feld[0][2])) return 1; return 0; } int Sieg(int x,int y,int spielerZug,int spielerWin) // Berechnet ob spielerWin gewinnt, wenn spielerZug auf die Position x, y setzt { // unter der Vorraussetzung, dass spielerWin immer perfekt spielt int a,b,sieg; freieFelder--; Feld[x][y]=spielerZug; if(!DreiInReihe()) { if(freieFelder == 0) sieg=0; else { if(spielerZug==spielerWin) sieg=1; else sieg=0; for(b=0;b<3;b++) for(a=0;a<3;a++) if(Feld[a][b]==0) { if(spielerZug==spielerWin) sieg=sieg&&Sieg(a,b,-spielerZug,spielerWin); else sieg=sieg||Sieg(a,b,-spielerZug,spielerWin); } } } else { if(spielerZug==spielerWin) sieg=1; else sieg=0; } Feld[x][y]=0; freieFelder++; return sieg; } int main() { int x,y,x_Pos,y_Pos; char antwort; for(x=0;x<=2;x++) for(y=0;y<=2;y++) Feld[x][y]=0; freieFelder=9; ZeigFeld(); do { printf("Soll ich anfangen? "); scanf("%c",&antwort); antwort |=32; } while (!((antwort=='j') || (antwort=='n'))); if(antwort=='j') { Feld[1][1]=1; freieFelder--; ZeigFeld(); } while(freieFelder>0 && (!DreiInReihe()) ) { do { printf("\nx_Pos: "); scanf("%d",&x_Pos); printf("y_Pos: "); scanf("%d",&y_Pos); } while (Feld[x_Pos-1][y_Pos-1]!=0); Feld[x_Pos-1][y_Pos-1]=-1; freieFelder--; for(y=0;y<3;y++) for(x=0;x<3;x++) if(Feld[x][y]==0 && Sieg(x,y,1,1)) // Wenn die Position noch nicht besetzt ist { // und der Computer gewinnt, wenn er dort hin setzt Feld[x][y]=1; freieFelder--; goto gefunden; } for(y=0;y<3;y++) for(x=0;x<3;x++) if(Feld[x][y]==0 && !Sieg(x,y,1,-1) ) // Wenn die Position noch nicht besetzt ist { // und der Computer nicht verliert, wenn er dort hin setzt Feld[x][y]=1; freieFelder--; goto gefunden; } gefunden: ZeigFeld(); } return 0; }
-
Wie kann dir der Prof die Aufgabe geben, ein Spiel zu programmieren obwohl er dir/euch noch nie etwas von C beigebracht hat? Das verstehe ich nicht so wirklich...ich bin immernoch der Meinung hier ist was faul
Wenn nicht - sorry
-
Okey ich erzehle euch eine geschichte. Wir haben ein Prof. der fruher am M.I.T. war ja am berumten M.I.T. Und er ist alt ziiiehlic alt. Er unterichtet uns Einfuhrung in der Informatik und der Telekumunikation. An sich nichts komisches ich tachte da lernt man ein bischen über bits, byts einbischn geschichte. Also nicht komisches da es "EINFÜHRUNG" heist. Nun vileicht habe ich das nicht verstanden. Wir haben bis jetzt nur bei den 4 aufgaben bekommen!!!. Und zwar erste:
- Mache den vollenbaum vom spiel NIM streichhölzer okey nicht besonderes.
- Danach in der 2 Woche!!!. Baue ein logisches kreislauf das 2 4 bit wörter
miteinander vergleicht und ausgibt ob sie gleich groser oder kleiner sind!!!
Nur eine woche zeit. Und damals wuste ich nichts. Ich konnte eine AND von einer or nicht unterscheiden. Aber ich habe sie gemacht. hard was. nun vor ein paar tagen. habe ich diese TIC TAC TOE bekommen. Und heute habe ich eine neue aufgabe bekommen und zwar. Programmiere ein prog auf der chip ebene das eine division durchfuhrt in nur 20 befehle und schreibe den bit code hard oder???
Ich frage mich wozu soll ich info weiter studieren ich weiss ja schon alles.
Nun ich habe in web über TI`C TAC TOE reschirt und herausbekommen das diese aufgabe in triten jahr bekommt beim untericht von Künstlicher intiligenz.
Und ncoh was beim untericht einfuhrung in c haben wir z.b. als ausfabe bekommen
mach ein prog. das die wurzel von a*x^b+x+c. herausfindet. So was habe ih mit 10 bei BASIC gemacht. LEute ich brauche eure hilfe.ah ja TIC TAC TOE:
aufgabe:
-
MAche den vollen baum von TIC TAC TOE(bin bei tife 3)
-
Mache ein prog das bei einer aufgabenstelung zwei bewegungen berechnen kann.
-
mit hilfe 1+3 mache einspiel wobei der mänsch anfengt zu spielen.
4)Fur grafick gibt es extra punkte.
Und ich weii nicht wie ich 2,3,4 machen soll hilfe!!!!!!!!!!