[Cruce-commit] SF.net SVN: cruce:[51] C/trunk/server
Status: Beta
Brought to you by:
caiusb
|
From: <ali...@us...> - 2010-03-22 19:19:13
|
Revision: 51
http://cruce.svn.sourceforge.net/cruce/?rev=51&view=rev
Author: alinposho
Date: 2010-03-22 19:19:08 +0000 (Mon, 22 Mar 2010)
Log Message:
-----------
Variata cu getMSG()- modificata si doar scheletul pentru metodele de game logic.
Modified Paths:
--------------
C/trunk/server/gameLogic.c
C/trunk/server/server.c
Modified: C/trunk/server/gameLogic.c
===================================================================
--- C/trunk/server/gameLogic.c 2010-03-22 18:33:28 UTC (rev 50)
+++ C/trunk/server/gameLogic.c 2010-03-22 19:19:08 UTC (rev 51)
@@ -7,8 +7,20 @@
int bidAmount = -1;
int noOfTeamWhoBidded = -1;
+//functiacare se ocupa de tot bid-ul de la inceput de joc
+//returneaza
+int bid()
+{
+}
+//Genereaza si trimite cartile jucatorilor
+int sendCards()
+{
+
+}
+
+
//functia pentru o mana
int playHand()
@@ -18,12 +30,7 @@
}
-//functiacare se ocupa de tot bid-ul de la inceput de joc
-//returneaza
-int bid()
-{
-}
//Functie care returneaza true cand s-a sfarsit jocul sfarsitul jocului
int endOfGame()
Modified: C/trunk/server/server.c
===================================================================
--- C/trunk/server/server.c 2010-03-22 18:33:28 UTC (rev 50)
+++ C/trunk/server/server.c 2010-03-22 19:19:08 UTC (rev 51)
@@ -311,12 +311,15 @@
/* TODO */
/** Ia un mesaj din retea si vede ce e cu el **/
/* expected reprezinta un vector de int care specifica ce mesaje se
- * se asteapta sa vina. Este terminat cu un 0. Daca nu vine un mesaj
- * "expected" atunci se returneaza 0.
+ * se asteapta sa vina. Daca nu vine un mesaj
+ * "expected" atunci se returneaza -1.
* In cazul in care nu se receptioneaza niciun mesaj se returneaza -1
- * Daca vine un mesaj expected se returneaza 1
- * Daca expected este NULL atunci se iau in considerare toate mesajele */
-void getMSG(struct jucator *jucator, int *expected)
+ * Daca vine un mesaj expected se returneaza codul mesajului
+ * Daca expected este NULL atunci se iau in considerare toate mesajele
+ *
+ *
+*/
+int getMSG(struct jucator *jucator, int *expected, char* restOfMessage, int *sender_sfd)
{
fd_set set;
int i, j, max = 0;
@@ -344,6 +347,7 @@
select(max+1,&set,NULL,NULL,&t);
if (jucator != NULL)
+ {
if (!FD_ISSET(jucator->sfd,&set))
{
//trimitem NACK pentru mesajul ilegal
@@ -355,6 +359,9 @@
fd = jucator->sfd;
break;
}
+ //am receptionat doar mesaje de la cine nu ne asteptam deci returnam -1
+ return -1;
+ }
else
{
int bla = 0;
@@ -369,7 +376,7 @@
printf("Message from player %d of team %d ready\n",j,i);
}
if (!bla)
- return; /* daca nu a venit mesaj ies din functie */
+ return -1; /* daca nu a venit mesaj ies din functie */
else
break; /* daca a venit il tratez */
}
@@ -393,10 +400,7 @@
{
displayInfoMessage(stdout, "Warning: too few bytes read\n");
}
-
-
-
int code = decode_message(msg);
//verificam daca mesajul receptionat este intre cele care erau astepate
@@ -404,8 +408,10 @@
{
if(*expected == code)
{
- dispatchMSG(code, msg ,fd);
- return;
+ //dispatchMSG(code, msg ,fd);
+ strcpy(restOfMessage, msg);
+ *sender_sfd = fd;
+ return code;
}
expected++;
}
@@ -502,6 +508,9 @@
char infoMessage[] = {"\nServer up and running!\n"};
displayInfoMessage(stdout, infoMessage);
+ char restOfMesssage[MSG_SIZE];
+ int sender_sfd;
+
while (noPlayers != MAX_JUCATORI)
{
int fd = acceptConn(sfd);
@@ -512,7 +521,12 @@
echipe[noPlayers / NUMAR_ECHIPE].jucatori[noPlayers % JUCATORI_PER_ECHIPA].sfd = fd;
noPlayers ++;
}
- getMSG(NULL,ex_msg);
+ int code = getMSG(NULL,ex_msg, restOfMesssage, &sender_sfd);
+ if(-1 != code)
+ {//am receptionat un mesaj OK
+ dispatchMSG(code, restOfMesssage, sender_sfd);
+
+ }
}
sprintf(infoMessage, "\n\n****************All players are connected***********************\n\n");
@@ -529,7 +543,13 @@
expectedMessages[0] = JOIN_GAME;
while(!joinGame())
- getMSG(NULL,expectedMessages);
+ {
+ int code = getMSG(NULL, expectedMessages, restOfMesssage, &sender_sfd);
+ if (-1 != code)
+ {//am receptionat un mesaj OK
+ dispatchMSG(code, restOfMesssage, sender_sfd);
+ }
+ }
int i;
int j;
@@ -551,16 +571,22 @@
free(expectedMessages);
- if((expectedMessages = (int *)malloc(sizeof(int))) == NULL)
- {
- displayInfoMessage(stdout, "Eroare la alocarea memoriei\n");
- exit(EXIT_FAILURE);
- }
+ if ((expectedMessages = (int *) malloc(sizeof(int))) == NULL)
+ {
+ displayInfoMessage(stdout, "Eroare la alocarea memoriei\n");
+ exit(EXIT_FAILURE);
+ }
- expectedMessages[0] = START_GAME;
+ expectedMessages[0] = START_GAME;
- while(!startGame())
- getMSG(NULL,expectedMessages);
+ while (!startGame())
+ {
+ int code = getMSG(NULL, expectedMessages, restOfMesssage, &sender_sfd);
+ if (-1 != code)
+ {//am receptionat un mesaj OK
+ dispatchMSG(code, restOfMesssage, sender_sfd);
+ }
+ }
//Informam toti jucatorii ca pot incepe jocul
for (i = 0; i < NUMAR_ECHIPE; i++)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|