Hallo
Ich versuche für die Uni ein internetfähiges Kartenspiel zu basteln.
Jetzt habe ich einen Fehler den ich schon seit Stunden versuche zu beheben und ich komme nicht drauf.
Ich sende vom Server ein Object [GameProtokoll ] . Dies enthält unter anderem eine ArrayList<Cards>.
Alle anderen variablen des GameProtokolls werden richtig übertragen, nur bekomme ich immer die gleiche ArrayListübertragen, obwohl aus ihr immer ein Object gelöscht werden sollte.
Ich hoffe Jemand von euch kann mir den Fehler aufzeigen.
LG
Ich versuche für die Uni ein internetfähiges Kartenspiel zu basteln.
Jetzt habe ich einen Fehler den ich schon seit Stunden versuche zu beheben und ich komme nicht drauf.
Ich sende vom Server ein Object [GameProtokoll ] . Dies enthält unter anderem eine ArrayList<Cards>.
Alle anderen variablen des GameProtokolls werden richtig übertragen, nur bekomme ich immer die gleiche ArrayListübertragen, obwohl aus ihr immer ein Object gelöscht werden sollte.
Code:
// Server
int activePlayer = nextPlayer(dealer, max_players, 1);
for (int k = 1; k <= 5; k++) {
for (int l = 0; l <= max_players - 1; l++) {
GameProtocol gp = new GameProtocol();
gp.setCmd("playcard!");
gp.setYourHand(players_in_game.get(activePlayer).getHand());
gp.setNotification(String.valueOf("Paket Nr. :"+paketnr));
try {
gp.setYourHand(players_in_game.get(activePlayer).getHand());
System.out.println("Paket Nr. "+paketnr +" wird an " + players_in_game.get(activePlayer).getName() + " gesendet . Drin ist eine ArrayList mit " + players_in_game.get(activePlayer).getHand().size() + " Karten");
players_in_game.get(activePlayer).getOos().writeObject(gp);
players_in_game.get(activePlayer).getOos().flush();
int playedCard = (int) players_in_game.get(activePlayer).getOis().readObject();
players_in_game.get(activePlayer).getHand().remove(playedCard);
activePlayer = nextPlayer(activePlayer, max_players, 1);
paketnr++;
} catch (IOException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Code:
(( Client
while (gameIsStillActive) {
GameProtocol gp = new GameProtocol();
gp = (GameProtocol) ois_game.readObject();
System.out.println("");
if(gp.getCmd().equals("playcard!")){
myCards =gp.getYourHand();
System.out.println("Client "+ this.name +"empfängt :" +gp.getNotification());
System.out.println("Ich habe eine ArrayList mit " +gp.getYourHand().size() + " Karte bekommen");
int i = 0;
Card emptyCard = new Card("",0,false);
GameView.setCard1(emptyCard);
GameView.setCard2(emptyCard);
GameView.setCard3(emptyCard);
GameView.setCard4(emptyCard);
GameView.setCard5(emptyCard);
for (Card card:myCards){
if(i==0){
GameView.setCard1(card);
}
if(i==1){
GameView.setCard2(card);
}
if(i==2){
GameView.setCard3(card);
}
if(i==3){
GameView.setCard4(card);
}
if(i==4){
GameView.setCard5(card);
}
i++;
}
}
Code:
Paket Nr. 1 wird an Harald gesendet . Drin ist eine ArrayList mit 5 Karten
Client Harald empfängt :Paket Nr. :1
Ich habe eine ArrayList mit 5 Karte bekommen
Paket Nr. 2 wird an Stephan gesendet . Drin ist eine ArrayList mit 5 Karten
Client Stephan empfängt :Paket Nr. :2
Ich habe eine ArrayList mit 5 Karte bekommen
Paket Nr. 3 wird an Dummy gesendet . Drin ist eine ArrayList mit 5 Karten
Client Dummy empfängt :Paket Nr. :3
Ich habe eine ArrayList mit 5 Karte bekommen
Paket Nr. 4 wird an Harald gesendet . Drin ist eine ArrayList mit 4 Karten
Client Harald empfängt :Paket Nr. :4
Ich habe eine ArrayList mit 5 Karte bekommen
Paket Nr. 5 wird an Stephan gesendet . Drin ist eine ArrayList mit 4 Karten
Client Stephan empfängt :Paket Nr. :5
Ich habe eine ArrayList mit 5 Karte bekommen
Paket Nr. 6 wird an Dummy gesendet . Drin ist eine ArrayList mit 4 Karten
Client Dummy empfängt :Paket Nr. :6
Ich habe eine ArrayList mit 5 Karte bekommen
Paket Nr. 7 wird an Harald gesendet . Drin ist eine ArrayList mit 3 Karten
Client Harald empfängt :Paket Nr. :7
Ich habe eine ArrayList mit 5 Karte bekommen
Ich hoffe Jemand von euch kann mir den Fehler aufzeigen.
LG