# Mein erstes minigame -> problem mit Methode



## Gr4ne (5. Nov 2011)

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:


```
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
	}

}
```
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


----------



## qowaz (5. Nov 2011)

versuchs mal hiermit:

[JAVA=30]liveP2 = fight(nameP1, nameP2, attackP1, liveP2, defenseP2);[/code]


----------



## Tomate_Salat (5. Nov 2011)

dann musst du liveP2 den Wert auch zuweisen: 
	
	
	
	





```
liveP2=fight(...);
```


----------



## Gr4ne (5. Nov 2011)

Hat funktioniert! vielen dank!


----------

