[Cruce-commit] SF.net SVN: cruce:[99] Java/trunk/src/prc/bubulina/cruce
Status: Beta
Brought to you by:
caiusb
|
From: <hor...@us...> - 2010-04-07 14:12:19
|
Revision: 99
http://cruce.svn.sourceforge.net/cruce/?rev=99&view=rev
Author: horiaradu
Date: 2010-04-07 14:12:12 +0000 (Wed, 07 Apr 2010)
Log Message:
-----------
Am facut si logica de sendCards.
Pt Alin:
Eu m-as opri acuma si te invit sa verifici ce am facut, sa te uiti si sa completezi unde e de completat. Apoi sa ma anunti ce ai facut, sau ce anume te gandesti sa faci.
Daca nu intelegi ceva, call me!
Modified Paths:
--------------
Java/trunk/src/prc/bubulina/cruce/remote/Card.java
Java/trunk/src/prc/bubulina/cruce/remote/ClientInterface.java
Java/trunk/src/prc/bubulina/cruce/server/GameLogic.java
Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java
Java/trunk/src/prc/bubulina/cruce/server/Team.java
Added Paths:
-----------
Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java
Modified: Java/trunk/src/prc/bubulina/cruce/remote/Card.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/remote/Card.java 2010-04-07 13:12:45 UTC (rev 98)
+++ Java/trunk/src/prc/bubulina/cruce/remote/Card.java 2010-04-07 14:12:12 UTC (rev 99)
@@ -1,5 +1,7 @@
package prc.bubulina.cruce.remote;
+import java.util.Random;
+
public class Card {
private int value;
private Color color;
@@ -25,4 +27,13 @@
public boolean isTromf() {
return color.equals(tromf);
}
+ public static Card getRandomCard() {
+ int i = new Random().nextInt(6);
+ if (i == 1)
+ i = 11;
+ else if (i == 5)
+ i = 10;
+ Color c = Color.values()[new Random().nextInt(4)];
+ return new Card(i, c);
+ }
}
Modified: Java/trunk/src/prc/bubulina/cruce/remote/ClientInterface.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/remote/ClientInterface.java 2010-04-07 13:12:45 UTC (rev 98)
+++ Java/trunk/src/prc/bubulina/cruce/remote/ClientInterface.java 2010-04-07 14:12:12 UTC (rev 99)
@@ -2,7 +2,7 @@
import java.rmi.Remote;
import java.rmi.RemoteException;
-import java.util.ArrayList;
+import java.util.List;
public interface ClientInterface extends Remote {
/**
@@ -23,7 +23,7 @@
* client rejects the cards
* @throws RemoteException
*/
- public boolean receiveCards(ArrayList<Card> cards) throws RemoteException;
+ public boolean receiveCards(List<Card> cards) throws RemoteException;
/**
* This method forces a client to receive a list of cards
@@ -31,7 +31,7 @@
* @param cards
* @throws RemoteException
*/
- public void forceReceive(ArrayList<Card> cards) throws RemoteException;
+ public void forceReceive(List<Card> cards) throws RemoteException;
/**
* Tells the client to bid
Modified: Java/trunk/src/prc/bubulina/cruce/server/GameLogic.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/GameLogic.java 2010-04-07 13:12:45 UTC (rev 98)
+++ Java/trunk/src/prc/bubulina/cruce/server/GameLogic.java 2010-04-07 14:12:12 UTC (rev 99)
@@ -4,10 +4,17 @@
public class GameLogic {
private List<Team> teams;
+ private RoundLogic roundLogic;
public void startGame(List<Team> teams) {
this.teams = teams;
+ roundLogic = new RoundLogic(teams);
+ while (endOfGame() == false)
+ roundLogic.startRound();
}
- public void startBid() {
-
+ public boolean endOfGame() {
+ for (Team t : teams)
+ if (t.getOverallScore() >= 15)
+ return true;
+ return false;
}
}
\ No newline at end of file
Added: Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java (rev 0)
+++ Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java 2010-04-07 14:12:12 UTC (rev 99)
@@ -0,0 +1,44 @@
+package prc.bubulina.cruce.server;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import prc.bubulina.cruce.remote.Card;
+
+public class RoundLogic {
+ private List<Team> teams;
+ private Map<Integer, ServerSidePlayer> playerOrder;
+ public RoundLogic(List<Team> teams) {
+ this.teams = teams;
+ int i = 0;
+ for (Team t : teams)
+ for (ServerSidePlayer p : t.getPlayers())
+ playerOrder.put(i++, p);
+ }
+ private Team getTeam(ServerSidePlayer player) {
+ for (Team t : teams)
+ if (t.getPlayers().contains(player))
+ return t;
+ return null;
+ }
+ public void startRound() {
+ sendCards();
+ }
+ private void sendCards() {
+ List<Card> givenCards = new LinkedList<Card>();
+ for (int i = 0; i < 4; i++) {
+ ServerSidePlayer player = playerOrder.get(i);
+ List<Card> cards = new LinkedList<Card>();
+ for (int j = 0; j < 6; j++) {
+ Card card;
+ do {
+ card = Card.getRandomCard();
+ } while (givenCards.contains(card));
+ givenCards.add(card);
+ cards.add(card);
+ }
+ ServerImplementation.getInstance().sendCards(cards, player);
+ }
+ }
+}
\ No newline at end of file
Modified: Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java 2010-04-07 13:12:45 UTC (rev 98)
+++ Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java 2010-04-07 14:12:12 UTC (rev 99)
@@ -11,10 +11,34 @@
import prc.bubulina.cruce.remote.ServerInterface;
public class ServerImplementation implements ServerInterface {
+ private static ServerImplementation instance;
+ private ServerImplementation() {}
+ public static ServerImplementation getInstance() {
+ if (instance == null)
+ instance = new ServerImplementation();
+ return instance;
+ }
private List<Team> teams = new LinkedList<Team>();
private List<ClientInterface> clients = new LinkedList<ClientInterface>();
private StartGameLogic startGameLogic;
private GameLogic gameLogic;
+ public boolean sendCards(List<Card> cards, ServerSidePlayer player) {
+ ClientInterface client = PlayerMap.getInstance().getClient(player.getInfo());
+ try {
+ if (client.receiveCards(cards) == false) {
+ int sum = 0;
+ for (Card c : cards)
+ sum += c.getValue();
+ if (sum >= 11)
+ client.forceReceive(cards);
+ else
+ return false;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return true;
+ }
public boolean acceptCard(Player sender, Card card) throws RemoteException {
// TODO Auto-generated method stub
return false;
Modified: Java/trunk/src/prc/bubulina/cruce/server/Team.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/Team.java 2010-04-07 13:12:45 UTC (rev 98)
+++ Java/trunk/src/prc/bubulina/cruce/server/Team.java 2010-04-07 14:12:12 UTC (rev 99)
@@ -3,12 +3,49 @@
import java.util.LinkedList;
import java.util.List;
+import prc.bubulina.cruce.remote.Card;
+
public class Team {
private List<ServerSidePlayer> players;
+ private int anunturi;
+ private int goal;
+ private List<Card> cardsTaken;
+ private int overallScore;
public Team() {
players = new LinkedList<ServerSidePlayer>();
+ cardsTaken = new LinkedList<Card>();
+ anunturi = 0;
+ goal = 0;
+ overallScore = 0;
}
public void addPlayer(ServerSidePlayer player) {
players.add(player);
}
+ public List<ServerSidePlayer> getPlayers() {
+ return players;
+ }
+ public void addCard(Card card) {
+ cardsTaken.add(card);
+ }
+ public void setGoal(int goal) {
+ this.goal = goal;
+ }
+ public int computeScore() {
+ int result = anunturi;
+ for (Card card : cardsTaken)
+ result += card.getValue();
+ result /= 33;
+ if (result < goal)
+ result *= -1;
+ overallScore += result;
+ return result;
+ }
+ public int getOverallScore() {
+ return overallScore;
+ }
+ public void resetRound() {
+ anunturi = 0;
+ goal = 0;
+ cardsTaken.clear();
+ }
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|