No u Ciebie Twoi gracze to te sublisty powiedzmy. Moze sprobuj tak zaczac:
War war = new War(playerOne, playerTwo);
war.play();
rekurencyjnie mialem na mysli:
public void war(Karta karta, Karta karta2) {
if (karta.getSila() > karta2.getSila()) {
winPlayeOne0++;
System.out.println("Wygrała gracz 1");
} else if (karta.getSila() < karta2.getSila()) {
winPlayeTwo++;
System.out.println("Wygrał gracz 2");
} else {
System.out.println("Wojna");
warPoint++;
runda++;
war(playerOne.get(runda), playerTwo.get(runda));
}
}
Jakos tak, dlatego musisz te zmienne przekazac do klasy Wojna, czyli runde i playerow (sublisty) i w klasie Wojna wolac petle. Powinienes tez na poczatku tej metody sprawdzic czy to nie byla juz ostatnia runda / karta bo Ci sie wywali program jesli bedzie runda > sublist.size. Wtedy mozesz calkiem z tej petli zrezygnowac na rzecz rekurencji
Dobra cos takiego na szybko naklepalem bez rekurencji. Mozesz to rozwinac o tamte punkty dodatkowe co pisalem to sie czegos nauczysz ;p
public class Main
{
public static void main(String[] args)
{
List<Integer> playerOne = new ArrayList<>(Arrays.asList(1,5,2,3,4,1,3,1,32,1,3,5,6,3));
List<Integer> playerTwo = new ArrayList<>(Arrays.asList(1,5,2,3,4,1,3,5,32,1,3,5,1,3));
War war = new War(playerOne, playerTwo);
war.play();
}
}
class War {
private int round;
private int warPoint;
private final List<Integer> playerOne;
private int playerOnePoints;
private final List<Integer> playerTwo;
private int playerTwoPoints;
public War(List<Integer> playerOne, List<Integer> playerTwo)
{
this. playerOne = playerOne;
this.playerTwo = playerTwo;
}
public void play()
{
while(round < 10)
{
playRound(round);
round++;
}
System.out.println("Print results");
}
private void playRound(int round)
{
Integer playerOneCard = playerOne.get(round);
Integer playerTwoCard = playerTwo.get(round);
if(playerOneCard > playerTwoCard)
playerOnePoints++;
else if(playerOneCard < playerTwoCard)
playerTwoPoints++;
else
warPoint++;
}
}