Informatică, întrebare adresată de claudianastasiu, 8 ani în urmă

Salut, am nevoie de ajutor cu aceasta problema in java, va multumesc!
Vrei să începi prin implementarea unei clase CarteJoc care să memoreze informațiile corespunzătoare unei cărți. Clasa trebuie să aibă 2 câmpuri private: un String care salvează figura (7, 8, 9, 10, J, Q, K sau A) și un String care salvează tipul cărții de joc (INIMA ROSIE, INIMA NEAGRA, TREFLA sau CARO). Clasa va avea un constructor care primește ca parametri un String și un String și aruncă o excepție de tip GameException, definită tot de tine, în cazul în care unul dintre parametri nu face parte din variantele enumerate mai sus.

Mesajul excepției aruncate trebuie să fie Figura invalida dacă primul parametru nu e valid, Tip invalid dacă al doilea parametru nu e valid sau Figura si tip invalide daca niciunul din parametri nu respecta regulile de mai sus.

Exemplu
import java.util.*;

// clasele tale aici

public class prog {
public static void main(String[] args) {
try {
CarteJoc carte = new CarteJoc("2", "INIMA NEAGRA");
} catch (GameException e) {
System.out.print(e.getMessage()); // Figura invalida
}
}
}

Răspunsuri la întrebare

Răspuns de Apollyon
1

Răspuns:

import java.util.List;

public class CarteJoc {

private final String figuraCarte, tipCarte;

public CarteJoc(String figuraCarte, String tipCarte) throws GameException {

 List<String> listaFiguriCarte = List.of("7", "8", "9", "10", "J", "Q", "K", "A");

 List<String> listaTipuriCarte = List.of("INIMA ROSIE", "INIMA NEAGRA", "TREFLA", "CARO");

 this.figuraCarte = figuraCarte;

 this.tipCarte = tipCarte;

 /* dacă figura noastră nu se găsește în lista de figuri corecte figuraGresită va fi adevărat */

 boolean figuraGresita = !listaFiguriCarte.contains(this.figuraCarte);

 /* la fel */

 boolean tipGresit = !listaTipuriCarte.contains(this.tipCarte);

 /* după aruncăm excepția cu mesajul corespunzător */

 if (figuraGresita && tipGresit) throw new GameException(GameException.FIGURA_SI_TIP_INVALIDE);

 if (figuraGresita) throw new GameException(GameException.FIGURA_INVALIDA);

 if (tipGresit) throw new GameException(GameException.TIP_INVALID);

}

public String getFiguraCarte() { return figuraCarte; }

public String getTipCarte() { return tipCarte; }

}

public class GameException extends Exception {

public static final String FIGURA_INVALIDA = "Figura invalida!";

public static final String TIP_INVALID = "Tip invalid!";

public static final String FIGURA_SI_TIP_INVALIDE = "Figura si tip invalide!";

public GameException(String exceptionMessage) {

 super(exceptionMessage);

}

}

Alte întrebări interesante