Untitled

 avatar
unknown
plain_text
2 years ago
2.2 kB
5
Indexable
public void playGame() {
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);
        //losowanie gracza ktory rozpocznie jako pierwszy
        System.out.println("Trwa losowanie kto zaczyna ...");

        int firstPlayerIndex = random.nextInt(players.length);
        System.out.println("Rozpoczyna gracz " + players[firstPlayerIndex].getSymbol());

        int currentPlayerIndex = firstPlayerIndex;

        boolean isGameFinished = false; // zmienna logiczna ktora wykorzystam w petli rozgrywki

        while (!isGameFinished) {
            Player currentPlayer = players[currentPlayerIndex];
            int diceRoll = diceRoll(currentPlayer);

            if (diceRoll == 6 && currentPlayer.allPawnsAtHome()) {
                currentPlayer.getOutFromHome();
            } else {
                if (!(currentPlayer.allPawnsAtHome())) {
                    System.out.println("Wybierz pole pionka, ktorym chcesz wykonac ruch: ");
                    int pawnField = scanner.nextInt();
                    Pawn[] pawns = currentPlayer.getPawns();
                    Pawn selectedPawn = pawns[pawnField-1];
                    int newPosition = (selectedPawn.getPosition() + diceRoll) % 40;
                    selectedPawn.incrementSteps(diceRoll);
                    for (Player player : players) {
                        for (Pawn pawn : player.getPawns()) {
                            if (pawn.getPosition() == newPosition && pawn != selectedPawn) {
                                pawn.setAtHome(true);
                                pawn.setPosition(-1);
                                break;
                            }
                        }
                    }
                    selectedPawn.setPosition(newPosition);
                }
            }

            if (currentPlayer.allPawnsFinished()) {
                isGameFinished = true;
                System.out.println("Gracz " + currentPlayer.getSymbol() + " wygrywa.");
            }

            currentPlayerIndex = (currentPlayerIndex + 1) % players.length; // Przełącz do następnego gracza
        }

    }
Editor is loading...