Mind_Freak
Grünschnabel
Hallo Leute,
Ich bin neu hier und hab gleich mal eine frage zu dem "Spiel" WaTor.
Und zwar wollte ich fragen ,warum meine Fische sich nicht zufällig irgendwo hinbewegen, sondern immer nur diagonal sich bewegen.
ich hab es mit random() versucht, aber es klappt nicht, wäre nett , wenn mir jmd mal ein Tipp geben würde oder eine andere Denkweise vielleicht.
Hier ist der Quelltext:
MFG
Mind_Freak;-)
Ich bin neu hier und hab gleich mal eine frage zu dem "Spiel" WaTor.
Und zwar wollte ich fragen ,warum meine Fische sich nicht zufällig irgendwo hinbewegen, sondern immer nur diagonal sich bewegen.
ich hab es mit random() versucht, aber es klappt nicht, wäre nett , wenn mir jmd mal ein Tipp geben würde oder eine andere Denkweise vielleicht.
Hier ist der Quelltext:
Code:
#include <cstdlib>
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
using namespace std;
struct Bewohner
{
string figur;
int zaehler;
bool bewegt;
};
int const MAX_LAENGE=8;
int move(int pos, int pos2)
{
unsigned srand(time(NULL));
int i = rand()%4;
if(i==0)
{
if(pos!=(MAX_LAENGE-1))
{
pos=pos+1;
return pos;
}
else
{
pos=0;
return pos;
}
}
if(i==1)
{
if(pos!=0)
{
pos=pos-1;
return pos;
}
else
{
pos=(MAX_LAENGE-1);
return pos;
}
}
if(i==2)
{
if(pos2!=(MAX_LAENGE-1))
{
pos2=pos2+1;
return pos;
}
else
{
pos2=0;
return pos2;
}
}
if(i==3)
{
if(pos2!=0)
{
pos2=pos2-1;
return pos2;
}
else
{
pos2=(MAX_LAENGE-1);
return pos2;
}
}
}
int main(int argc, char *argv[])
{
Bewohner fisch;
fisch.figur = "o)=(";
fisch.zaehler = 6;
fisch.bewegt=false;
Bewohner hai;
hai.figur = "o##(";
hai.zaehler = 8;
hai.bewegt=false;
Bewohner wasser;
wasser.figur ="~~~~";
Bewohner feld[MAX_LAENGE][MAX_LAENGE];
for (int i=0; i<MAX_LAENGE;i++)
for (int j=0; j<MAX_LAENGE; j++)
feld[i][j] = wasser;
// der Planet erhält einen Fisch und einen Hai
feld[2][4] = fisch;
feld[MAX_LAENGE-1][MAX_LAENGE-1] = hai;
nochmal:;
if(cin.get())
{
system("CLS");
for(;;)// endlosschleife
{
// hier kommt die Ausgabe...
cout << "\n";
cout << "\n"<<"--------------------Matrix Fisch-------------------"<<"\n";
for (int i=0; i<MAX_LAENGE;i++)
{
cout <<"\n";
for (int j=0; j<MAX_LAENGE; j++)
{
cout << feld[i][j].figur;
}
}
// Ende Ausgabe
// Fische bewegen sich....
for (int i=0; i<MAX_LAENGE;i++)
{
for (int j=0; j<MAX_LAENGE; j++)
{
if ((feld[i][j].figur == "o)=(")&&(feld[i][j].bewegt==false))
{
int neu_pos = move(i,j);
feld[neu_pos][neu_pos]=fisch;
feld[i][j]=wasser;
fisch.bewegt=true;
}//end if
}//end for
}//end for
cout << "\n";
cout << "\n"<<"---------------------------------------------------"<<"\n";
for (int i=0; i<MAX_LAENGE;i++)
{
for (int j=0; j<MAX_LAENGE; j++)
{
if ((feld[i][j].figur == "o##(")&&(feld[i][j].bewegt==false))
{
int neu_pos = move(j,i);
feld[neu_pos][neu_pos]=hai;
feld[i][j]=wasser;
hai.bewegt=true;
}//end if
}//end for
}//end for
for (int i=0; i<MAX_LAENGE;i++)
{
for (int j=0; j<MAX_LAENGE; j++)
{
if ((feld[i][j].figur == "o)=(")||(feld[i][j].figur=="o##("))
{
feld[i][j].bewegt=false;
}
}
}
goto nochmal;
}// end for
}
system("PAUSE");
return EXIT_SUCCESS;
}
MFG
Mind_Freak;-)
Zuletzt bearbeitet: