JavaScript Schere, Stein, Papier

Ähnliche Dokumente
Funktionen in JavaScript

Funktionen in JavaScript

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

Schleifen: Immer wieder dasselbe tun

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

C++ - Einführung in die Programmiersprache Schleifen

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

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

Übungen Programmieren 1 Felix Rohrer. Übungen

Steuern des GSR-Interface mit QBasic

Eine kleine Befehlssammlung für Java Teil1

Algorithmen und ihre Programmierung -Teil 2-

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

Funktionen nur wenn dann

Schleifen in C/C++/Java

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

Funktionen nur wenn dann

Übung zu Einführung in die Informatik # 11

Schleifen in Javascript

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

05 For-Schleifen. For-Schleifen 1/7 Was ist eine Schleife?

Programmsteuerung mit PHP - if/else, elseif,switch

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Einstieg in die Informatik mit Java

Schleifen in C/C++/Java

Übersicht Shell-Scripten

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

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

1)Login Funktion ohne Datenbank

Informatik I Übung, Woche 40

Ereignisse Auf Benutzereingaben reagieren

Einstieg in die Informatik mit Java

Entwurf von Algorithmen - Kontrollstrukturen

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

VORKURS INFORMATIK EINE EINFÜHRUNG IN JAVASCRIPT

Javakurs für Anfänger

Wir arbeiten mit Zufallszahlen

Kontrollstrukturen -- Schleifen und Wiederholungen

Access 2010 Programmierung Schleifen

Einstieg in die Informatik mit Java

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern

2 Eine einfache Programmiersprache

Visual Basic Express Fehlerermittlung

a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um

Wie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort?

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Anweisungen und Kontrollstrukturen

4 Schleifen -= Entstanden unter Excel 2003 =-

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

Einführung in die Programmierung II. 3. Kontrollstrukturen

Kleine Anekdote. Schleifen in C

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

Bash-Skripting Linux-Kurs der Unix-AG

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

einlesen n > 0? Ausgabe Negative Zahl

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

Übung zur Vorlesung Multimedia im Netz

Thomas Gewering Benjamin Koch Dominik Lüke. (geschachtelte Schleifen)

Das Handbuch zu Vier gewinnt

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

Stand und Ausblick

Schleifeninvarianten. Dezimal zu Binär

Zahlenraten: Ein Spiel in Java.

Webbasierte Programmierung

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

Öffnen Sie über "Extra/Makro/Projekt Manager" den VBA Projekt Manager

3. Anweisungen und Kontrollstrukturen

Übungen zu C++ Kapitel 1

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

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Operatoren (1) Operatoren (2)

Linux und Shell-Programmierung Teil 6

Arrays und Schleifen

Michaela Weiss 30. März Lerneinheit 3: VBA Teil 1: Eingabe/Ausgabe

Tag 3 Repetitorium Informatik (Java)

Dr. Monika Meiler. Inhalt

Aufgabe Total Punkte

Inhalt. Seite 1 von 14

Informatik I Übung, Woche 41

Grundlagen von C# - 2

Java: Eine kurze Einführung an Beispielen

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Primzahlen und Programmieren

Der CodeBug. A) Erste Schritte. 1) Einleitung

Erster Bug: eine Motte

PHP. M.Sc. Nadine Preuß Geographische Analyse- und Darstellungsmethoden WS 15/

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Würfelzoo (Dice's Zoo)

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Transkript:

JavaScript Schere, Stein, Papier Zwei Personen suchen sich jeweils ein Symbol aus und nennen es gleichzeitig. Haben beide Spieler das gleiche Symbol, ist die Runde unentschieden. Ansonsten gelten folgende Regeln: Schere schneidet Papier und gewinnt Papier wickelt Stein ein und gewinnt Stein schleift die Schere und gewinnt Weitere Überlegungen: Anzahl der Runden ist nicht festgelegt Gewinnt ein Spieler dreimal, aber nicht unbedingt in Folge, dann hat er gewonnen und das Spiel ist aus. Schritt 1: Festlegen der Vorgangsweise und der Variablen: Überlegung Variable Der Computer denkt sich zu Beginn jeder Runde ein var symbolcomputer; Zahl von 1 bis 3 aus, die in ein Symbol gewandelt wird. Der Spieler gibt eine Zahl von 1 bis 3 3in, die var symbolspieler; ebenfalls gewandelt wird Dann wird verglichen, ob wer gewonnen hat var anzahlrunden = 0; var gewinnecomputer = 0; var gewinnespieler = 0; Hat einer dreimal gewonnen, wird das Spiel beendet var gewinnbedingung = 3; Es wird ausgegeben, wer wie oft gewonnen hat. Am Beginn müssen die Variablen deklariert werden. Man könnte alle in eine Zeile schreiben, mit Komma getrennt. Aber zwecks Übersicht kommen sie untereinander. Bei den Variablen ist es sinnvoll, möglichst sprechende Bezeichnungen zu verwenden. Wenn im Verlauf des Programmierens noch weitere Variablen dazukommen, ist das überhaupt kein Problem. Diese werden einfach an Ort und Stelle deklariert, sie müssen nicht hier am Anfang stehen. Je länger das Programm ist, desto mehr verteilt sich das. Schritt 2)Schleife mit do-while : Nun folgt der Beginn der do-while -Schleife. Wenn man das Programm jedes Mal neu startet, wäre das sehr umständlich und außerdem würde der Computer jedes Mal eine neue Zahl errechnen. Es gibt bestimmte Teile im Programm, die nur einmal ausgeführt werden sollen, und Teile die immer wieder ausgeführt werden müssen. In diesem Beispiel muss folgendes immer wiederholt werden: der Spieler gibt seine Zahl ein, diese wird verglichen und ein Ergebnis ausgegeben. Daher braucht es hier die do while Schleife: es wird solange wiederholt, solange eine angegebene Bedingung erfüllt ist. Ist diese falsch, endet die Schleife sofort. Die Schleife wird auf jeden Fall einmal durchlaufen. Eberhart 2_1.js_schere.docx 1

do{ frage nach einer Zahl, vergleiche sie und gib das Ergebnis aus }while ( geratenezahl!= ausgedachtezahl ); Schritt 3)Erstelle ein neues HTML-Dokument in HTML5: Code: <script> //Variable festlegen var symbolcomputer; var symbolspieler; var anzahlrunden = 0; var gewinnecomputer = 0; var gewinnespieler = 0; var gewinnbedingung = 3; do { hier kommt der ganze Code }while (gewinnespieler < 3 && gewinnecomputer < 3) </script> Die Variablen gewinnecomputer und gewinnespieler starten bei Null und dienen dazu, mitzuzählen, wer nämlich wie oft gewonnen hat. Das wird am Ende dann ausgegeben. Bei jedem Sieg wird diese Variable um Eins erhöht (siehe Schritt 5). Auch die Anzahl der Runden wird hier festgelegt und mit 0 gestartet. Da eine Zählvariable vor der ersten Verwendung bereits einen Wert haben muss, setze man sie hiermit auf 0. Mit dem Hochzählen später will man am Ende erfahren, wie viele Runden insgesamt, bis der erste Gewinner feststeht nötig waren. Eberhart 2_1.js_schere.docx 2

Schritt 4)Die Zufallszahl festlegen lassen von 1 bis 3 Man lässt mit Math.random eine Zufallszahl erzeugen, diese liegt immer zwischen 0 und 1. Das reicht nicht, daher multipliziert man es mit der gewünschten Obergrenze. Das Ergebnis hat aber viele Kommastellen. Daher wird das Ergebnis in der nächsten Zeile mit Math.round gerundet und das Ergebnis wird der Variablen zugewiesen. Dabei wird aber die ausgedachte Zahl mit 0,5 addiert. Denn durch das kaufmännische Runden könnte man eine Null erhalten, wenn z.b. 0,1 mit 3 multipliziert wird und somit 0,3 ergibt. Das Runden würde somit ein abgerundetes Ergebnis von 0 ergeben. Null soll aber nicht vorkommen. Daher der kleine Kunstgriff: man sorgt dafür, dass die Zahl immer größer als 0,5 ist, indem man 0,5 addiert. Das Ergebnis liegt nach dem Runden immer im Bereich von 1 bis 3. Danach wird mit einer if Abfrage die ausgedachte Zahl des Computers als Text dem Symbol vom Computer übergeben. Schritt 4)Die Zufallszahl einer Möglichkeit zuordnen Der Spieler wählt anhand der Eingabe der Zahlen 1 bis 3. Diese drei Zahlen 1, 2 und 3 werden nun einer der drei Möglichkeiten zugeordnet. Diese Wahl wird als richtiger Text in eine Variable gespeichert. Die drei Zahlen werden nun zugeordnet: 1 = Schere, 2 = Stein und 3 = Papier. Das wird dem Spieler vorher noch bekanntgegeben: Eberhart 2_1.js_schere.docx 3

Schritt 5)Vergleich, wer die Runde gewonnen hat Haben beide, der Computer und der Spieler das gleiche Symbol, ist die Runde unentschieden. Beachte: der Strichpunkt ist innerhalb, gleich nach dem alert. Das if selbst braucht zum Abschluss kein Semikolon. Nun muss man jede verschiedene Art mit einer IF-Entscheidung anschreiben, die zu einem Gewinn führt. Streng nach der Vorschrift: Schere gewinnt gegen Papier Papier gewinnt gegen Stein Stein gewinnt gegen Schere Dieses nun für alle Möglichkeiten. Sieht nach viel aus, aber man sollte einfach copy & paste nutzten und dann einige wenige Elemente umschreiben. Dazwischen wird hochgezählt, wie oft der Computer bzw. der Spieler gewonnen hat. Der Start erfolgte ja bei null, als die Variable ganz zu Beginn registriert wurde. Diese Ausgabe erfolgt dann am Ende des Programms. Code: if(symbolcomputer == "Schere" && symbolspieler == "Stein") { gewinnespieler++; alert("du gewinnst gegen Schere"); } Nun gibt es insgesamt 6 Möglichkeiten, da die Unentschieden bereits verarbeitet sind, siehe oben. Man sollte jedoch keine Kombination auslassen. Da sonst das Spiel nicht richtig funktioniert. Hier wurde so vorgegangen, dass zuerst alle Möglichkeiten bei symbolcomputer durchgearbeitet wurde, Schere 2 xmal dann Stein 2 mal und dann noch Papier 2 mal. Jeweils mit der richtigen Lösung, wer denn nun gewinnt. Eberhart 2_1.js_schere.docx 4

Schritt 6)Anzahl der Runden mitzählen Da man am Ende wissen will, wie viele Runden tatsächlich gespielt wurden, wird jedes Mal die Variable anzahlrunden mit ++ hochgezählt. Die Registrierung der Variablen erfolgte ganz zu Beginn. Schritt 7)Das Spiel beenden, wenn wer dreimal gewonnen hat Im while wird wird überprüft, ob beide Spieler immer weniger als 3 Siege haben. Solange dies der Fall ist, beginnt oben bei dem do eine neue Runde. Ansonsten geht es hinter dem while weiter. Hier kommt nämlich dann die Meldung, wer wie oft gewonnen hat. Wer der Spieler 3 oder mehr Siege verbuchen kann, hat er gewonnen. Das wird im if festgestellt und im alert verkündet. Eberhart 2_1.js_schere.docx 5

Schritt 8)Ausgabe, wer wie oft gewonnen hat alert(gewinnespieler + " zu " + gewinnecomputer); Ergebnis: Eberhart 2_1.js_schere.docx 6