Oppure

Loading
28/07/21 20:50
Carlo
Postato originariamente da Thejuster:

void giocata per la scopa.
In che modo effettui la verifica delle carte? vedo degli ID 32;2; esempio anche se ho solo giocato una carta, mi appaiono due ID.
posso magari dedurre che il primo numero sta per la carta giocata. 32 può indicare un seme col relativo numero e la seconda cifra l'ID del giocatore che ha giocato giusto?

quasi.
ID 32;2; il primo è 32 (2 di bastoni) l'ID (indice) della carata giocata, i seguenti 2 (2 di coppe) sono gli ID (indici) delle carte prese
Il giocatore non compare perché chi gioca risulta nella variabile globale GiocatoreAttivo
l'ID è l'indice della matrice carta che contiene i controlli Carta (il tuo controllo) con tutte le proprietà da te definite.

Questo frammento di codice, prelevato dal programma, crea una matrice carta di nuovi controlli Carta con tutte le proprietà e posizione iniziale una sopra l'altra.
           carta = new Carta[41];
            int ind = 0;

            for (int rr = 1; rr < 5; rr++)
            {
                for (int cc = 1; cc < 11; cc++)
                {
                    // con le aggiunte che hai fatto su Carta, imageList non serve più.
                    ind += 1;
                    carta[ind] = new Carta((Carta.Tipo)rr, cc); // nuova carta con seme e numero
                    carta[ind].OnCardClick += C_OnCardClick;
                    carta[ind].Location = posMazzo;
                    carta[ind].Tag = ind; // nel Tag l'IDcarta
                    carta[ind].Enabled = true; // le carte distribuite hanno gli eventi attivi
                    this.Controls.Add(carta[ind]);
                }
            }

ogni ind inequivocabilmente punta a una carta:
ind = 1 asso di coppe
ind = 2 due di coppe
....
....
ind = 10 re di coppe
ind = 11 asso di denari
....
....
ind = 19 cavallo di denari
ind = 20 re di denari
....
....
....
ind = 30 re di bastoni
....
....
....
ind = 40 re di spade

L'ordine dei semi è definito nella struttura Tipo da te definito in Carta
Come Quando Fuori Piove: Cuori(Coppe), Quadri(Denari), Fiori(Bastoni), Picche(Spade)
public enum Tipo : uint
{Coppe = 0x1, Denari = 0x2, Bastoni = 0x3, Spade = 0x4}

Postato originariamente da Thejuster:
Ho notato che manca la verifica della scopa il chè e fondamentale.
ma non ho ben capito il modo in cui effettui le verifiche delle carte giocate.

avevo in mente un animazione carina per segnalare la scopa appena effettuata.

Nel programma scopa che avevo scritto, per verificare la scopa avevo semplicente fatto un controllo dopo la presa:

if (flowLayoutPanelBANCO.Controls.Count == 0) // se nel banco non ci sono più carte... = Scopa
{
// codice scopa
}
else
{
// codice no scopa
}

Un'animazione... bella:k:
Nelle proprietà del tuo controllo Carta, serve anche una bool scopa, nella carta giocata che ha fatto scopa si setta a true in modo da usarla per il conteggio dei punti.
Ad agosto credo che avrò un po' di tempo per rimettere mano al codice, ma se non ti piace qualcosa e preferisci fare a modo tuo, vai e modifica senza pietà:rotfl::k:
Ultima modifica effettuata da Carlo 29/07/21 8:56
in programmazione tutto è permesso
09/08/21 15:18
Carlo
@ Thejuster

Ho fatto il commit del codice con la sub Scopa()
Non mi ricordavo che il messaggio deve essere scritto in fase di preparazione del commit.

Il messaggio per la revisione 24 è:
riga 387 void Scopa() dove si può richiamare la routine per l'animazione, nel message box le info utili ad identificare la carta
riga 244 controllo dell'improbabile presa di 5 carte
Ultima modifica effettuata da Carlo 09/08/21 21:04
in programmazione tutto è permesso
09/08/21 21:04
Carlo

@ Thejuster

Ho usato tortoise browser che permette di cancellare files e cartelle, finalmente ora il progetto contiene solamente quanto serve, tutti i files mescolati senza criterio del vecchio progetto carte napoletane li ho eliminati.
Potresti rinominare la tua cartella locale in: ScopaNapoletanaBAK, creare una nuova cartella ScopaNapoletana e fare un nuovo checkout, se tutto va a buon fine dovresti avere il progetto pulito e funzionante alla Revisione 30.
in programmazione tutto è permesso
10/08/21 6:33
Thejuster
perfetto si, mi e bastato fare l'update carlo si aggiorna tutto da solo.
Ho scoperto un bug, non so se è un bug o magari hai dimenticato qualcosa o lo hai fatto apposta
nella carta superiore in alto se ci clicco sopra continua a dare carte ma non ai giocatori, ma sul tavolo
mire.forumfree.it/ - Mire Engine
C# UI Designer
10/08/21 9:29
Carlo
Postato originariamente da Thejuster:

perfetto si, mi e bastato fare l'update carlo si aggiorna tutto da solo.

Da quanto ho potuto vedere con l'update, le cartelle e i file in locale si aggiornano, me le cartelle e i file inutili restano, non vengono cancellati.
Per esempio questi sono inutilizzati:
...ScopaNapoletana/carte (è un duplicato le carte usate sono nella cartella: ...ScopaNapoletana\Scopa Napoletana\Resources\)
...ScopaNapoletana/code (vuota)
...ScopaNapoletana/bin (vecchio progetto)
...ScopaNapoletana/obj (vecchio progetto)
...ScopaNapoletana/Properties (vecchio progetto)
...ScopaNapoletana/Form1.cs (vecchio progetto)
...ScopaNapoletana/Form1.resx (vecchio progetto)
...ScopaNapoletana/Form1.Designer.cs (vecchio progetto)
...ScopaNapoletana/Program.cs (vecchio progetto)
...ScopaNapoletana/Scopa.csproj (vecchio progetto)

Poi ci sono altre cartelle e file inutilizzati, provenienti dal progetto originale ma non più usato, all'interno di:
...ScopaNapoletana\Scopa Napoletana\
Se lasci così, e non rifai un ceckout da zero, non avrai il progetto pulito e al prossimo commit pubblicherai anche i files inutili.:k:

Postato originariamente da Thejuster:
Ho scoperto un bug, non so se è un bug o magari hai dimenticato qualcosa o lo hai fatto apposta
nella carta superiore in alto se ci clicco sopra continua a dare carte ma non ai giocatori, ma sul tavolo

E' un bug, le carte sono enabled=true, per fare in modo che solo il giocatore attivo le possa cliccare abilito e disabilito il groupbox GiocatoreN, per fare in modo che le carte non siano cliccabili in flowLayoutPreseN, metto la proprietà della carta enabled=false, non posso disabilitare il flowLayoutPreseN perché altrimenti non funzionerebbero le scrollbar.
Sul mazzo, non eseguo nessun controllo, praticamente il mazzo è un quinto giocatore che può sempre giocare usando la carta disponibile sul mazzo, eventuali prese vengono assegnate al giocatore attivo, ma nulla è voluto, giocare la carta dal mazzo crea effetti indesiderati, il bug scomparirà nel gioco definitivo dove le carte del mazzo non saranno visibili, inutile correggerlo.:rotfl:
Ultima modifica effettuata da Carlo 10/08/21 11:32
in programmazione tutto è permesso