supretion de code inutile et ajout de commentaire

This commit is contained in:
marc barbier
2020-12-17 11:22:42 +01:00
parent 0345dcddec
commit fa290c58fc
14 changed files with 124 additions and 29 deletions
@@ -94,6 +94,9 @@ import com.iutlaval.myapplication.Game.Cards.Renaissance.Renaissance_Vlad;
import java.util.ArrayList;
import java.util.List;
/**
* registre de carte identique a celui du serveur permet la déserialisation des decks et cartes
*/
public class CardRegistery {
public static List<Class<? extends Card>> registry;
@@ -204,6 +207,13 @@ public class CardRegistery {
registry.add(Moyen_Age_Pouvoir_Du_Franc.class);
}
/**
* retourne l'index de la carte donné
* et lance une runtime exception si la carte n'existe pas car cela veut dire que le serveur
* est incompatible avec le client
* @param class1 class de la carte recherché
* @return index de la carte
*/
public static int indexOf(Class<? extends Card> class1) {
if(registry == null)initCardRegistery();
int a = registry.indexOf(class1);
@@ -215,14 +225,22 @@ public class CardRegistery {
return a != -1 ? a : 0;
}
/**
* retourne la class de la carte a l'index donné
* @param index l'index de la carte
* @return class de la carte
*/
public static Class<? extends Card> get(int index) {
if(registry == null)initCardRegistery();
if(registry.size() <= index || index < 0) return null;
return registry.get(index);
}
/**
* retourne l'index de la carte
* @param card
* @return
*/
public static int indexOf(Card card) {
if(registry == null)initCardRegistery();
return indexOf(card.getClass());
@@ -2,25 +2,32 @@ package com.iutlaval.myapplication.Game;
public final class Command {
public static final String UPDATE = "update";
public static final String PONG = "pong";
private Command(){} // pas de contructor public on ne veut pas instancier cette classe
public static final String YOURTURN="yourturn";
public static final String DRAW = "draw";
public static final String GET_DECK = "getDeck";
public static final String PUT_CARD = "putCard";
public static final String PUT_ENEMY_CARD = "enemycard";
private Command(){} // pas de contructor on ne veut pas instancier cette classe
public static final String YOURTURN="yourturn"; // commande de debut de tours
public static final String DRAW = "draw"; //demande a pioché
public static final String GET_DECK = "getDeck"; // demande le deck
public static final String PUT_CARD = "putCard"; // place une carte
public static final String PUT_ENEMY_CARD = "enemycard"; // place une carte sur le terrain adverse
public static final String PASS_TURN = "passTurn"; // passe son tours
public static final String POPUP = "pupup"; // affiche un messsage
public static final String ENEMYTURN = "enemyTurn"; // tours enemy
public static final String SETMANA = "setmana"; // defini la mana
public static final String WIN = "win"; // gagne
public static final String LOSE = "lose"; // perds
public static final String PING = "ping"; //envoie un ping en l'attente d'un pong
public static final String PONG = "pong";
public static final String NOK = "nok"; // refuse une action
public static final String OK = "ok"; // accepte une actoin
public static final String MEULE = "meule"; // fait pioché mais n'ajoute pas a la main la carte sera donc perdu
public static final String UPDATE = "update";//fonction client uniquement a utilisé avec le serveur de débugage permet de mettre a jour l'écrans
//inutilisé
public static final String SHUFFLE_DECK = "shuffleDeck";
public static final String SELECT_CARD = "selectCard";
public static final String ATTACK = "attack";
public static final String DEFEND = "defend";
public static final String PASS_TURN = "passTurn";
public static final String POPUP = "pupup";
public static final String ENEMYTURN = "enemyTurn";
public static final String SETMANA = "setmana";
public static final String WIN = "win";
public static final String LOSE = "lose";
public static final String PING = "ping";
public static final Object OK = "ok";
public static final String CAST_SPELL = "castSpell";
}
@@ -59,6 +59,10 @@ public class Communication {
send(""+message);
}
/**
* recoit un message sous forme de chaine
* @return retourne ERROR ou TIMEOUT si une erreur ce produit
*/
public String recieve(){
try {
return (String) clientIn.readObject();
@@ -71,6 +75,11 @@ public class Communication {
}
}
/**
* retourne un entier recut
*
* @return
*/
public int recieveInt()
{
String message = recieve();
@@ -87,6 +96,10 @@ public class Communication {
}
}
/**
* ferme la connection
* @throws IOException
*/
public void close() throws IOException {
if(clientOut != null)clientOut.close();
if(clientIn != null)clientIn.close();
@@ -223,6 +223,13 @@ public class GameLogicThread extends Thread{
//ajout la card au terain
board.setEnemyCard(zone,cardPlayed);
break;
case Command.MEULE:
//la carte pioché va être perdu vu que l'on ne la met pas dans une main
//c'est le role de la command meule de faire perde des cartes au joeur
int nbmeule = coms.recieveInt();
deck.draw(nbmeule);
case "timeout":
//ceci est une erreur et non une commande elle se doit donc de ne rien faire
break;
@@ -6,9 +6,6 @@ import java.util.ArrayList;
import java.util.List;
public class Hand {
private static final int NUMBER_OF_CARDS_IN_STARTING_HAND = 5;
private List<Card> hand;
public Hand()
@@ -25,7 +22,7 @@ public class Hand {
{
for(int i = 0 ; i < amount;i++)
{
hand.add(deck.getCards().pop());
hand.add(deck.draw());
}
}
@@ -7,10 +7,15 @@ import com.iutlaval.myapplication.Game.Cards.CardRegistery;
import com.iutlaval.myapplication.Game.Cards.Mythes.Mythes_Perséphone;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
/**
* c'est un deck qui déserialise les info recut du serveur ce qui donne une deck de carte a terme
*/
public class NetworkDeck{
Stack<Card> cards;
private Stack<Card> cards;
public NetworkDeck(String deckstring, Context context)
{
cards = new Stack<>();
@@ -31,7 +36,18 @@ public class NetworkDeck{
}
}
public Stack<Card> getCards() {
return cards;
public Card draw()
{
return cards.pop();
}
public List<Card> draw(int amount)
{
List<Card> drawn = new ArrayList<>();
for(int i = 0 ; i < amount ; i++)
{
drawn.add(cards.pop());
}
return drawn;
}
}
@@ -14,19 +14,29 @@ import com.iutlaval.myapplication.Video.Renderer;
import java.util.ArrayList;
import java.util.List;
public class PlayableZonesHandler {
private List<Drawable> playableZones;
private boolean isDisplayed;
private Board board;
public PlayableZonesHandler(Board board)
{
playableZones=new ArrayList<>();
this.board=board;
isDisplayed=false;
}
//TODO verifier si elle ne sont pas deja afficher
/**
* affiche les zones de jeu libre
* @param renderer
*/
public void displayPlayableZones(Renderer renderer)
{
//on affiche pas si elle se sont deja
if(isDisplayed)return;
isDisplayed=true;
Card[] cardsOnBoard = board.getPlayerCardsOnBoard();
for(int i=0 ; i < cardsOnBoard.length ;i++)
{
@@ -35,8 +45,14 @@ public class PlayableZonesHandler {
displayPlayableZoneOn(i,renderer);
}
}
}
/**
* affiche un rectangle gris représentant une zone jouable en la case i
* @param i car sur la quelle afficher la zone
* @param renderer
*/
private void displayPlayableZoneOn(int i,Renderer renderer) {
Rectangle pos = new Rectangle((DrawableCard.getCardWith()+1)*i,50F,DrawableCard.getCardWith(),DrawableCard.getCardHeight());
@@ -50,14 +66,19 @@ public class PlayableZonesHandler {
}
/**
* cache les zones de jeu
* @param renderer
*/
public void hidePlayableZones(Renderer renderer)
{
if(!isDisplayed)return;
for(Drawable d : playableZones)
{
renderer.removeToDraw(d);
}
playableZones.clear();
isDisplayed=false;
}
/**
@@ -40,6 +40,7 @@ public class TouchHandler {
/**
* cette evenement doit recevoir le onTouchEvent d'une activité
* cette fonction gére l'integralité du tactile de l'application elle est divisé en de nombreuses sous fonction
* @param event
*/
public void onTouchEvent(MotionEvent event)
@@ -162,6 +163,10 @@ public class TouchHandler {
}
/**
* gére la selection de carte dans la main
* @param event
*/
private void handSelectionHandler(MotionEvent event)
{
DrawableCard smallCArd = renderer.getCardOn(unScalled_X,unScalled_Y);
@@ -181,6 +186,10 @@ public class TouchHandler {
}
}
/**
* gére le button de fin de tours
* @param event
*/
private void endTurnButtonHandle(MotionEvent event)
{
//si on appuie