Seite 1 von 1

MatLab

Verfasst: 18. Dez 2014, 07:10
von Crazy_Ace
Hey,

kennt sich hier jemand mäßig bis gut (gerne auch sehr gut, muss aber nicht) mit MatLab aus?

Unser Prof und unser Skript haben uns einfach richtig schlecht auf die am Ende abzugebende Arbeit vorbereitet. Ich weiß, man kann sich alles irgendwie zusammengoogeln (was sogar O-Ton gewünscht ist: "... sollen Sie sich hier selbstständig die für die Programmierung notwendigen Informationen beschaffen."), aber irgendwie ist das echt nicht das Wahre. Über einen gelegentlichen Ansprechpartner würde ich mich sehr freuen, am liebsten per PM, dann muss ich hier nicht so mit meiner Inkompetenz hausieren gehen (und wir müllen nicht so). :lol:

Das Projekt selbst ist ein Schiebespielrätsel (15er-Spiel) mit variabler Zeilen- und Spaltenlänge und einzulesendem Hintergrundbild. Zu programmieren ist nur das Spiel, nicht die Lösung.

Dankeschön!
SpoilerShow
Der grobe Plan inhaltlich ist es, eine varargin-Funktion aufzurufen, die mit CallBack im else-teil (if(nargin == 0)) dann das Spiel einleitet. Ob das sinnvoll ist, kann ich ob mangelnder Erfahrung nicht sagen, das war in der VL aber immer die Herangehensweise.

Bis jetzt bin ich so weit, ein Bild einzulesen und jenes zu zerlegen. Mein aktuelles "Problem" ist, dass meine Funktion mit (varargin) nicht (wie in der VL) anspringt, wenn ich sie ohne Parameter aufrufe. Bis das hier aber jemand liest, könnte ich eine Lösung gefunden haben. Als ungefähre Richtlinie, wie banal meine Fragen sind (sind sie?), lasse ich diesen Abschnitt dennoch mal stehen und aktualisiere, wenn sich was ohne Zutun tut.

O.g. Problem ist gelöst.

Auf lange Sicht wird das größte Problem wohl das Verschieben der einzelnen Blöcke. Dafür habe ich noch keine wirkliche Herangehensweise gefunden.

Re: MatLab

Verfasst: 22. Jan 2015, 22:35
von Crazy_Ace
Falls es jemanden interessiert oder jemand ähnliche oder vergleichbare Dinge mit Matlab zu bewältigen hat: Das Programm steht soweit.
Ich finde Matlab nach wie vor nicht sehr geil, weil sich alles irgendwie wie ein Workaround anfühlt. Aber vielleicht muss man auch tiefer einsteigen, um dem ganzen wirklich was abgewinnen zu können.

Was noch fehlt, ist die Verschönerung des Codes, da bin ich grade dran. Aktuell stehe ich allerdings vor einer hässlichen Wand, bei der ich keinen wirklichen Ansatz finde, sie zu umgehen oder zu beschönigen, weswegen ich sie hier gerne nochmal mit Aufruf auf potenzielle Lösungen mit euch teile. Wenn nicht ist aber natürlich auch nicht schlimm, die Schönheit des Codes ist nicht so wirklich übermäßig relevant für meine Zwecke.
SpoilerShow
Kurz vorweg: Es handelt sich grundsätzlich um eine Funktion mit Callbacks für alles, was man so drückt (die "case" links sind die, die durch den Callback angesprochen werden). Man hat im Interface 4 Buttons, die man drücken kann (links, rechts, oben, unten) oder man kann das leere Feld mit den Pfeiltasten bewegen. Das führt zu folgendem Codeschnipsel zum Aufrufen der Bewegungsfunktion:

Code: Alles auswählen

case 'move_left'            
            move('left')
case 'move_right'
            move('right')
case 'move_up'
            move('up')
case 'move_down'
            move('down')
 case 'key_pressed'
         switch get(fig_handle, 'CurrentKey')
                case 'leftarrow' 
                    move('left')
                case 'rightarrow' 
                    move('right');
                case 'uparrow'
                    move('up');
                case 'downarrow'
                    move('down');
                otherwise;
            end