G
Gr4ne
Gast
Hallo ich habe grade angefangen mein erstes kleines Spiel zu Programmieren.
Ist eigentlich ziemlich Sinnlos, und hat auch kein UI aber wollte nur mal rumprobieren, und hab auch gerade erst verstanden wir das mit Methoden funktioniert.
Bzw. nicht verstanden, denn da wären wir bei meinem Problem
Hier zumindest mal der Quellcode:
Das Problem ist, dass das Programm _live nicht richtig zurückgibt, da nach ausführen der methode liveP2 immernoch gleich ist wie vorher, un das Programm ununterbrochen das folgende ausgibt:
player 2 has now 28 livepoints!
player 1 did 2 damage to player 2!
player 2 has now 28 livepoints!
player 1 did 2 damage to player 2!
player 2 has now 28 livepoints!
player 1 did 2 damage to player 2!
player 2 has now 28 livepoints!
ich hoffe ihr konntet mein problem verstehen und könnt mir sagen was ich falsch mache.
mfg Marius
Ist eigentlich ziemlich Sinnlos, und hat auch kein UI aber wollte nur mal rumprobieren, und hab auch gerade erst verstanden wir das mit Methoden funktioniert.
Bzw. nicht verstanden, denn da wären wir bei meinem Problem
Hier zumindest mal der Quellcode:
Java:
package mainpackage;
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
Scanner tastatur = new Scanner(System.in);
System.out.println("Please enter the name of player 1 !");
String nameP1 = tastatur.nextLine();
System.out.println("Please enter the name of player 2 !");
String nameP2 = tastatur.nextLine();
System.out.println("so it's "+nameP1+" V.S. "+nameP2); //diese 5 Zeilen eher unwichtig
int again = 1; //zur wiederholung, damit nicht nur einmal angegriffen wird
int liveP1 = 30; //noch unbenutzt
int defenseP1 = 3; //noch unbenutzt
int attackP1 = 5;
int liveP2 = 30;
int defenseP2 = 3;
int attackP2 = 5; //noch unbenutzt
while(again==1){
fight(nameP1, nameP2, attackP1, liveP2, defenseP2);
//hier sollte durch die Methode dann liveP2 niedriger sein als vorher
if(liveP1<=0||liveP2<=0)
again = 2;
}
}
public static int fight(String _attacker, String _defender, int _attack, int _live, int _defense){
int damage = _attack - _defense;
if(damage<=0)
damage = 1;
_live = _live - damage;
System.out.println(_attacker+" did "+damage+" damage to "+_defender+"!");
System.out.println(_defender+" has now "+_live+ " livepoints!");
return _live; //hier ist das Problem
}
}
player 2 has now 28 livepoints!
player 1 did 2 damage to player 2!
player 2 has now 28 livepoints!
player 1 did 2 damage to player 2!
player 2 has now 28 livepoints!
player 1 did 2 damage to player 2!
player 2 has now 28 livepoints!
ich hoffe ihr konntet mein problem verstehen und könnt mir sagen was ich falsch mache.
mfg Marius