Ich habe dieses thema gewahlt

1. Einleitung

1.1 Vorwort

Ich habe dieses Thema gew & A ; auml ; hlt, district attorney mir dice Einf & A ; uuml ; hrung in die Programmiersprache Matlab ( Informatikunterricht im 2. Semester M4a ) sehr gefiel, deshalb wollte ich etwas degree Fahrenheit & A ; uuml ; R meine Maturaarbeit programmieren. Da ich selber gerne Schach spiele, habe ich mich entschieden ein Schachprogramm zu schreiben.

1.2 Wahl der Programmiersprache

Zuerst & A ; uuml ; berlegte ich mir, welche Programmiersprache am besten f & A ; uuml ; R meine Maturaarbeit geeignet tungsten & A ; auml ; rhenium. Da momentan dice Programmiersprachen C++ und Java sehr beliebt Sind, habe ich mich degree Fahrenheit & A ; uuml ; R eine dieser beliebten Sprachen entschieden, auch um allenfalls Hilfe im Internet beanspruchen zu k & A ; ouml ; nnen. Ich habe mich f & A ; uuml ; r C ++ entschieden. Als allererstes lernte ich dice Grundlagen dieser Programmiersprache, dies tat ich Massachusetts Institute of Technology Hilfe einer Video Anleitung ( Video2Brain C++ ) dabei lernte ich wie adult male in C++ Variablen, Schleifen, Bedingungen, Funktionen, Textausgaben ( auf dice Konsole ) und Arrays ( mehrere Werte in eine Variable zusammenfassen ) erstellen kann.

We will write a custom essay sample on
Ich habe dieses thema gewahlt
or any similar topic only for you
Order now

1.3 Installation einer Arbeitsumgebung und eines Compilers

Um Massachusetts Institute of Technology C++ ein Programm zu entwickeln, braucht adult male einen Editor, der bestimmte Befehle farblich darstellen cubic decimeter & A ; auml ; sst ( und damit degree Fahrenheit & A ; uuml ; R eine bessere & A ; uuml ; bersichtlichkeit sorgt ) und Massachusetts Institute of Technology dem adult male eine C++ Datei erstellen kann. Um aus der C++ Datei ein ausf & A ; uuml ; hrbares Programm Zu machen, ben & A ; ouml ; tigt adult male einen Compiler der dice C++ Datei in eine EXE Datei umwandelt und hyraxs Programm somit ausf & A ; uuml ; hrbar machen cubic decimeter & A ; auml ; sst. Ich erhielt von Herrn Sommer eine Version von Visual Studio ( Beinhaltet Editor und Compiler ) zudem installierte ich auch noch Ultraedit ( wobei ich hier ALSs Plug-In lair Mingw Compiler installieren musste ) um sicherzugehen, hyrax ein auftretender Fehler nicht hyrax Problem der installierten Entwicklungsumgebung tungsten & A ; auml ; rhenium.

2. Schachprogramm auf der Konsole

2.2 Platzzuweisung der Schachfiguren

Dabei erstellte ich einen Array ( Feld ) Massachusetts Institute of Technology dem ich den Schachfiguren einen Platz zuweisen konnte. OOO steht f & A ; uuml ; R ein leeres Feld, die anderen Figuren werden benannt nach dem ersten Buchstaben ihres Namens, ihrer Farbe und ihrer Nummer ( zum Bsp. SW2 steht f & A ; uuml ; r den zweiten schwarzen Springer ) .

2.3 Ausgabe der Schachfiguren auf dice Konsole

Nun m & A ; uuml ; ssen die Figuren ausgegeben werden. Dazu wird dice erste Figur ( [ 0 ] [ 0 ] ) ausgegeben, einen Abstand gemacht und dice n & A ; auml ; chste Figur ausgegeben. Dies wird solange gemacht Bi acht Figuren ausgegeben worden Sind, danach wird eine neue Zeile erstellt.

2.4 Eingabe eines Zuges

Um einen Zug durchf & A ; uuml ; hren zu K & A ; ouml ; nnen, m & A ; uuml ; ssen vier Werte an das Programm gegeben werden. Zuerst zwei Werte degree Fahrenheit & A ; uuml ; R dice Figur, dice adult male bewegen will ( z.B. A2 ) und dann zwei Werte degree Fahrenheit & A ; uuml ; R das Ziel der Figur ( z.B. A3 ) . Jedoch m & A ; uuml ; ssen diese Werte noch umgewandelt werden in die Koordinaten des Arrays. Diese stimmen nicht & amp ; uuml ; berein, weil der Array links oben ( [ 0 ] [ 0 ] ) anf & A ; auml ; ngt und die Schachnotation links unten anf & amp ; auml ; ngt ( A1 ) . Zudem hat die Schachnotation Buchstaben, dice in Zahlen umgewandelt werden m & A ; uuml ; ssen und die Schachnotation beginnt bei 1 und nicht bei 0 an Zu omega & A ; auml ; hlen. Die umgewandelten Werte werden in vier neuen Variablen gespeichert ( EingabeUrsprung111, EingabeUrsprung222, EingabeZiel111 und EingabeZiel222 )

2.5 Ausf & A ; uuml ; hren eines Zuges

Um einen eingegebenen Zug ausf & A ; uuml ; hren zu K & A ; ouml ; nnen tussle dice gew & A ; auml ; hlte, im Array gespeicherte Figur durch ein leeres Feld ( “ OOO ” ) auf diesem Platz ersetzt werden. Zudem mess dice Figur auf dem Zielfeld im Array gespeichert werden:

Schachbrett [ EingabeZiel111 ] [ EingabeZiel222 ] =Schachbrett [ EingabeUrsprung111 ] [ EingabeUrsprung222 ] ;

Schachbrett [ EingabeUrsprung111 ] [ EingabeUrsprung222 ] = “ OOO ” ;

Nach der & A ; auml ; nderung tussle nur nochmals eine Ausgabe gemacht werden ( Siehe: Ausgabe der Schachfiguren auf dice Konsole ) .

2.6 Bedingungen degree Fahrenheit & A ; uuml ; r legale Z & A ; uuml ; Ge

Es gibt drei M & A ; ouml ; glichkeiten wie ein Zug regelwidrig ist:

  • Figuren falsch bewegt

Allgemein: Der Zug ist falsch, wenn auf eine Figur der gleichen Farbe gesprungen wird, oder auf lair gegnerischen K & A ; ouml ; nig

Bauer:

  • Falls ein Bauer nach links oder nach rechts bewegt wird ist der Zug falsch, wenn mehr ALSs ein Feld nach links oder rechts bewegt wurde Oder wenn dort keine gegnerische Figur steht ( ausser der K & A ; ouml ; nig )
  • Falls der Zielort kein leeres Feld ist, ist der Zug falsch, wenn nicht auf ein Feld diagonal nach vorne gesprungen wird
  • Falls nicht auf ein Feld nach vorne gesprungen wird, ist der Zug falsch, wenn der Bauer nicht auf seiner urspr & A ; uuml ; nglichen Position ist, nicht zwei nach vorne gesprungen ist Oder kein leeres Feld beim Ziel ist.

Turm:

  • Falls ein Turm nach links oder rechts und gleichzeitig nach unten Oder oben bewegt wird, dann ist der Zug falsch.
  • Falls ein Zug in eine Richtung ( links, rechts, oben Oder unten ) gemacht wird, dann ist der Zug falsch, wenn dazwischen eine Figur liegt

L & A ; auml ; ufer:

  • Falls ein L & A ; auml ; ufer nicht gleich viele Felder nach rechts ( oder links ) und nach oben ( oder unten ) geht, dann ist der Zug falsch
  • Falls ein Zug in eine Richtung gemacht wird, dann ist der Zug falsch, wenn dazwischen eine Figur liegt

Dame:

  • Falls die Dame am Ziel in der gleichen Reihe Oder Spalte ist, dann wird dice gleiche & A ; uuml ; berpr & A ; uuml ; fung wie beim Turm gemacht.
  • Sonst wird eine & A ; uuml ; berpr & A ; uuml ; fung, wie beim L & A ; auml ; ufer gemacht

Springer:

  • ­ Falls ein Springer nicht auf ein Feld nach links ( oder rechts ) und zwei Felder nach oben ( oder unten ) springt. Oder nicht zwei Felder nach links ( oder rechts ) und ein Feld nach oben ( oder unten ) springt, dann ist der Zug falsch.

K & A ; ouml ; nig:

  • Falls der K & A ; ouml ; nig nicht auf ein Feld springt ( nach oben, unten, links, rechts, diagonal ) , dann ist der Zug falsch.
  • Schach ignorieren Oder selbst in eine Schachsituation geraten ( beim eigenen Zug )

Schachsituation & A ; uuml ; berpr & A ; uuml ; fen:

Jede gegnerische Figur muss & A ; uuml ; berpr & A ; uuml ; fen, ob Es ihr m & A ; ouml ; glich ist, legal auf hyraxs Feld des K & A ; ouml ; nigs zu springen. Wenn ja, dann ist Es eine Schachsituation

  • Schachmatt

Dieser Spielzug ist zwar nicht regelwidrig, aber es cubic decimeter & A ; auml ; sst keinen Zug mehr Zu.

Schachmattsituation & A ; uuml ; berpr & A ; uuml ; fen:

Es m & A ; uuml ; ssen alle legalen Z & A ; uuml ; ge einmal durchgef & A ; uuml ; hrt werden ( beim Spieler, der unter Schach gesetzt wurde ) . Danach muss adult male degree Fahrenheit & A ; uuml ; R jede einzelne Situation & A ; uuml ; berpr & A ; uuml ; fen, ob es immer noch Schach ist:

Jede gegnerische Figur muss & A ; uuml ; berpr & A ; uuml ; fen, ob Es ihr m & A ; ouml ; glich ist, legal auf hyraxs Feld des K & A ; ouml ; nigs zu springen. Wenn bei mindestens einer dieser & A ; uuml ; berpr & A ; uuml ; ften Situationen kein Schach ist, dann ist dies keine Schachmattsituation, sonst schon.

Zudem wird der Zug regelwidrig, wenn adult male falsche Positionen angibt ( z.B.H9 ) Oder wenn adult male zweimal die gleiche Position angibt ( z.B.A2A2 ) .

Nat & A ; uuml ; rlich ist Es auch nicht erlaubt, wenn adult male versucht Massachusetts Institute of Technology lair gegnerischen Figuren Zu ziehen Oder wenn adult male versucht Massachusetts Institute of Technology einem leeren Feld auf ein anderes Feld Zu gehen.

2.7 Aufbau meines Programmes

Solange nicht Schachmatt ist, wird Folgendes ausgef & A ; uuml ; hormone replacement therapy:

* Solange Weiss am Zug ist:

  • Wenn Schach gegen Weiss ist, dann & A ; uuml ; berpr & A ; uuml ; ft Es Ob eine Schachmattsituation vorliegt.
  • Falls Schachmatt ist, werden alles Schlaufen beendet.
  • & A ; uuml ; berpr & A ; uuml ; fen, ob Figurenz & A ; uuml ; ge legal Sind
  • & A ; uuml ; berpr & A ; uuml ; fen, ob Schach gegen Schwarz ist ( Wenn ja, in Variabel speichern degree Fahrenheit & A ; uuml ; R die Schachmattsituation- & A ; uuml ; berpr & A ; uuml ; fung gegen Schwarz )
  • & A ; uuml ; berpr & A ; uuml ; fen, ob Schach gegen Weiss ist, wenn ja, dann wird der weisse Zug wiederholt
  • Falls der Zug nicht regelwidrig ist, wird der Zug ausgef & A ; uuml ; hrt und ausgegeben

* Solange Schwarz am Zug ist:

  • Wenn Schach gegen Weiss ist, dann & A ; uuml ; berpr & A ; uuml ; ft Es Ob eine Schachmattsituation vorliegt.
  • Falls Schachmatt ist, werden alles Schlaufen beendet.
  • & A ; uuml ; berpr & A ; uuml ; fen, ob Figurenz & A ; uuml ; ge legal Sind
  • & A ; uuml ; berpr & A ; uuml ; fen, ob Schach gegen Schwarz ist ( Wenn ja, in Variabel speichern degree Fahrenheit & A ; uuml ; R die Schachmattsituation- & A ; uuml ; berpr & A ; uuml ; fung gegen Schwarz )
  • & A ; uuml ; berpr & A ; uuml ; fen, ob Schach gegen Weiss ist, wenn ja, dann wird der weisse Zug wiederholt
  • Falls der Zug nicht regelwidrig ist, wird der Zug ausgef & A ; uuml ; hrt und ausgegeben

3. Aufgetretene Probleme bei der Programmierung

3.1 Probleme bei der Programmierung der Konsolenversion

Als ich angefangen habe mein Programm degree Fahrenheit & A ; uuml ; R die Konsole zu programmieren bin ich schon sehr Fr & A ; uuml ; h auf grosse Probleme gestossen. Als ich dice Figuren benennen wollte, cheapness ich dies Massachusetts Institute of Technology einer sogenannten & A ; bdquo ; char-Variable ” . Doch ich wusste damals nicht, hyrax adult male bei einer & A ; bdquo ; char-Variable ” nur ein Zeichen speichern kann. Deshalb bekam ich sehr viele Fehlermeldungen, Weil dice Bezeichnung einer Figur ung & A ; uuml ; ltig was ( z.B. TS1 ) . Ich versuchte dies zu cubic decimeter & A ; ouml ; sen indem ich meine Figuren als Zahlen speicherte und sie dann bei der Ausgabe umwandelte in die normale Bezeichnung und diese dann ausgab. Ich erkannte dann aber, hyrax dies nicht besonders sinnvoll ist und deshalb recherchierte ich im Internet. Dabei fand ich heraus, hyrax adult male eine sogenannte & A ; bdquo ; string-Variable ” ben & A ; ouml ; tigt um mehrere Zeichen in einer Variable Zu speichern. Danach konnte ich hyrax Programm wieder in die alte Form zur & A ; uuml ; ckschreiben. Diesmal aber Massachusetts Institute of Technology einer & A ; bdquo ; string-Variable ” .

Damit Figuren nur richtige Z & A ; uuml ; Ge machen vitamin D & A ; uuml ; rfen, decease den Regeln entsprechen, muss adult male dem Programm Regeln degree Fahrenheit & A ; uuml ; R die Figuren beibringen. Diese Regeln Sind nicht im normalen Programmcode enthalten sondern Sind ausgelagert worden in eine Funktion, dice dann aufgerufen werden kann. Dies hat den Vorteil, hyrax adult male nur einmal eine Regel definieren mess und diese dann jederzeit abrufbar ist. So spart adult male sehr viel Quelltext. Eine Funktion wird aufgerufen Massachusetts Institute of Technology gewissen Werten, dice adult male der Funktion & A ; uuml ; bergeben will ( z.B. die Position, wo sich eine Figur befindet und wohin adult male sie bewegen will ) , diese nennt adult male Parameter. Ich habe den Fehler gemacht, decease Variablen die adult male vor der Funktion definiert und ALSs Parameter & A ; uuml ; bergibt, gleich Zu benennen, wie dice & A ; uuml ; bergebenen Parametervariablen. Jedoch muss adult male dem Parameter in der Funktion einen neuen Variablennamen zuweisen. Auch hier musste ich Lange im Internet suchen, Bi ich herausgefunden habe, hyrax ich hier einen Fehler gemacht habe.

Diese zwei Fehler Sind mir passiert, weil ich C++ zwar Massachusetts Institute of Technology einer sehr leicht verst & A ; auml ; ndlichen Anleitung ( in der Form einer Videoanleitung ) gelernt habe, die aber ein paar Sachen undiskutiert cubic decimeter & A ; auml ; sst. Deshalb sind diese zwei Fehler bei mir im Programm vorgekommen. Zudem Sind weitere, kleinere Fehler aufgetreten, weil ich Zu viel auf einmal programmiert habe und erst dann & A ; uuml ; berpr & A ; uuml ; ft habe, ob hyrax Programm fehlerfrei cubic decimeter & A ; auml ; uft.

Schach:

Bei der Programmierung degree Fahrenheit & A ; uuml ; R das Anzeigen einer Schachsituation hatte ich vor allem programmiertechnische Probleme, weil sehr viele Vorg & A ; auml ; nge vorhanden waren. Ich habe zweimal dice Klammern falsch angesetzt, was dazu f & A ; uuml ; hrte, hyrax ich diesen Abschnitt ein paar Mal & A ; uuml ; berarbeiten musste. Erschwerend kam dazu, hyrax ich & A ; uuml ; berpr & A ; uuml ; fen musste, ob eine Figur auf hyraxs Feld des K & A ; ouml ; nigs springen konnte. Doch district attorney dies verboten ist, funktionierte dice Erkennung einer Schachsituation nicht. Erst ALSs ich diesen Fehler erkannte, gelang mir dice korrekte Umsetzung.

Da ich Es nun erlauben lassen musste auf das Feld des K & A ; ouml ; nigs zu ziehen, konnte adult male dies jetzt auch bei einem normalen Zug machen. Um dies zu verhindern wird nun gerade nach der Eingabe & A ; uuml ; berpr & A ; uuml ; foot, Ob dice Figur auf dice Position des K & A ; ouml ; nigs springt, wenn dies der Fall ist, wird der Zug ALSs falsch erkannt.

Schachmatt:

Bei der Schachmattprogrammierung hatte ich Lange einen & A ; uuml ; berlegungsfehler im Programmcode.

Bei der Schachmattprogrammierung werden zuerst alle legalen M & A ; ouml ; glichkeiten berechnet. F & A ; auml ; lschlicherweise hat mein Programm bereits eine Schachmattsituation angegeben, wenn nur eine dieser M & A ; ouml ; glichkeiten eine Schachsituation gemeldet chapeau. Es m & A ; uuml ; sste aber so sein, hyrax wenn nur eine einzige Situation gefunden wird, bei der keine Schachsituation vorliegt, dann sollte Es melden, hyrax dies keine Schachmattsituation ist. Dieser Fehler passierte mir, weil der Programmcode ziemlich komplex ist. Ich musste degree Fahrenheit & A ; uuml ; r jede Start- und Zielposition eines Feldes auf der eine Figur steht & A ; uuml ; berpr & A ; uuml ; fen ob eine Figur Massachusetts Institute of Technology der richtigen Farbe dasteht und die Art der Figur ( Bauer, L & A ; auml ; ufer, … ) . Daraufhin musste der Zug durchgespielt werden, dort & A ; uuml ; berpr & A ; uuml ; fen wo sich der K & A ; ouml ; nig befindet, & A ; uuml ; berpr & A ; uuml ; fen ob eine Figur auf hyraxs Feld des K & A ; ouml ; nigs springen kann ( Schachsituation ) und falls dies einmal nicht der Fall ist, melden, hyrax keine Schachmattsituation vorliegt. Sp & A ; auml ; ter bemerkte ich auch noch, hyrax der K & A ; ouml ; nig nicht gold einer Schachsituation ausweichen kann oder selbst nochmals in eine Schachsituation laufen kann. Dieser Fehler ist aufgetreten, weil der K & A ; ouml ; nig mit falschen Positionsaufgaben aufgerufen wurde.

Sonstige Probleme

Ich hatte zudem noch ein paar andere Probleme, die aber alle einfach Zu beheben waren. Zum Beispiel konnte adult male ein leeres Feld auf ein anderes leeres Feld springen lassen, adult male konnte zweimal hyrax gleiche Feld ausw & A ; auml ; hlen und beim zweifachen Ausw & A ; auml ; hlens des K & A ; ouml ; nigs ( Figur Massachusetts Institute of Technology der adult male zieht und Zielort der Figur ) verschwand der K & A ; ouml ; nig von der Spielfl & A ; auml ; che.

3.2 Probleme bei der Programmierung der grafischen Oberfl & A ; auml ; che

Bei der Programmierung der Konsolenversion des Schachspiels habe ich nur im Stil der prozeduralen Programmiersprache programmiert, hyrax bedeutet, hyrax hyrax Programm gold einer Folge von Anweisungen und der darin aufgerufenen Funktionen besteht.

Der Theorie-Teil der objektorientierten Programmierung ( bedeutet dice Verkapselung von Daten und Funktionen in einem Objekt ) habe ich aber nur teilweise in der Videoanleitung angeschaut. Da ich degree Fahrenheit & A ; uuml ; R das Programmieren eines Schachspiels nicht zwingend dice objektorientierte Programmierung brauchte, schien Es mir einfacher mein Programm nicht im Stil der objektorientierten Programmierung zu schreiben.

Doch ALSs ich anfing Qt zu lernen, fand ich heraus, hyrax Es bei der Programmierung einer grafischen Oberfl & A ; auml ; che zwingend notwendig ist objektorientiert zu schreiben. Wenn adult male lair Schachfeldern Funktionen geben will ( z.B. soll eine Funktion dem Computer angeben, hyrax ein Feld angeklickt wurde ) dann wird zwingend eine Funktion eines Objektes ben & A ; ouml ; tigt, sonst wird diese Funktion nicht von Qt erkannt.

Das bedeutete, hyrax ich hyrax gesamte Programm von der Struktur her umschreiben musste. Dies war sehr schwierig, weil ich nur m & A ; auml ; ssige Kenntnisse von der objektorientierten Schreibweise hatte. Zudem machte mir das Qt-Lernen M & A ; uuml ; he, da ich ( wie ich vorher geschrieben habe ) auf der objektorientierten Programmierung noch Zu wenig Kenntnisse hatte.

Aus diesen Gr & A ; uuml ; nden habe ich einige Fehler gemacht, dice ich nicht selber cubic decimeter & A ; ouml ; sen konnte und deshalb habe ich mich an ein Forum1 gewandt, das auf Qt spezialisiert ist. Mit dieser Hilfe schaffte ich es einen funktionierenden Grundstein Zu erstellen, auf dem ich dann wieder selbstst & A ; auml ; ndig arbeiten konnte. Dieser Grundstein bestand aus 32 schwarzen und 32 weissen Feldern, die aber noch nicht auf Mausklicks reagierten und auch noch keine Figuren besassen.

Grosse Probleme hatte ich auch bei der Einf & A ; uuml ; hrung der Regeln gold dem Konsolenprogramm. Da dice Ausgabe auf dice Konsole und dice grafische Ausgabe sich stark unterscheiden, lief hyrax Programm zuerst nicht wunschgem & A ; auml ; US Secret Service. Anders war vor allem, hyrax bei der Konsolenversion die eine Seite, dice am Zug war, st & A ; auml ; ndig wieder aufgerufen wurde ( in einer Schleife ) , bis ein korrekter Zug gemacht worden ist. Bei der grafischen Oberfl & A ; auml ; che hingegen musste nur mitgeteilt werden, ob der Zug richtig Oder falsch ausgef & A ; uuml ; hrt wurde. In einer Funktion des Objektes wird der Zug dann durchgef & A ; uuml ; hrt und dort werden auch wieder dice Regeln von der Konsolenversion aufgerufen.

4. Portierung des Schachprogrammes von der Konsole auf eine grafische Oberfl & A ; auml ; che

4.1 Auswahl einer Plattform degree Fahrenheit & A ; uuml ; R dice Programmierungeiner grafischen Benutzeroberfl & A ; auml ; che

Mit den C++ Bibliotheken ist Es sehr schwierig eine grafische Oberfl & A ; auml ; che Zu erstellen, district attorney dice Programmierung Massachusetts Institute of Technology WinAPI Oder MFC sehr schwierig ist. Deshalb benutzt adult male normalerweise externe Bibliotheken, die viel einfacher Zu erstellen Sind und Zu denen Es auch bessere Anleitungen und Hilfeseiten im Internet gibt.

Zuerst wurde ich auf Allegro aufmerksam, district attorney Es angeblich einfach Zu erlernen ist und weil Allegro intestine geeignet degree Fahrenheit & A ; uuml ; r 2D Spiele ist. Jedoch musste ich feststellen, hyrax Allegro nicht so bekannt ist und deshalb keine guten Dokumentationen vorliegen.

Deshalb wollte ich auf C++/CLI wechseln, district attorney ich Microsoft Visual Studio benutze und dort C++/CLI bereits integriert ist. Denn C++/CLI ist eine Mischung aus C++ und.net. Ich musste aber feststellen, hyrax adult male zwar eine grafische Oberfl & A ; auml ; che einfach zusammenstellen konnte, aber auch, hyrax mein gesamter Quellcode stark umgeschrieben werden m & A ; uuml ; sste. Zudem H & A ; auml ; tte ich.net lernen m & A ; uuml ; ssen.

Darum wechselte ich auf SDL. SDL ist ( & A ; auml ; hnlich wie Allegro ) besonders f & amp ; uuml ; r Spiele geeignet. Jedoch ist SDL um einiges bekannter und darum gibt Es auch mehr Anleitungen und Foren im Internet, wo ich Hilfe holen k & A ; ouml ; nnte. Leider war SDL auch um einiges komplizierter und deshalb entschied ich mich degree Fahrenheit & A ; uuml ; R hyrax einfachere SFML. Dies wiederum ist ziemlich unbekannt und hatte nur eine Anleitung auf der Seite von SFML.

Schlussendlich entschied ich mich degree Fahrenheit & A ; uuml ; R Qt. Qt ist einsteigerfreundlich, hat eine gute Dokumentation, Es gibt B & A ; uuml ; cher & A ; uuml ; ber die Programmierung Massachusetts Institute of Technology Qt, es ist neben GTK+ eine der beliebtesten Programmbibliotheken und Es gibt viele Foren, dice mir helfen K & A ; ouml ; nnten.

Von Qt gibt Es zwei Versionen. Es gibt eine Version, degree Fahrenheit & A ; uuml ; R dice adult male zahlen mess, wenn adult male sein Programm sp & A ; auml ; ter kommerziell vertreiben will. Allen anderen k & A ; ouml ; nnen Qt gratis ben & A ; uuml ; tzen. Ich habe nat & A ; uuml ; rlich die Gratisversion verwendet degree Fahrenheit & A ; uuml ; R meine Maturaarbeit.

Um Qt zu lernen besorgte ich mir hyraxs Buch & A ; bdquo ; Qt 4 – GUI-Entwicklung Massachusetts Institute of Technology C++ ” . Mit Hilfe dieses Buches, der Onlinedokumentation von Qt und der Hilfe des Forums “ www.qtforum.de/ ” habe ich Es geschafft eine grafische Oberfl & A ; auml ; che Zu kreieren.

4.3 Funktionen degree Fahrenheit & A ; uuml ; R Buttons

Jetzt sind zwar alle Buttons erstellt und alle Buttons sind am richtigen Ort, doch hyraxs Klicken auf dice Buttons bewirkt noch nichts. Darum muss adult male ein Signal senden lassen, wenn adult male einen Button anklickt und ALSs Folge einen sogenannten SLOT aufrufen:

connect ( pField [ 0 ] [ 0 ] , SIGNAL ( clicked ( ) ) , this, SLOT ( geklickt00 ( ) ) ) ;

Dieser Codeteil bewirkt, hyrax wenn der Button pField [ 0 ] [ 0 ] angeklickt wird, dann wird dice Funktionsklasse geklickt00 ( ) aufgerufen. Diese Funktionsklasse ruft dice Hauptfunktion von dieser grafischen Oberfl & A ; auml ; che auf, wobei es die Koordinaten ALSs Parameter weitergibt:

4.4 Hauptfunktion meiner grafischen Oberfl & A ; auml ; che

Wenn weiss am Zug ist:

  • Die weisse Zugfunktion aus der Konsolenversion wird aufgerufen, aber nur wenn schon beide Buttons angeklickt worden Sind ( Die Figur, dice adult male bewegen will und der Zielort der Figur )
  • Falls die Zugfunktion einen legalen Zug erkannt chapeau, dann wird hyraxs urspr & A ; uuml ; ngliche Feld zu einem leeren Feld und der Zielort wird Massachusetts Institute of Technology einer neuen Figur & A ; uuml ; berschrieben

Wenn schwarz am Zug ist:

  • Die schwarze Zugfunktion gold der Konsolenversion wird aufgerufen, aber nur wenn schon beide Buttons angeklickt worden Sind ( Die Figur, dice adult male bewegen will und der Zielort der Figur )
  • Falls die Zugfunktion einen legalen Zug erkannt chapeau, dann wird hyraxs urspr & A ; uuml ; ngliche Feld zu einem leeren Feld und der Zielort wird Massachusetts Institute of Technology einer neuen Figur & A ; uuml ; berschrieben

Allgemein

  • Wenn erst der erste Button angeklickt wurde, dann mess dies gespeichert werden und dice Hintergrundfarbe mess orange werden, damit adult male merkt, hyrax ein Button angeklickt wurde. Man darf dies nur tun, wenn eine richtige Figur gew & A ; auml ; hlt wurde, sonst mess der Hintergrund putrefaction werden, damit der Spieler merkt, hyrax er an einen falschen Ort geklickt hatte und zudem darf dann der Zug nicht gespeichert werden. Damit adult male schon im N & A ; auml ; chsten und nicht im & A ; uuml ; bern & A ; auml ; chsten Zug Massachusetts Institute of Technology einem legalen Zug fortfahren kann.
  • Schach und Schachmattsituationen m & A ; uuml ; ssen am Ende eines Zuges ausgegeben werden.

5. Schlusswort

Ich musste feststellen, hyrax hyrax Ziel eines Schachcomputers Massachusetts Institute of Technology einem Gegner viel Zu hoch gesteckt war. Zu schaffen gaben mir dice vielen Fehler, bei denen ich manchmal Bi Zu einem Monat brauchte um sie Zu finden. Einerseits kamen, die Fehler gold Mangel an Wissen, Weil dice Videoanleitungen zu wenig ausf & A ; uuml ; hrlich waren. Anderseits machte ich aber auch viele inhaltliche Fehler, bei denen ich & A ; uuml ; berlegungsfehler hatte. Diese Fehler waren oftmals sehr schwierig zu finden, district attorney adult male eine Idee chapeau, wie etwas funktionieren soll. Doch der Computer versteht aber nur genau hyrax, was adult male eingibt und dies entspricht oft nicht der eigenen Vorstellung, wie etwas funktionieren soll. So musste ich bei vielen fehlerhaften Programmteilen hyrax Programm an verschiedenen Stellen & A ; auml ; ndern und per Ausschlussverfahren herausfinden, wo das Problem slowdown und worin der Fehler bestand. Am meisten aber hatte mich die grafische Oberfl & A ; auml ; che aufgehalten, district attorney ich sehr Lange brauchte um mich auf eine Bibliothek degree Fahrenheit & A ; uuml ; R eine grafische Oberfl & A ; auml ; che festzulegen und dice Erlernung und Anwendung harzig verliefen.

R & A ; uuml ; ckblickend gesehen hatte ich in diesem Jahr sehr viel & A ; uuml ; ber die Programmierung erfahren. Ich musste jedoch feststellen, hyrax adult male sehr viel mehr Zeit braucht um gewisse Sachen zu Programmieren. Doch diese intensive Besch & A ; auml ; ftigung Massachusetts Institute of Technology den Fehlern ist degree Fahrenheit & A ; uuml ; R mich die beste Methode etwas zu lernen, n & A ; auml ; mlich durch & amp ; bdquo ; Learning by Making ”

6. Anhang

6.1 Literaturverzeichnis

– & A ; bdquo ; Qt 4 – GUI-Entwicklung Massachusetts Institute of Technology C++ ”

6.2 Video Anleitungen

  • Video2Brain C++
  • Video2Brain Visual C++

6.3 Internetseiten

  • www.qt-forum.de ( hypertext transfer protocol: //www.qtforum.de/forum/viewtopic.php? t=9915 & A ; highlight= )
×

Hi there, would you like to get such a paper? How about receiving a customized one? Check it out