Moin
Also, ich hab zur Zeit langeweile und versuche grad mal ein primitives Fussballmanager-Spiel zu programmieren. Nun sitz ich gerade daran erstmal einen Spielablauf zu programmieren. Ich weiß, wahrscheinlich kann man das alles noch kürzer fassen, aber EIGENTLICH sollte es doch auch so richtig sein:
Ich rufe folgende Funktion mit den werten:
aktuellerStandort=7;
zeit=i;
toreA=0;
toreB=0;
vereinA=EinerDerErstelltenVereine;
vereinB=EinAndererErstellterVerein;
auf:
....... und so weiter
allerdings bekomme ich bei Ausführung folgendes ergebnis:
Test Wert von aktuellerStandort7
Die Nummer 7 verliert den Ball an Nummer 17
Test Wert von aktuellerStandort7
Test Wert von aktuellerStandort7
Die Nummer 8 spielt einen erfolgreichen Pass zu Nummer 11
Die Nummer 8 verliert den Ball an Nummer 18
Die Nummer 8 verliert den Ball an Nummer 17
Die Nummer 9 verliert den Ball an Nummer 16
......
Wie kann es dazu kommen, das er plötzlich in das "case 8:" reingeht, obwohl aktuellerStandort=7 ist?
Kann mir jemand helfen?
Danke schon mal
Also, ich hab zur Zeit langeweile und versuche grad mal ein primitives Fussballmanager-Spiel zu programmieren. Nun sitz ich gerade daran erstmal einen Spielablauf zu programmieren. Ich weiß, wahrscheinlich kann man das alles noch kürzer fassen, aber EIGENTLICH sollte es doch auch so richtig sein:
Ich rufe folgende Funktion mit den werten:
aktuellerStandort=7;
zeit=i;
toreA=0;
toreB=0;
vereinA=EinerDerErstelltenVereine;
vereinB=EinAndererErstellterVerein;
auf:
Java:
public class Ball {
public static int[] neuerStandort (int aktuellerStandort, long zeit, int toreA, int toreB, Verein vereinA, Verein vereinB)
{
long neuerBesitzer=0;
int aktuellerStandortEnde=0;
long torschuss=0;
int[] ausgabe=new int[3];
{
switch (aktuellerStandort)
{
case 1:
{
neuerBesitzer=Math.round((vereinA.staerkeAbwehr+vereinB.staerkeSturm)*Math.random());
if ((neuerBesitzer<=(vereinA.staerkeAbwehr/4))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(1, 2);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4))&&(neuerBesitzer<=(vereinA.staerkeAbwehr/2))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(1,3);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/2))&&(neuerBesitzer<=(vereinA.staerkeAbwehr/4*3))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(1,4);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(1,5);
if ((neuerBesitzer>(vereinA.staerkeAbwehr))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3))) aktuellerStandortEnde=Ballwechsel.schlechterPass(1,22);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3*2))) aktuellerStandortEnde=Ballwechsel.schlechterPass(1,21);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm))) aktuellerStandortEnde=Ballwechsel.schlechterPass(1,20);
}
case 2:
{
neuerBesitzer=Math.round((vereinA.staerkeAbwehr+vereinB.staerkeSturm)*Math.random());
if ((neuerBesitzer<=(vereinA.staerkeAbwehr/3))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(2, 6);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr/3*2))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(2,7);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/3*2))&&(neuerBesitzer<=(vereinA.staerkeAbwehr))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(2,8);
if ((neuerBesitzer>(vereinA.staerkeAbwehr))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3))) aktuellerStandortEnde=Ballwechsel.schlechterPass(2,22);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3*2))) aktuellerStandortEnde=Ballwechsel.schlechterPass(2,21);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm))) aktuellerStandortEnde=Ballwechsel.schlechterPass(2,20);
}
case 3:
{
neuerBesitzer=Math.round((vereinA.staerkeAbwehr+vereinB.staerkeSturm)*Math.random());
if ((neuerBesitzer<=(vereinA.staerkeAbwehr/3))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(3, 6);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr/3*2))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(3,7);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/3*2))&&(neuerBesitzer<=(vereinA.staerkeAbwehr))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(3,8);
if ((neuerBesitzer>(vereinA.staerkeAbwehr))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3))) aktuellerStandortEnde=Ballwechsel.schlechterPass(3,22);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3*2))) aktuellerStandortEnde=Ballwechsel.schlechterPass(3,21);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm))) aktuellerStandortEnde=Ballwechsel.schlechterPass(3,20);
}
case 4:
{
neuerBesitzer=Math.round((vereinA.staerkeAbwehr+vereinB.staerkeSturm)*Math.random());
if ((neuerBesitzer<=(vereinA.staerkeAbwehr/3))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(4, 6);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr/3*2))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(4,7);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/3*2))&&(neuerBesitzer<=(vereinA.staerkeAbwehr))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(4,8);
if ((neuerBesitzer>(vereinA.staerkeAbwehr))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3))) aktuellerStandortEnde=Ballwechsel.schlechterPass(4,22);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3*2))) aktuellerStandortEnde=Ballwechsel.schlechterPass(4,21);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm))) aktuellerStandortEnde=Ballwechsel.schlechterPass(4,20);
}
case 5:
{
neuerBesitzer=Math.round((vereinA.staerkeAbwehr+vereinB.staerkeSturm)*Math.random());
if ((neuerBesitzer<=(vereinA.staerkeAbwehr/3))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(5, 6);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr/3*2))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(5,7);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/3*2))&&(neuerBesitzer<=(vereinA.staerkeAbwehr))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(5,8);
if ((neuerBesitzer>(vereinA.staerkeAbwehr))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3))) aktuellerStandortEnde=Ballwechsel.schlechterPass(5,22);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm/3*2))) aktuellerStandortEnde=Ballwechsel.schlechterPass(5,21);
if ((neuerBesitzer>(vereinA.staerkeAbwehr/4*3))&&(neuerBesitzer<=(vereinA.staerkeAbwehr+vereinB.staerkeSturm))) aktuellerStandortEnde=Ballwechsel.schlechterPass(5,20);
}
case 6:
{
neuerBesitzer=Math.round((vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld)*Math.random());
if ((neuerBesitzer<=(vereinA.staerkeMittelfeld/3))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(6, 9);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/3))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld/3*2))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(6,10);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/3*2))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(6,11);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld/3))) aktuellerStandortEnde=Ballwechsel.schlechterPass(6,19);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/4*3))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld/3*2))) aktuellerStandortEnde=Ballwechsel.schlechterPass(6,18);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/4*3))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld))) aktuellerStandortEnde=Ballwechsel.schlechterPass(6,17);
}
case 7:
{
System.out.println("Test Wert von aktuellerStandort"+aktuellerStandort);
neuerBesitzer=Math.round((vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld)*Math.random());
if ((neuerBesitzer<=(vereinA.staerkeMittelfeld/3))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(7, 9);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/3))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld/3*2))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(7,10);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/3*2))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(7,11);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld/3))) aktuellerStandortEnde=Ballwechsel.schlechterPass(7,19);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/4*3))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld/3*2))) aktuellerStandortEnde=Ballwechsel.schlechterPass(7,18);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/4*3))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld))) aktuellerStandortEnde=Ballwechsel.schlechterPass(7,17);
System.out.println("Test Wert von aktuellerStandort"+aktuellerStandort);
}
case 8:
{
System.out.println("Test Wert von aktuellerStandort"+aktuellerStandort);
neuerBesitzer=Math.round((vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld)*Math.random());
if ((neuerBesitzer<=(vereinA.staerkeMittelfeld/3))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(8, 9);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/3))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld/3*2))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(8,10);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/3*2))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld))) aktuellerStandortEnde=Ballwechsel.erfolgreicherPass(8,11);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld/3))) aktuellerStandortEnde=Ballwechsel.schlechterPass(8,19);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/4*3))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld/3*2))) aktuellerStandortEnde=Ballwechsel.schlechterPass(8,18);
if ((neuerBesitzer>(vereinA.staerkeMittelfeld/4*3))&&(neuerBesitzer<=(vereinA.staerkeMittelfeld+vereinB.staerkeMittelfeld))) aktuellerStandortEnde=Ballwechsel.schlechterPass(8,17);
}
allerdings bekomme ich bei Ausführung folgendes ergebnis:
Test Wert von aktuellerStandort7
Die Nummer 7 verliert den Ball an Nummer 17
Test Wert von aktuellerStandort7
Test Wert von aktuellerStandort7
Die Nummer 8 spielt einen erfolgreichen Pass zu Nummer 11
Die Nummer 8 verliert den Ball an Nummer 18
Die Nummer 8 verliert den Ball an Nummer 17
Die Nummer 9 verliert den Ball an Nummer 16
......
Wie kann es dazu kommen, das er plötzlich in das "case 8:" reingeht, obwohl aktuellerStandort=7 ist?
Kann mir jemand helfen?
Danke schon mal