Wie kann ich diesen Code retten!?

... komplette Frage anzeigen

3 Antworten

case "q":
if (cooldown1>=5)
{
player1Life = player1Life - player2Damage;
System.out.println("Player1: " + player1Life);
}
break;

Ungefähr so.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von javaAnt
30.04.2016, 10:16

hallo, danke schon mal für die Antwort...wenn das klappt, was ich nacher erst ausprobieren kann, kann ich Ihnen leider keinen Stern geben, da ich mein Passwort vergessen habe, und jetzt diesen account benutze!

0
Kommentar von javaAnt
30.04.2016, 10:52

Hallo,

das het bis jetzt ganz gut geklappt, jedoch wiederhold sich das ganze nicht und mit einer while-Schleife klappt das ganze auch nicht!

Das heisst die Abklingzeit it nur einmal, jedoch soll diese jedesmal wieder kommen wenn eine Attacke gesetzt wurde!

0
Kommentar von javaAnt
30.04.2016, 14:00

mir fällt spontan nicht ein wie das automatisch gehen sollte

0
Kommentar von javaAnt
30.04.2016, 15:07

danke, das hätt ich mir auch selber denken können...hätt ich mal nachgedacht

0

Hier der Code:

public class xxx {

public static void main(String[] args) {

// Leben P1 + P2

int player1Life = 10;
int player2Life = 15;

// Schaden P1 + P2

int player1Damage = 2;
int player2Damage = 1;

// Abklingzeit

int cooldown1 = 0;
int cooldown2 = 0;

// SpawnPoints P1 + P2

java.awt.Point player1Position = new java.awt.Point();
player1Position.setLocation(0, 19);

java.awt.Point player2Position = new java.awt.Point();
player2Position.setLocation(99, 0);

// Spielfeld + PlayerErstellung + Systemscanner

while (true){

for ( int y = 0; y < 20; y++ ) {
for ( int x = 0; x < 100; x++) {
java.awt.Point p = new java.awt.Point( x, y );
if ( player1Position.equals ( p ) )
System.out.print('1');
else if (player2Position.equals ( p ) )
System.out.print("2");
else System.out.print(".");
}
System.out.println();
}

switch ( new java.util.Scanner ( System.in ).next()){

// Bewegung PlayerOne

case "w" : player1Position.y = Math.max( 0, player1Position.y - 1);cooldown1++;break;

case "s" : player1Position.y = Math.min( 9, player1Position.y + 1);cooldown1++;break;

case "a" : player1Position.x = Math.max( 0, player1Position.x - 1);cooldown1++;break;

case "d" : player1Position.x = Math.min( 39, player1Position.x + 1);cooldown1++;break;

case "wa" : player1Position.x = Math.max( 0, player1Position.x - 1);
player1Position.y = Math.max( 0, player1Position.y - 1);cooldown1++;break;

case "wd" : player1Position.x = Math.max( 0, player1Position.x + 1);
player1Position.y = Math.max( 0, player1Position.y - 1);cooldown1++;break;

case "sa" : player1Position.x = Math.max( 0, player1Position.x - 1);
player1Position.y = Math.max( 0, player1Position.y + 1);cooldown1++;break;

case "sd" : player1Position.x = Math.max( 0, player1Position.x + 1);
player1Position.y = Math.max( 0, player1Position.y + 1);cooldown1++;break;

case "aw" : player1Position.x = Math.max( 0, player1Position.x - 1);
player1Position.y = Math.max( 0, player1Position.y - 1);cooldown1++;break;

case "dw" : player1Position.x = Math.max( 0, player1Position.x + 1);
player1Position.y = Math.max( 0, player1Position.y - 1);cooldown1++;break;

case "as" : player1Position.x = Math.max( 0, player1Position.x - 1);
player1Position.y = Math.max( 0, player1Position.y + 1);cooldown1++;break;

case "ds" : player1Position.x = Math.max( 0, player1Position.x + 1);
player1Position.y = Math.max( 0, player1Position.y + 1);cooldown1++;break;

// Bewegug PlayerTwo

case "i" : player2Position.y = Math.max( 0, player2Position.y - 1);cooldown2++;break;

case "k" : player2Position.y = Math.max( 0, player2Position.y + 1);cooldown2++;break;

case "j" : player2Position.x = Math.max( 0, player2Position.x - 1);cooldown2++;break;

case "l" : player2Position.x = Math.max(0, player2Position.x + 1);cooldown2++;break;

// Attacken P1 + P2

case "q": player1Life = player1Life - player2Damage;
System.out.println("Player1: " + player1Life);break;

case "u" : player2Life = player2Life - player1Damage;
System.out.println("Player2: " + player2Life);break;

case "e" : player1Life = player1Life + player2Damage;
System.out.println("Player1: " + player1Life);break;

case "o" : player2Life = player2Life + player1Damage;
System.out.println("Player2: " + player2Life);break;

}
if (player2Life == 0){
System.out.println("PLAYER1 WON!");break;}
else if (player1Life == 0){
System.out.println("PLAYER2 WON!");break;}
}
}
}

Antwort bewerten Vielen Dank für Deine Bewertung

Wenn ich dich richtig verstanden habe willst du mit dem Code der nicht geht prüfen ob die Zahl NICHT größer ist als 5 also hast du einfach ein Ausrufezeichen vergessen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von javaAnt
30.04.2016, 09:37

Erstmal sorry, das ich jetzt anders heisse musste aber einen neuen Account machen!

der Code soll prüfen ob der Cooldown schon 5 bzw grösser als 5 ist!

da if und case aber nicht in der Kombination funktionieren suche ich eine Lösung wie es trotzdem möglich ist, dass "q" erst funktioniert wenn cooldown1 >=  5 ist!

0

Was möchtest Du wissen?