Java/Array und Java/Pong: Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
< Java(Unterschied zwischen Seiten)
main>Ugh
Keine Bearbeitungszusammenfassung
 
main>Karl Kirst
(Kurzinfo ohne Nummerierung)
 
Zeile 1: Zeile 1:
{{Kasten gelb|Dieser Artikel entspricht der Ausarbeitung auf http://informatik.zum.de/pieper/
{{Kurzinfo|Java|Idee|Software|Links}}
Dort finden sich ausdruckbare Materialien und die zugehörigen Beispiele.}}


==Zur Konzeption==
{{Zitat wpde|
{{Unterrichtsidee}}
Das 1972 von Atari veröffentlichte Pong wurde zum ersten weltweit populären Videospiel. Es gilt allgemein als Urvater der Videospiele, obgleich zuvor bereits Videospiele entwickelt wurden; diese früheren Spiele erreichten jedoch noch kaum Menschen jenseits der Universitäten.
* Es wird anhand von elementaren Methoden zum Umgang mit dem Array der Array erklärt. Man kann sich dabei auf Mathematik beziehen: x1, x2, x3.. xn als indizierte Variable sollte den Schülern bekannt sein.
* Ein netter Vergleich für Neulinge ist ein "Schubladenschrank" mit nummerierten Schubladen.
* Die Beispiele sind auf den Umgang mit BlueJ hin konzipiert und enthalten daher keine main Methode.
* Es können Parallelen zum Alltag hergestellt werden: Wo nutzen Schüler privat so etwas wie einen Array (z.B. Karteikasten, Buch, Kalender, Handyadressbuch...).


== Datenstrukturen ==
Das Spielprinzip von Pong ist simpel und ähnelt dem des Tischtennis: Ein Punkt („Ball“) bewegt sich auf dem Bildschirm hin und her. Jeder der beiden Spieler steuert einen senkrechten Strich („Schläger“), den er mit einem Drehknopf (Paddle) nach oben und unten verschieben kann. Lässt man den „Ball“ am „Schläger“ vorbei, erhält der Gegner einen Punkt.
{{Zitat wpde|In der Informatik ist eine '''Datenstruktur''' eine bestimmte Art, Daten zu verwalten und miteinander zu verknüpfen, um in geeigneter Weise auf diese zugreifen und diese manipulieren zu können. Datenstrukturen sind immer mit bestimmten Operationen verknüpft, um eben diesen Zugriff und diese Manipulation zu ermöglichen.
|Pong|19.11.06}}
Das '''Array''' ist die einfachste verwendete Datenstruktur. Es werden hierbei mehrere Variablen vom selben Basisdatentyp gespeichert. Ein Zugriff auf die einzelnen Elemente wird über einen Index möglich. (...)
Im eindimensionalen Fall wird das Array häufig als Vektor und im zweidimensionalen Fall als Tabelle oder Matrix bezeichnet. Arrays sind aber keinesfalls nur auf zwei Dimensionen beschränkt, sondern werden beliebig mehrdimensional verwendet.
Wegen ihrer Einfachheit und grundlegenden Bedeutung bieten die allermeisten Programmiersprachen eine konkrete Umsetzung dieser Datenstruktur als zusammengesetzten Datentyp Array im Grundsprachumfang an.  
|Datenstruktur|18.05.2006}}  


==Java-Varianten==


== Ein erstes Beispiel ==
===Mit Quelltext===
<java>
====Pong alleine====
public class ArrayTest1
* http://enemyboss.net/games/Pong/
{
====Pong zu 4ert====
  private double[] zahlenFeld;
* http://home.houston.rr.com/javaproject/ Basiert auf [http://www.goldenstudios.or.id Golden T Game Engine]
  public ArrayTest1()
  {
    zahlenFeld = new double[10]; 
  }
 
  public void setZahlInFeld(int index, double wert)
  {
    zahlenFeld[index]=wert;
  }
 
  public double getZahlInFeld(int index, int wert)
  {
    return zahlenFeld[index];
  } 
}
</java>


Die Eigenschaft zahlenfeld wird als Array mit double-Elementen deklariert:
{{Übung|
::private double[] zahlenFeld;
# Modellieren Sie das Spiel Pong, ohne dass Sie den Quelltext kennen.
Das Kennzeichen hierfür sind die eckigen Klammern.
# Analysieren Sie den Quelltext (Nur den groben Aufbau).
Im Konstruktor wird dann ein neues Array mit 10 Elementen angelegt:
}}
::zahlenFeld = new double[10]; 
Auf die einzelnen Elemente kann man mit Angabe des Index zugreifen:
::zahlenFeld[5]=27.3;
setzt beispielsweise zahlenFeld mit dem Index 5 auf den Wert 27.3
So erklärt sich die get- und die set-Methode im obigen Beispiel. Natürlich muss bei einem Array noch der Index genannt werden, weshalb sich der Übergabeparameter index ergibt.


{{Kasten gelb|Hinweis:
===Tutorial===
Die Zählung eines Arrays beginnt bei 0, daher hat ein Array mit 10 Elementen den höchsten Index 9.}}
* [http://javacooperation.gmxhome.de/PongKIDeu.html KI für Pong]


Greift man auf einen Index außerhalb des festgelegten Bereichs zu, so erhält man eine Fehlermeldung. Bei dem obigen Beispiel reicht es, den Index 10 zu wählen.  
===Applet===
* [http://www.xnet.se/javaTest/jPong/jPong.html Pong]


==length==
===Online-Versionen===
Jeder Array hat die Eigenschaft length, mit der die Länge des Feldes festgestellt werden kann.
* [http://www.zumzum.net/pong/ PONG!]
* [http://pong.flash-gear.com/ Massively Multiplayer Pong]
* [http://www.fussballturnier.org Pong als Fußballspiel 2006]


<java>
[[Kategorie:Software]]
  public double getLaenge()
[[Kategorie:Spiele]]
  {
[[Kategorie:Java]]
    return zahlenFeld.length;
  }
</java>
 
==Ausgabe aller Werte==
Die Ausgabe aller Werte eines Arrays lässt sich einfach mit Hilfe einer einfachen Schleife realisieren, die abbricht, wenn eine Zählvariable (in diesem Fall i) die Länge des Feldes erreicht hat.
Denken Sie daran, dass i zunächst auf 0 und nicht auf 1 gesetzt werden muss.
 
<java>
  public void gibAus ()
  {
      int i=0;
      while(i<zahlenFeld.length){
        System.out.println("Index:"+i+" hat den Wert "+zahlenFeld[i]);
        i++;
      }
  }
</java>
 
==Zufallszahlenfeld==
<java>
  public void macheZufallsfeld (int maximum)
  {
      int i=0;
      while(i<zahlenFeld.length){
        zahlenFeld[i]=(int)(maximum*(Math.random()))+1;
        i++;
      }
  }
</java>
Die oben abgebildete Methode weist dem Feld Zufallszahlen (ohne Nachkommastellen) zu. Das ist sehr praktisch, wenn man das Feld nicht von Hand befüllen möchte. maximum gibt obere Grenze an. Die Zufallszahlen liegen also zwischen 1 und (einschließlich) maximum.
 
 
== Was ist die größte Zahl im Feld ==
<java>
  public double getGroessteZahl ()
  {
      double maximum=zahlenFeld[0];
      int i=1;
      while(i<zahlenFeld.length){
        if (zahlenFeld[i]>maximum) {
            maximum=zahlenFeld[i];   
        }
        i++;
      }
      return maximum;
  } 
</java>
 
Eine typische Aufgabe im Zusammenhang mit Arrays ist, die größte Zahl zu suchen (z.B. Maximaltemperatur bei einer Temperaturzeitreihe).
Dabei geht man wie folgt vor:
* Eine Hilfsvariable maximum bekommt den ersten Wert des Feldes zugewiesen.
* Danach werden alle anderen Werte des Feldes durchlaufen und mit maximum verglichen.
* Jedesmal, wenn ein größerer Wert gefunden wurde, wird maximum überschrieben.
 
Die folgenden Übungen sind alle ähnlich: Sie benötigen eine Schleife, Hilfsvariablen und zumindest bei 1 und 2 eine if-Abfrage.
 
{{Übung|# Lassen Sie in einer neuen Methode die kleinste Zahl im Feld suchen.
# Lassen Sie in einer neuen Methode den Index und nicht den Wert des größten Elementes zurückgeben.
# Lassen Sie in einer neuen Methode die Summe aller Zahlen im Feld zurückgeben. Der Benutzer soll eine Zahl übergeben. Wenn die Zahl im Feld vorkommt, soll true zurückgegeben werden, wenn nicht false.}}
 
==siehe auch==
* [[Java]]
 
==Weblinks==
* http://www.programmersbase.net/Content/Java/Content/Tutorial/Java/Array.htm
* http://www.rolandgeyer.at/kurse/german/javsrc/jav017.html
 
[[Kategorie:Informatik]]

Version vom 12. November 2012, 14:32 Uhr

Vorlage:Kurzinfo

Das 1972 von Atari veröffentlichte Pong wurde zum ersten weltweit populären Videospiel. Es gilt allgemein als Urvater der Videospiele, obgleich zuvor bereits Videospiele entwickelt wurden; diese früheren Spiele erreichten jedoch noch kaum Menschen jenseits der Universitäten.

Das Spielprinzip von Pong ist simpel und ähnelt dem des Tischtennis: Ein Punkt („Ball“) bewegt sich auf dem Bildschirm hin und her. Jeder der beiden Spieler steuert einen senkrechten Strich („Schläger“), den er mit einem Drehknopf (Paddle) nach oben und unten verschieben kann. Lässt man den „Ball“ am „Schläger“ vorbei, erhält der Gegner einen Punkt.


Wikipedia-logo.png Pong, Wikipedia – Die freie Enzyklopädie, 19.11.06 - Der Text ist unter der Lizenz „Creative Commons Attribution/Share Alike“ verfügbar; zusätzliche Bedingungen können anwendbar sein. Siehe die Nutzungsbedingungen für Einzelheiten. In der Wikipedia ist eine Liste der Autoren verfügbar.



Java-Varianten

Mit Quelltext

Pong alleine

Pong zu 4ert


Übung
  1. Modellieren Sie das Spiel Pong, ohne dass Sie den Quelltext kennen.
  2. Analysieren Sie den Quelltext (Nur den groben Aufbau).


Tutorial

Applet

Online-Versionen