Projektdokumentation

Ähnliche Dokumente
Funktionen in JavaScript

Ereignisse Auf Benutzereingaben reagieren

Funktionen nur wenn dann

Scripting für Kommunikationswissenschaftler Gruppe C

Funktionen nur wenn dann

Funktionen in JavaScript

JavaScript clientseitige Programmiersprache zur Dynamisierung von Internetseiten

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

W7 Projekt im Zusammenhang Gästebuch

Es gibt immer einen Schlüssel und einen zugehörigen Wert,

Implementieren von Klassen

Stand und Ausblick

Ein erstes "Hello world!" Programm

Grundlagen der Informatik Vorlesungsskript

Eine Linkliste in Word anlegen und zur Startseite des Browsers machen

(3) Button-Klick & Texteingabe

Kapitel 1: Die ersten Schritte 1

Browser Grid Funktionalitäten

Arbeitsblatt 6: Programmierung geometrischer Figuren

1 - EIN NEUES GAMEGRID ANLEGEN

Computergrundlagen HTML Hypertext Markup Language

Einstieg in die Informatik mit Java

Übung: Bootstrap - Navbar

Programme erstellen in Java

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.


Rückgabewerte von Methoden

Um Ihren neuen»counter«(besucherzähler) auf einer Webseite zu installieren, benötigen Sie folgenden HTML-Code:

Inhalt. Seite 1 von 14

Formular-Widgets oder Spendenbuttons erstellen

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

Einführung in die Programmierung für NF MI. Übung 07

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 3: Webdesign mit CSS Stand: Übung WS 2015/2016. Benedikt Schumm M.Sc.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

W7 Projekt im Zusammenhang Gästebuch

1 Definition der Selektoren Einbinden der CSS 3 Möglichkeiten Farbangaben Schriftformatierung Abstände...

Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg

CSS - Cascading Stylesheets

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Inhalt. 1. Admin Bereich Anmeldung Assessment Übersicht Zertifikat und Beraterfeedback-Dokument...

Zum Bearbeiten ins Backend einloggen

CargoDocs für Schiffsführer - Benutzeranleitung

1. Setzen des Passwort in der ADP World

Schach Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Brettspielnetz.de

Entschädigungen für Kontrolltierärzte Bedienungsanleitung

1 pulsierender Speicher

HTML Tutorial Part I - Einführung und erste Texte schreiben

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Formulare für Bieneninspektoren Bedienungsanleitung

Praktikum 4: Grafiken und Ereignisse

Anregungen zu Übung 2

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Definitionen/Vorarbeit zum Thema Java

Übersicht Shell-Scripten

Bearbeitung Online-Antrag

Übertragung der Software Aktivierung auf neuen PC

Erzeugen und Testen Leittext

IBM Software Demos Rational Systems Developer Introduction

Kennen, können, beherrschen lernen was gebraucht wird

3. Das erste eigene Programm mit Greenfoot: Litte Crab

Einführung in die Programmierung 1

Designänderungen mit CSS und jquery

Datenbanken und Netzanbindung

6. Zeiger Allgemeines Definition eines Zeigers

JavaScript II. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing. Martin Schober

LehrerInneninfo 4. Informatikkonzepte: 4.3

1. Setzen des Passworts in der ADP World

Spreed Call Video. Kurzanleitung. 1 Übersicht Bereitstellen eines Videos Konfiguration des Spreed Call Video...3

Access 2010 Programmierung Import und Export nach Excel

Visual Basic Express Fehlerermittlung

Funktionen. - sind kleine, meist ausgelagerte Programme bzw. Programmfragmente. - können Werte zurückgeben, z.b. Berechnungen

Malteser EDV-Training. Modul 4: Online-Kalender. Malteser Hilfsdienst e.v Diözese München-Freising - Integrationslotsendienst

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Aufwandprotokoll für Amtstierärzte Bedienungsanleitung

Programmieren in Java -Eingangstest-

Hinweise zur ersten Anmeldung

Java: Eine kurze Einführung an Beispielen

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern

Programmieren 2 (Prof. Hasbargen) Klausur

Javakurs für Anfänger

Grundlagen-Beispiel CSS

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Programmierbüchlein Grundlagen der Programmierung. Rootgames

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

Wert. { color: blue; }

Inhaltsverzeichnis. Florian Bauer CSS Seite 2 von 10

Transkript:

Projektdokumentation Schachspiel mit JavaScript Daniel Mockenhaupt Klasse 10b Projektdokumentation: Schachspiel mit JavaScript Seite 1

Einführung Ziel dieser Projektarbeit soll die Erstellung eines Schachspiels sein, bei dem der Benutzer gegen den Computer spielt. Es wird mit Hilfe von HTML, CSS und JavaScript realisiert und in einem Internet-Browser ausgeführt. Die besten Resultate werden mit dem Firefox-Browser von Mozilla erzielt. Dieses Dokument beinhaltet einen Überblick über die Funktionsweise des Programms. Da es allerdings sehr kompliziert ist und aus insgesamt mehreren tausend Zeilen Code besteht, kann hier nicht allzu detailliert auf die einzelnen Aspekte eingegangen werden. Bedienungsanleitung Die Datei JSChess_Main.html muss mit einem Browser geöffnet werden. Die Bedienung des Programms ist selbsterklärend. Der Nutzer spielt mit der Farbe Weiß und führt deshalb den ersten Zug aus, indem er auf die Figur, die er bewegen möchte, klickt und danach auf das Feld, auf das die Figur gesetzt werden soll. Ist der Zug ungültig, geschieht nichts und der Nutzer muss erneut zuerst auf die Figur, dann auf das Feld klicken, auf das sie gerückt werden soll. In der Ecke rechts oben wird die Farbe angezeigt, die gerade am Zug ist. Nach dem eigenen Zug erfolgt automatisch der Zug des Computers. Dies kann kurze Zeit in Anspruch nehmen. Alle Figuren sind durch Buchstaben die Anfangsbuchstaben der Figuren dargestellt. Gültig sind alle Züge wie beim normalen Schach. Wenn eine Figur geschmissen wurde, erscheint ihr Buchstabe im Feld unter dem Schachbrett. Anmerkung Da das Programm sehr kompliziert ist, kann es manchmal passieren, dass ein Fehler auftritt. In solch einem Fall kann man keinen Zug mehr tätigen. Das Starten eines neuen Spiels stellt die einzige Möglichkeit dar, das Problem zu beheben. Auch aufgrund der Auflösungs- und Browser-Kompatibilität kann es zu kleineren Beeinträchtigungen beim Spielen kommen, die sich meist jedoch auf Verschiebungen im Layout beschränken. Da die Programmierung einer Künstlichen Intelligenz als Gegner zu aufwändig wäre, werden die Computer-Züge zufällig generiert. Projektdokumentation: Schachspiel mit JavaScript Seite 2

Klassendiagramm Da JavaScript keine objektorientierte Programmiersprache sondern eine Skriptsprache ist, ist die Verwendung von Objekten nicht zwingend erforderlich. Da sie jedoch bei größeren Projekten die Übersichtlichkeit des Programmcodes deutlich erhöhen, habe ich mich dafür entschieden, das Schachspiel mit Objekten zu realisieren. Das Hauptobjekt stellt dabei das Schachbrett-Objekt dar. Dies kann man sich gut wie ein Schachbrett in der Realität vorstellen. Es enthält als Eigenschaften die 64 Felder des Schachbrettes und speichert die Position einer jeden Figur. Daher werden für die Schachfiguren keine eigenen Objekte erstellt. Ein weiteres Objekt stellt das Objekt der Klasse Checker dar. Dies lässt sich nicht auf die Realität projizieren, ist allerdings das wichtigste Objekt des Programms. Es überprüft für jeden getätigten Zug dessen Gültigkeit. Das Checker-Objekt enthält sozusagen die Spielregeln und wendet diese an. Schachbrett possb1, possb2, possb3, possb4, possb5, possb6, possb7, possb8, posst1, posst2, posss1, posss1, possl1, possl2, possd, possk WorB counter name pos aktfigure Checker poswb1, poswb2, poswb3, poswb4, poswb5, poswb6, poswb7, poswb8, poswt1, poswt2, posws1, posws1, poswl1, poswl2, poswd, poswk Projektdokumentation: Schachspiel mit JavaScript Seite 3

Erklärung der Eigenschaften Das Schachbrett-Objekt speichert wie bereits erwähnt die Positionen der einzelnen Spielfiguren. Es enthält daher 32 Eigenschaften. Deren Namen sind alle nach dem gleichen Prinzip aufgebaut, wie im Folgenden verdeutlicht. Figur (hier Bauer) possb1 Nummer (hier 1. Bauer) Farbe (hier Schwarz) Die 32 Variablen speichern jeweils, auf welchem Feld die entsprechende Figur steht. Dafür wird ein numerischer Wert verwendet. Die Felder des Schachbrettes haben folgende Nummern erhalten: 11 21 31 41 51 61 71 81 12 22 32 42 52 62 72 82 13 23 33 43 53 63 73 83 14 24 34 44 54 64 74 84 15 25 35 45 55 65 75 85 16 26 36 46 56 66 76 86 17 27 37 47 57 67 77 87 18 28 38 48 58 68 78 88 Beispiel: Hat die Eigenschaft poswd den Wert 88, bedeutet dies, dass die weiße Dame sich auf dem Feld in der rechten unteren Ecke befindet. Projektdokumentation: Schachspiel mit JavaScript Seite 4

Erklärung des Programmcodes JSChess_Main.html stellt die Main -Datei dar. Hierin werden alle anderen JavaScript-Dateien eingebunden und verwendet. Im Folgenden soll ein grober Überblick über den Aufbau dieser Haupt-Datei vermittelt werden. Zu Beginn des Quellcodes steht die Deklaration des Styles, in dem das Layout für die einzelnen Elemente definiert wird. Die folgende Zeile legt beispielsweise fest, dass Überschriften dritter Ordnung zentriert und unterstrichen dargestellt werden. h3 {text-align: center; text-decoration: underline} Auf die Style-Definition folgt die Einbindung der externen JavaScript-Dateien, wie hier die JavaScript-Ressource, die die Funktionen für Züge nach rechts beinhaltet: <script type="text/javascript" src="mychess_moveright.js"></script> Danach steht das eigentliche JavaScript-Programm, aus dem nun wichtige Stellen näher betrachtet werden sollen. Zu Beginn wird das Schachbrett-Objekt aus der Klasse Schachbrett erstellt. Als Parameter, die später die Eigenschaften des Objektes darstellen, werden die Positionen der einzelnen Figuren übergeben. Schachbrett = new Schachbrett(21,22,23,24,25,26,27,28,11,18,12,17,13,16,15,14, 71,72,73,74,75,76,77,78,81,88,82,87,83,86,85,84); Nun ist das Schachbrett virtuell gefüllt, allerdings sieht der Benutzer noch keine Figuren auf dem Brett (Das Schachbrett besteht aus HTML-Div-Elementen). Deshalb wird durch die Funktion fillboard für alle Figuren ihr Anfangsbuchstabe in das Feld geschrieben, auf dem sie sich befinden. Dies geschieht durch Anweisungen wie die Folgende. document.getelementbyid(schachbrett.possb1).innerhtml = '<span class= "black">b</span>'; Schachbrett.posSB1 hat die Position des ersten schwarzen Bauers gespeichert. Das Element mit der entsprechenden ID, auf das zugegriffen wird, repräsentiert das Feld auf dem der Bauer erscheinen soll. Durch das Ändern der Eigenschaft innerhtml wird der Buchstabe B in das Feld geschrieben, der für Bauer steht. Jetzt haben wir das Schachbrett mit allen Figuren befüllt. Bei einem Klick auf ein Feld sollen nun diverse Anweisungen ausgeführt werden. Um den Klick zu detektieren wird folgende Anweisung benutzt. <div onclick="test(11)"></div> Projektdokumentation: Schachspiel mit JavaScript Seite 5

Erfolgt ein Klick auf das Feld, wird die Funktion test mit der Feld-ID aufgerufen. Diese Funktion wartet nach dem ersten Klick auf einen weiteren Klick auf ein anderes Feld. Hat sie das Zahlenpaar der beiden Felder erhalten, ruft sie die ausgelagerten Funktionen auf, die jeweils die Gültigkeit des Zuges überprüfen. So ist z.b. in der Datei MyChess_moveRight.js die Funktion moveright enthalten, die zuerst überprüft, ob die gewählte Figur nach rechts gehen kann, und wenn dies der Fall ist, den Zug ausführt. Interessant ist noch, wie die Züge des Computers zustande kommen. Die Funktion randommove erzeugt zwei zufällige Zahlen. Dies geschieht durch folgende Codezeile. randnr1 = Math.round((Math.random() * 100)); Die Zufallszahlen werden nun als die zwei Felder interpretiert, auf die der Computer klickt. Ist der Zug ungültig, werden zwei neue Zufallszahlen generiert. Dies wird so lange wiederholt, bis ein gültiger Zug stattfindet. Abschließende Bemerkung In obiger Beschreibung konnte aufgrund der Komplexität des Programms nur ein kleiner Überblick über dessen Funktionsweise und Aufbau gegeben werden. Quellen Deckblatt: http://www.gif-bilder.de/weblog/wp-content/uploads/2008/03/schach.jpg Projektdokumentation: Schachspiel mit JavaScript Seite 6