void SPIEL::spielen(int anderreihe) { if(anderreihe>1 || anderreihe<-1) return; if(anderreihe==-1) { anderreihe=0; BO_VERWALTUNG::holeInstanz()->konsoleLoeschen(); BO_VERWALTUNG::holeInstanz()->textAusgeben("SPIELSTART\n",false); } POSITION *schussaufposition =new POSITION(); int ergebnis=-1; BO_VERWALTUNG::holeInstanz()->spielfeldAusgabe(zeigeSpielfelder(2)); BO_VERWALTUNG::holeInstanz()->spieleranderReihe(anderreihe,false); BO_VERWALTUNG::holeInstanz()->positionErfragen(schussaufposition,(anderreihe+1)%2); ergebnis=Meer[(anderreihe+1)%2]->Schuss(schussaufposition->holeX(),schussaufposition->holeY()); if(ergebnis<-1 || ergebnis>2) return; //Fehler while(ergebnis<0) { BO_VERWALTUNG::holeInstanz()->textAusgeben("Ausführung nicht möglich! Evtl. wurde dieses Feld bereits beschossen.\n",false); BO_VERWALTUNG::holeInstanz()->spieleranderReihe(anderreihe,true); BO_VERWALTUNG::holeInstanz()->positionErfragen(schussaufposition, (anderreihe+1)%2); ergebnis=Meer[(anderreihe+1)%2]->Schuss(schussaufposition->holeX(),schussaufposition->holeY()); } //Wasser if(ergebnis==0) { BO_VERWALTUNG::holeInstanz()->ausgabeWasser(); spielen((anderreihe+1)%2); } //Schiff if(ergebnis>0) { BO_VERWALTUNG::holeInstanz()->ausgabeTreffer(); if(ergebnis==2) BO_VERWALTUNG::holeInstanz()->ausgabeVersenkt(); if(Meer[(anderreihe+1)%2]->verloren()) { BO_VERWALTUNG::holeInstanz()->spielfeldAusgabe(zeigeSpielfelder(3)); BO_VERWALTUNG::holeInstanz()->gewinnerAusgeben(anderreihe); delete BO_VERWALTUNG::holeInstanz(); return; } BO_VERWALTUNG::holeInstanz()->textAusgeben("Du bist ERNEUT an der Reihe! \n",false); spielen(anderreihe); } }
/* ---------------- main --------------------------------- */ int main (int argc, char *argv[]) { struct aa_clssfcn *aa_clssfcn; if (argc !=2) usage(argv[0]); if ( (aa_clssfcn = ac_read (argv[1])) == NULL) return (EXIT_FAILURE); spielen (aa_clssfcn); aa_clssfcn_destroy (aa_clssfcn); return (EXIT_SUCCESS); }
void tierpflege (Tier<T> &tier, Futter futter) { std::cout << "Tier pflegen" << std::endl; fuettern(tier, futter); spielen(tier); }