Newsgroup: it.comp.programmare.win32
Titolo: aiutoooooooooooooo!!!!!!!!!!

Chi è in grado di darmi una mano per questo progetto del corso universitario
di sistemi operativi1???
Gioco del Tris (versione client-server).Piattaforma di riferimento windows
NT
Realizzare una versione elettronica del famoso "gioco del
Tris". In questa versione due processi client sono l'interfaccia tra i
giocatori e il server. Un client, una volta abilitato dal server,
accetta come input una mossa, la trasmette al server, e riceve la
risposta dal server. Il server a sua volta quando riceve una mossa,
comunica ai due client la nuova disposizione e se uno dei due
giocatori e' il vincitore, altrimenti abilita il secondo client a
spedire una mossa. Il canale di comunicazione tra client e server e' a
discrezione dello studente.
N.B.Bisogna usare C e le system calls di windows
Sarò riconoscente per tutta la vita a chiunque riuscirà a darmi una mano!!!

 Sarò riconoscente per tutta la vita a chiunque riuscirà a darmi una mano!!!
E già, in fondo si tratta del tuo curriculum :)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


No, le directX non so neanche cosa sono e comunque il prof non ce ne ha mai
parlato,quindi....
Volevo semplicemente avere uno schema per iniziare, nel senso: la tabella
del tris, va gestita con la memoria condivisa?
Come devo gestire i semafori??
Volevo soltanto qualche "dritta", uno schema generale,niente di più.
Grazie,ciao!


 Grazie,ciao!
Bè, vediamo un po', che dire? La tabella del tris è una matrice da 3x3
contenente elementi enum definiti da te, tipo:
enum Casella {VUOTA, CROCE, PALLINO};
Casella tabella[3][3];
poi, per far comunicare i clients col server puoi usare uno dei numerosi
sistemi di networking che Windows mette a disposizione. Per un programma
che valga qualcosa di più di un tris consiglierei i sockets, che come dice
l'MSDN supportano "current and emerging technologies such as
non-mi-ricordo-quali", ma per un tris direi di usare qualcosa di più
semplice, come le Named Pipes o le Mailslots.
Poi devi stabilire un protocollo, cioè delle regole per la comunicazione
che vengano rispettate sia dal server che dal client; un primo passo per
la definizione di un protocollo sarebbe quello di definire gli ID dei vari
messaggi che si scambiano i due programmi; tipo (sparo):
//Messaggi dal client al server
// richiesta di connessione da un client a un altro client
#define IDM_CONNECT     0
// connessione rifiutata; il client sta già giocando
#define IDM_DENY        1
// connessione accettata; inizio partita
#deifne IDM_ACCEPT      2
// il client "sender" ha fatto una mossa; aggiornare il client destinatario
#define IDM_UPDATE_MOVE 3
// il client sender ha deciso di disconnettersi, oppure ha vinto la partita
#define IDM_DISCONNECT  4
//Messaggi dal server al client
// tentativo di connessione da altro client (messaggio già definito, l'ho
messo come commento)
// #define IDM_CONNECT
// tentativo di disconnessione da altro client, oppure vittoria dell'altro
client (già definito anche questo)
// #define IDM_DISCONNECT
// connessione avvenuta
#define IDM_CONNECTED    5
// connessione rifiutata dall'altro client
#define IDM_DENIED       6
// l'altro client ha fatto una mossa; aggiornare
#define IDM_MOVE         7
// l'altro client si è disconnesso, oppure ha vinto
#define IDM_DISCONNECTED 8
Ovviamente l'header che contiener questi #define deve essere incluso sia
dal server che dal client.
Fatto questo devi definire quali dati vengono passati per ogni messaggio;
ad esempio, nei messaggi IDM_MOVE e IDM_UPDATE_MOVE dovrai passare due
numeri interi senza segno, cioè gli indici che nella matrice "Tabella"
identificano la casella nella quale l'altro client ha effettuato la mossa.
Attento a non confondere i messaggi client-server da quelli server-client.
Penso che con queste informazioni tu abbia già lo schema generale che hai
chiesto (alla fine il lavoro più complesso sta nella definizione del
protocollo); comincia il lavoro, e se non sai qualcosa torna su NewsLand.
ciao ciao.


"Al" <Non...@Di.co> ha scritto nel messaggio
news:blm6r1$1ik$1...@news.newsland.it...


Grazie, sei stato molto gentile e di grande aiuto.Ciao!!!


 Grazie, sei stato molto gentile e di grande aiuto.Ciao!!!
di niente, ma la prossima volta quota meglio! :)
