[oop.wirlernen.at]

Aufgabenstellung: Schatzsuche

In dieser Aufgabenstellung sollst du mit Hilfe der objektorientierten Programmierung in PHP eine Schatzsuche programmieren. Ausgangspunkt deiner Bemühungen ist eine BEREITS mit PHP programmierte Schatzsuche und das damit das weiter unten angeführte Listing index.php. Dieses Listing muss dann mit den hier erwähnten Anweisungen verändert werden - du findest hier eine mögliche Musterlösung.
Hier findest du alle benötigten Dateien im ZIP - Format!

* Schatzsuche - Schülerversion * Schatzsuche - Profiversion :-) * Aufgabenstellung zu Schatzsuche * Quelltext von index.php * Quelltext von dreigewinnt.php * Download der benötigten Dateien in ZIP-Form

Schatzsuche - erzeugt durch index.php UND die Musterlösung

Schatzsuche laut index.phpMusterlösung

Quelltext von index.php

Der Code von index.php
(Code OHNE Zeilennummern)
001 | <?php
002 | $rundenanzahl
=1//Variable f&uuml;r die Rundenanzahl - Startwert von 1
003 |                  // gilt bis er durch $_POST['rundenanzahl'] ersetzt wird
004 |
$woschatz=-1//Die Felder sind von 0 bis 5 durchnummeriert - Startwert von -1
005 |               // gilt bis er durch $_POST['versteck'] ersetzt wird
006 | //falls vom Formular ein Wert f&uuml;r die Rundenanzahl &uuml;bergeben wurde...
007 |
if (isset($_POST['rundenanzahl'])){
008 |     
$rundenanzahl=$_POST["rundenanzahl"];
009 |     
$rundenanzahl=$rundenanzahl+1;
010 |     
//falls gewonnen wurde bleibt die Rundenzahl unver&auml;ndert
011 |     
if ((isset($_POST['feldwahl']))&&(isset($_POST['versteck']))){
012 |          if (
$_POST['feldwahl']==$_POST['versteck']){
013 |         
$rundenanzahl=$_POST["rundenanzahl"];
014 |          }
015 |     }
016 | }
017 |
//der Fundort des Schatzes wird vom Formular &uuml;bergeben
018 |
if (isset($_POST['versteck'])){
019 |     
$woschatz $_POST['versteck'];
020 | }
021 |
//wenn noch kein Schatz versteckt wurde wird dieser zuf&auml;llig gew&auml;hlt
022 |
if ($woschatz==-1){
023 |     
// es wird mit rand() zwischen 0 und 5 gew&uuml;rfelt
024 |     
$woschatz rand(0,5);
025 | }
026 | class 
spielstand {
027 |     public 
$gewonnen="";
028 |
029 |     function 
sieg($mitteilung){
030 |         
$this->gewonnen $mitteilung;
031 |     }
032 | }
033 | class 
spielstein {
034 |
//die Variablen werden als public festgelegt damit man auch
035 | //au&szlig;erhalb der Class auf die Methoden der Objekte zugreifen kann!
036 |     
public $namestein="";
037 |     public 
$grafikstein="";
038 |     public 
$wostein=0;
039 |     public 
$schatzverstecken="";
040 |
041 |     function 
name($hiername){
042 |         
$this->namestein $hiername;
043 |     }
044 |     function 
grafik($pfad){
045 |         
$this->grafikstein $pfad;
046 |     }
047 |     function 
position($wo){
048 |         
$this->wostein $wo;
049 |     }
050 |     function 
verstecken(){
051 |         
$this->schatzverstecken "ja";
052 |     }
053 | }
054 |
//das Spielfeld wird angezeigt
055 |
function spielfeld_anzeigen($grafigpfad0,$grafigpfad1,$grafigpfad2,$grafigpfad3,$grafigpfad4,$grafigpfad5){
056 |     echo 
"<h1>Das Spielfeld</h1>";
057 |     echo 
"<table style=\"text-align:center;\">";
058 |     echo 
"<tr>";
059 |     echo 
"<td>"."<img src=\"".$grafigpfad0."\"  alt=\"Spielstein\" />"."<br>0</td>";
060 |     echo 
"<td>"."<img src=\"".$grafigpfad1."\"  alt=\"Spielstein\" />"."<br>1</td>";
061 |     echo 
"<td>"."<img src=\"".$grafigpfad2."\"  alt=\"Spielstein\" />"."<br>2</td>";
062 |     echo 
"</tr>";
063 |     echo 
"<tr>";
064 |     echo 
"<td>"."<img src=\"".$grafigpfad3."\"  alt=\"Spielstein\" />"."<br>3</td>";
065 |     echo 
"<td>"."<img src=\"".$grafigpfad4."\"  alt=\"Spielstein\" />"."<br>4</td>";
066 |     echo 
"<td>"."<img src=\"".$grafigpfad5."\"  alt=\"Spielstein\" />"."<br>5</td>";
067 |     echo 
"</tr>";
068 |     echo 
"</table>";
069 | }
070 |
$spielstein0 = new spielstein();
071 |
$spielstein0->grafik("images/beach_ball_50.png");
072 |
$spielstein0->position(0);
073 |
$spielstein0->name("0");
074 |
075 |
$spielstein1 = new spielstein();
076 |
$spielstein1->grafik("images/Sandcastle_50.png");
077 |
$spielstein1->position(1);
078 |
$spielstein1->name("1");
079 |
080 |
$spielstein2 = new spielstein();
081 |
$spielstein2->grafik("images/sandspielzeug_50.png");
082 |
$spielstein2->position(2);
083 |
$spielstein2->name("2");
084 |
085 |
$spielstein3 = new spielstein();
086 |
$spielstein3->grafik("images/sonnenschirm_50.png");
087 |
$spielstein3->position(3);
088 |
$spielstein3->name("3");
089 |
090 |
$spielstein4 = new spielstein();
091 |
$spielstein4->grafik("images/Strandkorb_50.png");
092 |
$spielstein4->position(4);
093 |
$spielstein4->name("4");
094 |
095 |
$spielstein5 = new spielstein();
096 |
$spielstein5->grafik("images/wueste_50.png");
097 |
$spielstein5->position(5);
098 |
$spielstein5->name("5");
099 |
100 |
//Feststellen ob Wahl des Benutzers richtig war
101 |
if ((isset($_POST['feldwahl']))&&(isset($_POST['versteck']))){
102 |      if (
$_POST['feldwahl']==$_POST['versteck']){
103 |         echo 
"<h1>Du hast den Schatz auf Feld ".$_POST['feldwahl']." gefunden!!!</h1>";
104 |      } else {
105 |             echo 
"<h1>Du hast leider falsch geraten!!!</h1>";
106 |      }
107 | }
108 |
//die Funktion f&uuml;r die Spielfeldanzeige wird aufgerufen
109 |
spielfeld_anzeigen($spielstein0->grafikstein,$spielstein1->grafikstein,$spielstein2->grafikstein,
110 |
$spielstein3->grafikstein,$spielstein4->grafikstein,$spielstein5->grafikstein);
111 |
112 |
?>
113 |

114 | <form name="spielfeld" action="index.php" method="post" enctype="text/html">
115 |     Hier unten bitte das gew&auml;hlte Feld eingeben!<br>
116 |     <input type="text" name="feldwahl" value="" size="20" maxlength="50" /><br>
117 |     <input type="hidden" name="versteck" value="<?php echo $woschatz?>" />
118 |     <input type="hidden" name="rundenanzahl" value="<?php echo $rundenanzahl;?>" />
119 |     <input type="submit" value="OK"/>
120 | </form>
121 | <?php
122 |
//echo $rundenanzahl."<br>";
123 |  
?>