Wer kann mir bei meinem kleinen Game helfen? Bitte

Von: , Frage gestellt am Mi, 13. Jan 2010

Hallo, also um kurz zu erklären was ich für die Schule machen muss. Hier mal meine Vorgaben:

--------------------------------------------------

Lost in Space....

Ein Astronaut wurde beim letzten Kontrollflug der Raumfähre Gaya im Weltraum verloren. Nach langen Recherchen konnte das Gebiet auf ein Gebiet von 100 x 100 x 100 Einheiten eingegrenzt werden. Die Koordinaten wurden durch MOB (Man over Board) aufgezeichnet. Leider ist der Computer ein bisschen einfälig und ist nicht bereit sie zu sagen. Nach langem Zureden habt ihr in wenigstens davon überzeugt, dass er auch Hinweise über den Verbleib gibt. Da der Sauerstoff im Raumanzug begrenzt ist, habt ihr nur 20 Rateversuche. Ein Rateversuch besteht aus der Eingabe von drei Zahlen im Bereich von jeweils 1-100. Der Computer gibt euch dann Hinweise für jede Richtung.

1. Für diese Aufgabe ist zunächst eine Klasse zu erstellen, die folgende Methoden besitzt:

vergleicheX() - vergleicht die Eingabe mit den Astronautenkoordinaten (X - Richtung) und gibt als Ergebnis einen Kommentar zurück (z.B. "Du suchst zu weit rechts"..)

vergleicheY() - vergleicht die Eingabe mit den Astronautenkoordinaten (Y - Richtung) und gibt als Ergebnis einen Kommentar zurück (z.B. "Du suchst zu weit vorne"..)

vergleicheZ() - vergleicht die Eingabe mit den Astronautenkoordinaten (X - Richtung) und gibt als Ergebnis einen Kommentar zurück (z.B. "Du suchst zu weit oben"..)

start() - erzeugt die Zufallszahlen und legt benötigte Anfangsbedingungen fest.


2. Ein Objekt dieser Klasse wird in eine zweite Klasse eingebunden, die den Spielablauf steuert. In dieser Klasse 'dürfen und müssen' Textein- bzw. -ausgaben gemacht werden. Sie besitzt folgende Methoden:

init() - sorgt dafür, dass das Astronautenobjekt sowie eigene Variablen initialisiert werden.

spielerzug() - ermöglicht die Eingabe der Suchkoordinaten und gibt dann den Kommentar des Computers auf dem Bildschirm aus.

spielRegel() - zeigt die Spielregel auf dem Bildschirm

spielEnde() - gibt einen abschliesenden Text auf dem Bildschirm aus


3. Vervollständige nun das Spiel Hinweise:

* Es wird eine vernünftige Dokumentation voraussgestzt.
* Es ist Farbe oder evtl. Ton zu verwenden.

--------------------------------------------------

Also mein Code sieht bisher so aus:



...Main.cpp...

#include<cstdio.h>
#include<iostream>
#include<conio>
#include<windows.h>
#include<mmsystem.h>
using namespace std;
#include"Astronaut.h"
#include"Spielablauf.h"
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{       Astronaut s;
Spielablauf n;
PlaySound("Start.wav", NULL, SND_FILENAME | SND_ASYNC);
n.init();  //hier werden die Variablen initialisiert
cout << s.a << "  " << s.b << " " << s.c<<endl;
cprintf("Lost in Space...");
cout<<"\n\n\n\n";
gotoxy(15,9);
cout<<"Dr\201\cke Enter um die Spielregeln zu lesen.";
getchar();
n.Spielregel();
clrscr();
PlaySound(NULL, NULL, 0);
textcolor(GREEN); gotoxy(30,6);
cprintf("Lost in Space...");
cout<<"\n\n\n\n";
int i=1;
do
{       if (s.a==s.x && s.b==s.y && s.c==s.z)
{
n.SpielEnde();
n.istZuende();
}
else if (i>20)
{
cout<<"Oh nein! Du hast deine 20 Rateversuche erreicht. \nNun wird Ollopa sterben, weil er keinen Sauerstoff mehr hat."<<endl<<"\nDu hast das Spiel leider verloren!"<<endl;
PlaySound("Schrei.wav", NULL, SND_FILENAME | SND_ASYNC);
}
else
{
n.Spielerzug();
s.Versuche=i;
n.istZuende();
getchar();
i++;  }
}while (i<20);
if (i>20)
{
cout<<"Oh nein! Du hast deine 20 Rateversuche erreicht. \nNun wird Ollopa sterben, weil er keinen Sauerstoff mehr hat."<<endl<<"\nDu hast das Spiel leider verloren!"<<endl;
PlaySound("Schrei.wav", NULL, SND_FILENAME | SND_ASYNC);
}
else
n.SpielEnde();
getchar();
getchar();
/*
cout<<"\nDrücke ENTER um erneut zu spielen."<<endl;
cin>>Neustart;        */
return 0;
};



...Astronaut.cpp...
#include "Astronaut.h"
#include<conio>
#include<windows.h>
#include<mmsystem.h>
using namespace std;
//---------------------------------------------------------------------------
#pragma package(smart_init)
void Astronaut::start()
{   /*HANDLE Textfarbe;
Textfarbe = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(Textfarbe, BACKGROUND_GREEN| FOREGROUND_INTENSITY);   */
randomize();
x=random(99)+1;
y=random(99)+1;
z=random(99)+1;
cout << x << "  " << y << " " << z<<endl;
}
//---------------------------------------------------------------------------
int Astronaut::vergleicheX()
{
gotoxy(25,10);
if(a<x)
{
cout<<"Du suchst zu weit links!";
SucheX=" ist zu weit links";
PlaySound("Wrong.wav", NULL, SND_FILENAME | SND_ASYNC);
}
else if(a>x)
{
cout<<"Du suchst zu weit rechts!";
SucheX=" ist zu weit links";
PlaySound("Wrong.wav", NULL, SND_FILENAME | SND_ASYNC);
}
else
{
cout<<"Hier liegst du schonmal richtig!";
SucheX=" ist richtig";
PlaySound("Yes.wav", NULL, SND_FILENAME | SND_ASYNC);
}
}
//---------------------------------------------------------------------------
int Astronaut::vergleicheY()
{
gotoxy(25,13);
if(b<y)
{
cout<<"Du suchst zu weit unten!";
SucheY=" ist zu weit unten";
PlaySound("Wrong.wav", NULL, SND_FILENAME | SND_ASYNC);
}
else if(b>y)
{
cout<<"Du suchst zu weit oben!";
SucheY=" ist zu weit oben";
PlaySound("Wrong.wav", NULL, SND_FILENAME | SND_ASYNC);
}
else
{
cout<<"Hier liegst du schonmal richtig!";
SucheY=" ist richtig";
PlaySound("Yes.wav", NULL, SND_FILENAME | SND_ASYNC);
}
}
//---------------------------------------------------------------------------
int Astronaut::vergleicheZ()
{
gotoxy(25,16);
if(c<z)
{
cout<<"Du suchst zu weit vorne!";
SucheZ=" ist zu weit vorne";
PlaySound("Wrong.wav", NULL, SND_FILENAME | SND_ASYNC);
}
else if(c>z)
{
cout<<"Du suchst zu weit hinten!";
SucheZ=" ist zu weit hinten";
PlaySound("Wrong.wav", NULL, SND_FILENAME | SND_ASYNC);
}
else
{
cout<<"Hier liegst du schonmal richtig!";
SucheZ=" ist richtig";
PlaySound("Yes.wav", NULL, SND_FILENAME | SND_ASYNC);
}
}




...Spielablauf.cpp...
//---------------------------------------------------------------------------
#pragma hdrstop
#include<windows.h>
#include<mmsystem.h>
#include<conio>
using namespace std;
#include "Spielablauf.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
void Spielablauf::init()
{
s.a=-1;
s.b=-1;
s.c=-1;
s.start();
s.Versuche=1;
cout << s.a << "  " << s.b << " " << s.c<<endl;
}
//---------------------------------------------------------------------------
int Spielablauf::Spielerzug()
{
if(s.a != s.x)
{
gotoxy(25,9);
cout<<"Gib einen x-Wert ein: ";
cin>>s.a;
}
s.vergleicheX();
if(s.b != s.y)
{    gotoxy(25,12);
cout<<"Gib einen y-Wert ein: ";
cin>>s.b;
}
s.vergleicheY();
if(s.c != s.z)
{    gotoxy(25,15);
cout<<"Gib einen z-Wert ein: ";
cin>>s.c;
}
s.vergleicheZ();
clrscr();
getchar;
textcolor(RED); gotoxy(0,0);
cprintf("Zuletzt gesuchte Werte: ");
cout<<"\n"<<s.a<<s.SucheX<<", "<<s.b<<s.SucheY<<", "<<s.c<<s.SucheZ<<endl;
textcolor(GREEN); gotoxy(30,6);
cprintf("Lost in Space...");
cout<<"\n\n\n\n";
}
//---------------------------------------------------------------------------
void Spielablauf::SpielEnde()
{   //Sound
cout<<"\n\n\n\nYuhu! Du hast es geschafft! Du hast Ollopa gefunden, und das ganze mit "<<s.Versuche<<" Versuchen!";
getchar;
}
//---------------------------------------------------------------------------
void Spielablauf::Spielregel()
{  PlaySound("Spielregel.wav", NULL, SND_FILENAME | SND_ASYNC);
clrscr();
getchar;
textcolor(GREEN); gotoxy(30,6);
cprintf("Lost in Space...");
cout<<"\n\n\n";
textcolor(YELLOW);
cprintf("Der Astronaut Ollopa wurde beim letzten Kontrollflug der Raumf\204\hre GaYa");cout<<endl;
cprintf("im Weltraum verloren. Nach langen Recherchen konnte das Gebiet in 100x100x100"); cout<<endl;
cprintf("Einheiten eingegrenzt werden. Die Koordinaten wurden durch MOB (Man Over Board)"); cout<<endl;
cprintf("aufgezeichnet. Nun liegt es an dir Ollopa zu finden. Da der Sauerstoff im");cout<<endl;
cprintf("Raumanzug begrenzt ist, hast du nur 20 Rateversuche zur Verf\201\gung. Ein Rate-"); cout<<endl;
cprintf("versuch besteht aus der Eingabe von drei Zahlen im Bereich von jeweils 1-100.");cout<<endl;
cprintf("Nach jedem Rateversuch bekommst du eine Information \201\ ber die Richtung,");cout<<endl;
cprintf("in der du weitersuchen solltest! Der erste Wert (x) beschreibt die Lage der ");cout<<endl;
cprintf("Horizontalen, der zweite Wert (y) die der Vertikalen und der dritte Wert (z) ");cout<<endl;
cprintf("beschreibt die Tiefe. Und nun finde Ollopa, bevor es zu sp\204\ t ist!");cout<<endl;
cout<<"\n\n\nDr\201\cke Enter um das Spiel zu starten"<<endl;
getchar();
}
//---------------------------------------------------------------------------
bool Spielablauf::istZuende()
{
if(s.x == s.a && s.y == s.b && s.z == s.c)
return true;
else
return false;
}




Ich komm an einigen Stellen nicht weiter vieleicht könnte jemand mit mehr Erfahrung mal drüber schauen und meine Fehler beheben oder mir sagen wo sie sind. Danke im Vorraus!



.

1 Antworten zu dieser Frage

  1. Antwort von nach einem Tag 1 hilfreich
    Re: Wer kann mir bei meinem kleinen Game helfen? B

    Hallo, Ich komm an einigen Stellen nicht weiter
    An welchen Stellen denn? vieleicht könnte
    jemand mit mehr Erfahrung mal drüber schauen und meine Fehler
    beheben oder mir sagen wo sie sind. Danke im Vorraus!
    Dazu solltest du uns erst mal sagen, was nicht so läuft wie es sollte.

    Grüße,
    Moritz

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!