Verfasst am: 04.02.2011, 15:42
Titel: Problem bei Gewinnabfrage in 3-Gewinnte
Hallo go-Matlab-Members,
ich hab mittels des Matlab-GUIs eine 3-Gewinnt Oberfläche erstellt. Sie beinhaltet 9 Buttons, einen Startbutton und ein Endebutton. Ich hab mir erst theoretisch überlegt, wie die Gewinnabfrage aussehen sollte und dann versucht das in einen Code umzusetzen dabei ist dann sowas hier heraus gekommen. Man muss dazu sagen ich bin neu mit Matlab eingestiegen, deswegen wollte ich auch eine GUI zur Hilfe nehmen, weil ich dachte damit geht sowas vielleicht sehr einfach.
für die anderen button geht die schleife dann eben entsprechend weiter. Das Problem ist nur er meckert irgendwie wenn ich das so schreibe. Hat jemand von euch eventuell eine Ahnung was ich falsch gemacht haben könnte?
Hier noch die entsprechende Fehlermeldung:
Zitat:
??? Input argument "handles" is undefined.
Error in ==> gaanzneu2>gewinnkombinationen at 299
if (get(handles.b1,'String') == 'X') && (get(handles.b2,'String') == 'X') &&
(get(handles.b3,'String') == 'X') %
Error in ==> gaanzneu2>b2_Callback at 116
gewinnkombinationen()
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> gaanzneu2 at 42
gui_mainfcn(gui_State, varargin{:});
du kannst das nicht einfach mit dem Play-Button laufenlassen, sondern musst es eine passende Handles-Struktur zur Verfügung stellen. Wird also nur sinnvoll sein, wenn du das aus deiner GUI heraus aufrufst.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ape
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 05.02.2011, 12:41
Titel:
Hallo Harald,
hab das jetzt hinbekommen mit der Gewinnabfrage. Nur so wie ich das gelöst hab ist der Code einfach unglaublich lang, weil ich jeweils zu jedem Button die if-schleife der gewinnabfrage hinzugefügt hab. Nicht nur dass ist ein Problem sondern auch meine "KI", die ich dazu programmiert habe. Ich hab hier im Forum einen ganz nützlichen Eintrag zu dem Thema von dir gefunden.
Meine KI arbeitet ziemlich primitiv ich hab ihr einfach gesagt (in einer über hundert zeilen if-schleife), dass sie erst prüfen soll, ob es gilt eine Reihe zu verhindern und wenn dass nicht der fall ist sie sich einfach ein Feld aussuchen soll. Ist nich wirklich die eleganteste Lösung, da ich diese Schleife auch wieder zu jedem Button dazu gepackt habe ansonsten hat es nicht funktioniert. Nun hab ich ein Code von über tausend Zeile, worauf nicht unbedingt stolz bin. Kann mir jemand sagen wie man das eventuell zusammenfassen kann?
Ist es möglich in Matlab eine Radom-Anweisung aus einem bestimmten Zahlenbereich festzulegen, denn die funktion rndm() generiert ja nur eine Zahl zwischen Null und eins?
Wäre wirklich nett, wenn jemand für diese Probleme ein paar Ratschläge parrat hat =)
Hier noch ein Auszug von dem Code der KI, dass ihr euch ein Bild von meinen "Künsten" machen könnt =D
Allerdings machst du dir meines Erachtens das Leben deutlich schwerer, als es sein müsste. Warum speicherst du deine Auswahlen nicht in einer 3x3-Matrix ab, 1 für 'O' und 2 für 'X', 0 für frei? Diese Matrix könntest du mit setappdata/getappdata speichern oder meinetwegen sogar als globale Variable deklarieren. Die Abfrage, ob Spieler 1 gewinnt, sähe dann z.B. so aus:
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ape
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 05.02.2011, 14:19
Titel:
Hey Harald,
danke für die schnelle Antwort. Der Tipp mit der 3x3 Matrix ist echt gut mal sehn ob ich den irgendwie umgesetzt bekomme.
Ich hab mir auch schon diverse andere Programme angeschaut das Problem ist nur, dass diese oft sehr komplex geschrieben sind und für mich als Matlab-Dummie eine echte Herausforderung.
Ich wollte mein Programm so einfach wie möglich halten und die "KI" sollte sowieso nur ansatzweise versuchen den Sieg des Spielers zu verhindern.
Ape
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 05.02.2011, 19:30
Titel:
Hallo an Alle,
ich hab noch eine letzte frage und zwar möchte ich einen String(in meinem Fall ein 'X' o.'O') an eine Text in der MessageBox übergeben. Es sollte so ähnlich funktionieren wie num2str() hab aber leider in der Richtung nichts brauchbares für meine Problemstellung gefunden. Ich würde mich von freun, wenn jemand von euch weis, wie das umsetzbar ist.(bin es wirklich leid weiter zu suchen)
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.