# Shkenca > Informatikë dhe Internet > Arti i programimit >  Loja me letra Xing ne Java, server ne C

## lampkin

Kam nje detyre laboratori per te bere, po ju dergoj kerkesen sic e ka pershkruar profesori per efekt ekzaktesie ne radhe te pare, por dhe ngaqe nuk i di termat me saktesi ne shqip...

Do te me behej qejfi nese do me ndihmonte dikush pjeserisht ose me zgjidhje te plote, ose te me ndihmonte duke me sjelle kodet e ndonje programi te ngjashem me kete...

Afati i fundit qe do me sherbente zgjidhja juaj :  10 prill (te dielen)

PROBLEM DESCRIPTION 
You are asked to write a C program for Java applets to play a simple card game as will be explained below. The game software that you  are asked to implement includes two components:  the server, that is implemented with C under the Linux/Unix environment; the client which is implemented using Java. Because then interaction with the players will be taken into account this  component  should also include a well-designed GUI.

The server should follow the above rules:

a.  The server will manage several distinct games at the same time.
b.  Each game should have a unique name.
c.  To connect a game, a unique nickname is required for each player.
d.   2,3 or 4 players can take part in the game
e.   A user can either start or join a new game. If he starts a new game, he will be the moderator of         this game.
f.   The moderator can start the game, if there are at least two participants.
g.  Cards will be given randomly by the server.
h. The game is over when a player gathers 151 points.
i. Points are calculated as follows:
     a. Jack : 1 point (fanti- 1 pike)
     b. Ace : 1 point (asi - 1 pike)
     c. 10 of diamonds: 3 points (10 karo - 3 pike)
     d. 2 of clubs 2 points ( 2 spathi - 2 pike)
     e. Xing 10 point
     f. Xing me fant 20 pike
j. The server will take the port number and the debugging options as arguments.
k. Server will run in the background and write the debug/warning messages to syslog.

The client is responsible to interact with the game server on behalf of the player. The client should get from the user its nickname, the port and the name of the game server.If the nickname is in use, it should ask for another one.  

Ju falenderoj...

----------


## qoska

me kujto rregullat e Xing-ut  :buzeqeshje:  se une te ndihmoj persa i perket serverit kurse per klientin as qe me shkon ndermend pasi nuk jam aq i mire ne java sidomos ne anen grafike te saj  :buzeqeshje:

----------


## lampkin

Ok Qoske,

Qe te mos merresh me pune "angari"  duke shkruar kode per Xingun, te kodi yt ne server.c  bej nje funksion 

void manageTheGame() {}

brendesine e te cilit lere bosh (me ler mua per ta plotesuar sipas rregullave te xingut). Te komentet te kreu i funksionit me thuaj te cilat variabla globale ndodhet inputi qe ke marre nga klienti i fundit dhe te cilat variabla globale ta vendos outputin e funksionit ne menyre qe ti pastaj tia cosh klientave. 

Ideja eshte qe ti ne menyre *ciklike* do marresh input nga lojtaret, do therrasesh manageTheGame() dhe statusin e lojes do tia besh te ditur te gjithe anetareve te lojes.

Do te kisha idene te pershkruaja disa nga strukturat e te dhenave globale te server.c  si psh: 

struct table
{
short initialized;           // fillimisht FALSE, behet TRUE kur lojtari qe ka hapur lojen con mesazhin "start" 
int playersCount;        //fillimisht 0, mund te rritet deri ne 4
char nicknames[4];
int playerCards[4]13]; // mban letrat e lojtareve
int fieldCards[5];          //mban letrat qe jane ne fushe
};

Shpresoj ta kem shprehur qarte ate cka desha te them  :buzeqeshje: 

Shendet.

----------


## qoska

o lale ma bej hallall une ste ndihmoj dot me shume se kaq se me kane dale pune per vete gjithsesi po u lirova ndoshta edhe mund ta mbaroj.
Gjithsesi kjo eshte ideja une kam shkruar header.h i cili permban deklarimet e strukturave qe do te te duhen per kete pune ke komente te bollshme gjisesi kane ngelur disa rifinitura si psh te percaktohet struktura dhe mesazhet e protokollit qe do perdori loja keto jane per ate qe shkruan rregullat e lojes.
Pastaj ke tre .c file qe jane marre nga libri i stevens per rrjetin ideja e serverit qe ke aty eshte qe leshon nje numer te percaktuar procesesh ne fillim dhe i perdor ato per tu pergjigjur me shpejt klienteve si dhe cdo child i krijuar nga fork() ka nje pipe me serverin ose me "parent process" kjo zgjidh dhe problemet e zonave kritike pasi parent process vetem sa lexon nga nje pipe per cdo here qe therret nje funksion lexo() psh dhe kthen pergjigje po ne ate pipe ose me ane te AF_LOCAL qe eshte IPC ne BSD unix brendaperbrenda PC.
Ne keto .c file ke funksione te shkruara me germen e madhe qe do thote qe ato vetem sa eliminojne "error checking" kontrollin per gabime qe kodi te behet me i lexueshem.
kure file .c qe ka _r ka te beje qe mund te thirret me shume se njehere ne te njejten kohe dmth eshte "rentrant" mjafton te modifikosh keto file dhe te shtosh vetem disa manipulime strukturash dhe e ke gati.
Shpresoj te te ndihmoj, gjithsesi une do ta mbaroj kur te kem kohe se eshte nje projekt i lezetshem nqs do te publikohet dhe klienti   :buzeqeshje:  qe ti mbase ke krijuar.
TUNG!!!!

----------


## qoska

ja ku i ke dhe filet qe flitet me siper

----------


## IlirDeda

Lampkin, cfare u be me kete projekt?
Projekti me duket teper interesant. Te them te drejten me duket shume i veshtire per detyre shtepie ne nje Universitet. 
Nese e ke zgjidhur, a mund ti vendosesh skedaret ketu?

----------

