Baltag Constantin - 325CA Tema 0 POO
fileio: am adaugat un camp used si altul frozen in CardInput pentru a facilita actiunile de atac/abilitate
Player.java: O clasa suplimentara creata pentru facilitarea desfasurarii actiunilor. Am pus un boolean care are valoarea 0 in caz ca instanta obiectului apartine jucatorului unu si 1 in caz negativ. Campurile deck, hand, hero si mana corespund informatiilor din cerinta data.
Constants.java: O clasa creata pentru evitarea erorilor de checkstyle de tip "magic number".
CardTable.java: O clasa creata pentru interactiunea cu masa de joc. Aceasta are un grid de carti de joc, alaturi de informatii legate de cate tankuri sunt per rand, capacitatea fiecaruia, etc.
Main.java: Aici doar folosesc clasa Flow, in care sunt gestionate pregatirea mesei de joc si tratarea fiecarui caz
Flow.java: La inceput sunt definite variabilele necesare pentru derularea jocului (jucatori, deckuri, indici etc), alaturi de niste getteri si setteri. Am adaugat comentarii JavaDoc pentru evitarea erorilor de checkstyle. Este de asemenea definita o functie pentru validarea atacurilor si abilitatilor, care returneaza 0 pentru un atac valid si diverse coduri de erori in caz negativ. In functia processGame este realizata intai pregatirea jocului (resetarea manei, vietii, cartilor etc), dupa care se verifica pentru fiecare joc seria de comenzi si se executa corespunzator. Comenzile de atacuri si de abilitati nu pot fi executate decat atat timp cat jocul este inca in desfasurare, prin urmare am adaugat conditia corespunzatoare.
CaseHandler.java: Aici este scris codul pentru executarea efectiva a comenzilor. Fiecare metoda are comentarii care explica cum este gestionata actiunea asociata ei.