Exemplo n.º 1
0
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);
    }
}
Exemplo n.º 2
0
/* ---------------- 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);
}
Exemplo n.º 3
0
	void tierpflege (Tier<T> &tier, Futter futter) {
		std::cout << "Tier pflegen" << std::endl;
		fuettern(tier, futter);
		spielen(tier);
	}