|
|
|
![]() |
|
Strumenti |
![]() |
#281 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
ma sono un idiota.....nananan....fatto
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#282 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
c'è però un problema..................rimane SEMPRE un solo elemento uguale a ZERO in posizione generica, nel senso non sempre nella stessa.................e non capisco perchè
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#283 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Inanzitutto piantala di mettere tanti ______, se vuoi mettere l'indentazione anche nel forum basta che premi sul bottoncino #, poi scrivi un carattere a caso, poi fai OK, togli il carattere ed incolli il tuo codice, così lo indenta in maniera corretta
![]() ![]() ![]() Questo è i lmio codice per creare un mazzo ordinato e poi lo mischia (va bene così dai nn andiamo a complicarci la vita che è già luno sto programma) ![]() Codice:
Public Sub CreaMazzo() 'questa procedura serve per inizializzare un 'mazzo da "sette e mezzo", in pratica dall'asso 'con valore 1 fino al 7, le tre figure valgono mezzo!! Dim nI As Integer Dim nJ As Integer 'ciclo per i semi '1· Picche '2· Quadri '3· Fiori '4· Cuori For nI = 1 To 4 'ciclo per i numeri dal 1 al 7 For nJ = 1 To 10 recMazzo(nJ).nSeme = nI recMazzo(nJ).nNumero = IIf(nJ <= 7, nJ, nJ + 3) '11· Jack, 12· Donna, 13· Re recMazzo(nJ).fValore = IIf(nJ <= 7, nJ, 0.5) Next nJ Next nI 'setto la matta (Re di Quadri) al valore 7 recMazzo(20).fValore = 7 End Sub Public Sub MescolaMazzo() 'questa procedura serve per mescolare un mazzo 'dopo averlo mischiato copperà il tutto Dim nNum As Integer Dim nI As Integer Dim nK As Integer Dim nCoppo As Integer Dim recAux(40) As RecordMazzoCarte Randomize For nI = 1 To 40 Do 'randomizzo a caso una posizione del mazzo base nNum = Int(Rnd * 40) + 1 Loop Until recAux(nNum).nNumero = 0 'copio dal mazzo base al mazzo aux (indice casuale) recAux(nNum) = recMazzo(nI) Next nI 'coppo il mazzo alla posizione che indica il giocatore alla sinistra del mazziere (20 default) nCoppo = 20 'metto il secondo blocco all'inizio del mazzo For nI = nCoppo + 1 To 40 nK = nK + 1 recMazzo(nK) = recAux(nI) Next nI 'metto il primo blocco alla fine del mazzo For nI = 1 To nCoppo nK = nK + 1 recMazzo(nK) = recAux(nI) Next nI End Sub ![]() ![]() Io avevo pensato a 2 procedure, perchè la prima crea il mazzo e basta, in quanto nn lo devi + creare (nella realtà nn compri mica il mazzo di carte ogni volta che rifai il mazzo), invece il mazzo lo rifai tante volte e questo l'ho messo in una procedura a parte! NB: ti vorrei solo ricordare (in caso il lavoro ti prendesse troppo) che il gioco è via rete, per cui i client sono solo di input/output, tutto il resto, come la crezione del mazzo, il mescolamento etc etc è dettato dal server! ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein Ultima modifica di matpez : 18-12-2003 alle 01:29. |
![]() |
![]() |
![]() |
#284 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
senti è corretto crearsi un modulo per la rete??
io sto facendo così: Codice:
Public Sub Client(rete As Winsock, destinazione As String) rete.Protocol = sckTCPProtocol rete.Connect destinazione, 5555 End Sub Public Sub Server(rete As Winsock) 'Chiude precendenti connessioni If rete.State = sckConnected Then rete.Close 'è pronto per accettare nuove connessioni rete.Protocol = sckTCPProtocol rete.LocalPort = 5555 rete.Listen End Sub quella è una funzione di default del winsocket.....ma qui non me la da! Va bene se faccio così: Codice:
Public Sub Winsock_DataArrival(ByVal bytesTotal As Long, rete as Winsock) rete.GetData ....etc End Sub
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#285 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
o la funzione DataArrival la devo gestire SOLO all'interno del form?
forse è meglio......dimmi tu..... però visto che progresso.....sto usando i moduli.....tutto più ordinato!!! ![]() dai ho fatto qualche miglioramento dall'inizio??
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#286 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Il modulo con dentro quelle due Sub non servono a niente viste così, cioè...
Tu hai un solo client ed un solo server, il server è gestito in maniera tale da supportare il multi-client. Il client è uno solo, ma è lo stesso per tutti i giocatori! Inanzitutto il socket lo metti nel form e nn hai bisogno di appoggiarti ad un modulo, il modulo server molte volte ma per creare provedure/funzioni che usi ricorrentemente su più form, se tu hai un solo form il tutto è inutile! Se hai più form ma la proc/funz la utilizzi solo nel form allora è inutile. Per il resto l'esempio che ti mandai sul multi-client dice già tutto ![]() PS: certo che sei migliorato, facendo esercizi si migliora sempre di più! ![]() ![]() ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#287 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
m'è venuto mal di testa.................................riprendo più tardi..........peccato mi piacevano i moduli................è tutto così ordinato.....
![]() ![]()
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#288 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
ti invio quello che ho fatto fin ora......devo aggiungere alcune regole ed introdurre gli altri giocatori....
cmq te lo mando uguale
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#289 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Non è male per adesso, mi piace dai
![]() Però io incomincierei a fare la gestione via socket altrimenti ti trovi a programma finito e tutto quello che hai fatot è da rifare perchè devi tenere conto che viene trasmesso via rete dal server al client ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#290 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
è vero altrimenti diventa un casino!!
Allora, il CLIENT passa al server i dati relativi a quale pulsante è stato premuto, giusto? mentro il SERVER invia a tutti i client la risposta, unica per tutti (uguale) giusto?? per stabilire il vincitore devo solo tener conto in una variabile quale sia il giocatore col risultato più alto!!
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#291 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
in tutto questo però devo tener conto del numero delle connessioni che sarebbero i miei giocatori.............facciamo massimo 4 altrimenti è un casino tenere le carte di tutti sulla form.........e se oltre ai quattro si vuole aggiungere qualcun'altro devo solo fare
winsocket1.ConnectionRequest = sckConnectionRefused giusto? o c'è un'altro modo per rifiutare una connessione??
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#292 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
scusa un'altra cosa......come si fa a personalizzare una:
Progress Bar e una Slider ?? voglio che abbiano non so, un'immagine particolare......tipo come fanno i lettori multimediali.............. ![]()
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#293 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
adesso si che mi sto incasinando la vita.......col MULTI-client non ho moooolta dimestichezza!!!!
Ti allego il codice con la gestione rete inclusa...........ma ci sto capendo poco!!! il client deve inviare 1 solo dato al server, ovvero il PULSANTE PRENUTO, giusto??? ok ma il server deve mandare PIU' dati al client, ovvero: # il vettore (e ancora devo capire come) # la carta da scopripre che si divide in: 1 - numero carta 2 - seme carta # il punteggio .....boh qui mi incasino..............mi serve aiuto ![]()
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#294 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
![]()
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#295 | |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
![]() |
![]() |
![]() |
#296 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Scusa se ti rispondo di notte, ma sono arrivato a casa adesso, allora....
Secondo me, o meglio dire, secondo la mia esperienza, sarebbe meglio che tu creassi un "Server Dedicato", cioè un programma che server che una volta lanciato sta li e gestisce la partita!! Ora dopo avere fatto il server dedicato (di cui hai anche l'esempio che ti postai tempo fa) devi "solo" fare il client. Il client è solo di lettura e scrittura, cioè tutto quello che succede passa dal server, esempio banale, il mazzo di carte lo crea il server, lo mischia il server e poi quando il client fa la richiesta della carta lui manda il numero di carta e il seme, a quel punto il client intercetta i dati e mostra la carta e così via... Adesso, il gioco molti-client nn è molto semplice da implementare, ma se arrivi alla fine di questo gioco sicuramente avrai fatto passi da gigante sia in programmazione sia in VB e io sarò molto contento, tanto che fra le altre cose nn ti servirò più come insegnante a livello pratico, ma solo a livello di architettura e struttura del programma! ![]() Tornando a noi, ti avevo insengato a passare i dati in maniera "intelligente", cioè organizzati a modello di stringa separti da una bella virgona...esempio praticissimo, noi vogliamo implementare il famosissimo passaggio di carte tra il server ed il client, il server naturalmente ha il mazzo di carte e l'ordine con cui l'hai mischiato. Dal Client 1 arriva la richiesta di passaggio carta (come simbolo avremo un bel cancelletto "#", PS: la procedura di richiesta è simile a quella del client, per cui la spiegherò solo una volta). Il server vrea una cosa del genere: Codice:
wskServer(Index).SendData "#," & recMazzo(nI).Seme & "," & recMazzo(nI).Numero I Dati viaggieranno per la rete e andranno a stimolare la funzione DataArrival del nostro wskClient A questo punto dentro a questa bella procedura noi abbiamo un grosso CASE che gestisce i nostri comandi (che noi abbiamo rappresentato con "#" per la richiesta di carta, ma possiamo benissimo utilizzarne altri). Utiziamo una varibile Variant per immagazzinare lo splittamento dei nostri dati in arrivo: Codice:
Dim vVet as Variant vVet=Split(vVet,",") Codice:
Select Case vVet(0) Case "#" 'qui noi svolgeremo i dati del programma, facendo bene attenzione 'che in vVet(1) abbiamo il seme, e nell'indice 2 abbiamo il numero di carta End Select Spero di averti fatto capire un po' meglio, se ci sono dubbi allora chiedi ancora, siccome sono le 4 del mattino io vado a nanna, ci sentiamo presto! ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#297 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
grazie, finalmente ho capito perchè ogni tanto te ne uscivi con sta storia dello splittamento e del # !!!!
Quello che non mi va tanto a genio è di dover creare un SERVER dedicato e poi IL PROGRAMMA del sette e 1/2 !!!!!! Vorrei che si facesse tutto in uno..........(a dire la vertià vorrei che uno nn dovesse neanche scegliere tra client e server, ma che capisse stesso il programma, cmq mi accontento) Però nn vorrei dividerlo...........sto fatto del multi-client col gioco mi sta distruggendo i neuroni, ma allo stesso tempo mi piace una cifra....però mi serve molto aiuto per realizzare........nn l'ho mai fatto prima e quindi non sn preparato a ragionare in funzione RETE
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#298 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
come si fa a decompilare un OCX???
ah mi manderesti il sorgente del tuo OCX delle carte?? anche in privato.....per studiarmelo un po!!! ![]()
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#299 | |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
Questa frase nn è con tono incassato: se ti dico di fare un server dedicato, non dovresti fare di testa tua (dato che sei "l'alunno"), ci sarò un motivo perchè ti dico di fare il server dedicato ?
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
![]() |
![]() |
![]() |
#300 | |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
![]() Non prendertela a male, se vuoi consigli su come farne uno tu ok, ma prendere il mio e moddarlo no.
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:38.