Помогите решить задачку про Tennis, программа работает, но как сделать код короче?

Гейм в тенисе выигрывает тот игрок, кто первым наберёт минимум четыре очка, при этом у него должно быть на два очка больше чем у противника.

  • Очки в тенисном гейме описываются следующим образом: очки от нуля до трёх - "Love", "Fifteen", "Thirty", and "Forty" соответственно.
  • Если оба игрока набрали хотя бы по три очка каждый и у обоих игроков одинаковое количество очков, то результат "Deuce".
  • Если оба игрока набрали хотя бы по три очка каждый и один из игроков набрал на одно очко больше другого, то результат игры "Advantage" в пользу игрока с наибольшим количеством очков.

Ваша программа должна подсчитывать очки только для одного гейма игры. Сеты и матчи не входят в контекст этой задачи.

Ваша задача создать класс, который будет реализовать интерфейс TennisGame:

interface TennisGame {
    void wonPoint(String playerName);
    String score();
}

Когда игрок выигрывает очко, у вашего класса будут вызывать метод wonPoint() и передавать в качестве параметра имя игрока выигравшего очко. Потом у вашего класса будет вызываться метод score(), который должен вернуть строку с информацией о текущем счёте игры. Полученную таким образом информацию предпологается выводить на табло.

Пример:

TennisGame game = new TennisGame("player1", "player2");

game.score(); -> "Love - Love"
game.wonPoint("player1");
game.score(); -> "Fifteen - Love"
game.wonPoint("player1");
game.score(); -> "Thirty - Love"
game.wonPoint("player1");
game.score(); -> "Forty - Love"
game.wonPoint("player2");
game.score(); -> "Forty - Fifteen"
game.wonPoint("player2");
game.score(); -> "Forty - Thirty"
game.wonPoint("player2");
game.score(); -> "Deuce"
game.wonPoint("player2");
game.score(); -> "Advantage player2"
game.wonPoint("player2");
game.score(); -> "Win player2"
```Я сделал так:
package com.javaguru.student_vladimir_petranovski.lesson_15.level_3.service;

import com.javaguru.student_vladimir_petranovski.lesson_15.level_3.bean.Tennis;

public class TennisGameImpl implements TennisGame {

    private final Tennis tennis;

    public TennisGameImpl(Tennis tennis) {
        this.tennis = tennis;
    }

    @Override
    public void wonPoint(String playerWhoWonPointName) {

        if (tennis.getPlayerOneName().equals(playerWhoWonPointName)) {
            tennis.setScorePlayerOne(tennis.getScorePlayerOne() + 1);

        }
        if (tennis.getPlayerTwoName().equals(playerWhoWonPointName)) {
            tennis.setScorePlayerTwo(tennis.getScorePlayerTwo() + 1);
        }
    }

    @Override
    public String score() {
        String result = "";
        if (tennis.getScorePlayerOne() == 0 && tennis.getScorePlayerTwo() == 0) {
            result = "Love - Love";
        }
        if (tennis.getScorePlayerOne() == 1 && tennis.getScorePlayerTwo() == 0) {
            result = "Fifteen - Love";
        }
        if (tennis.getScorePlayerOne() == 2 && tennis.getScorePlayerTwo() == 0) {
            result = "Thirty - Love";
        }
        if (tennis.getScorePlayerOne() == 3 && tennis.getScorePlayerTwo() == 0) {
            result = "Forty - Love";
        }
        if (tennis.getScorePlayerOne() == 0 && tennis.getScorePlayerTwo() == 1) {
            result = "Love - Fifteen";
        }
        if (tennis.getScorePlayerOne() == 0 && tennis.getScorePlayerTwo() == 2) {
            result = "Love - Thirty";
        }
        if (tennis.getScorePlayerOne() == 0 && tennis.getScorePlayerTwo() == 3) {
            result = "Love - Forty";
        }
        if (tennis.getScorePlayerOne() == 1 && tennis.getScorePlayerTwo() == 1) {
            result = "Fifteen - Fifteen";
        }
        if (tennis.getScorePlayerOne() == 2 && tennis.getScorePlayerTwo() == 2) {
            result = "Thirty - Thirty";
        }
        if (tennis.getScorePlayerOne() == 2 && tennis.getScorePlayerTwo() == 1) {
            result = "Thirty - Fifteen";
        }
        if (tennis.getScorePlayerOne() == 3 && tennis.getScorePlayerTwo() == 1) {
            result = "Forty - Fifteen";
        }
        if (tennis.getScorePlayerOne() == 3 && tennis.getScorePlayerTwo() == 2) {
            result = "Forty - Thirty";
        }
        if (tennis.getScorePlayerOne() == 1 && tennis.getScorePlayerTwo() == 2) {
            result = "Fifteen - Thirty";
        }
        if (tennis.getScorePlayerOne() == 2 && tennis.getScorePlayerTwo() == 3) {
            result = "Thirty - Forty";
        }
        if (tennis.getScorePlayerOne() == 3 && tennis.getScorePlayerTwo() == 3) {
            result = "Deuce";
        }
        if (tennis.getScorePlayerOne() > 3 && tennis.getScorePlayerTwo() > 3
                && tennis.getScorePlayerOne() == tennis.getScorePlayerTwo()) {
            result = "Deuce";
        }
        if (tennis.getScorePlayerOne() == 4
                && tennis.getScorePlayerTwo() < 3) {
            result = "Win player1";
        }
        if (tennis.getScorePlayerOne() < 3 && tennis.getScorePlayerTwo() == 4) {
            result = "Win player2";
        }
        if (tennis.getScorePlayerOne() >= 3
                && tennis.getScorePlayerTwo() == tennis.getScorePlayerOne() + 1) {
            result = "Advantage player2";
        }
        if (tennis.getScorePlayerOne() == tennis.getScorePlayerTwo() + 1
                && tennis.getScorePlayerTwo() >= 3) {
            result = "Advantage player1";
        }
        if (tennis.getScorePlayerOne() == tennis.getScorePlayerTwo() + 2
                && tennis.getScorePlayerTwo() >= 3) {
            result = "Win player1";
        }
        if (tennis.getScorePlayerOne() >= 3
                && tennis.getScorePlayerTwo() == tennis.getScorePlayerOne() + 2) {
            result = "Win player2";
        }
        return result;
    }

Ответы (0 шт):