Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Gioco Forza 4: controlli!!!
Forum - Java - Gioco Forza 4: controlli!!!

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 16:04
Venerdì, 29/10/2010
Mi sono cimentato in un altro progetto, ma mi sono bloccato in un punto.
Io ho creato una matrice di cui posso impostare i valori di riga e colonna. Mi sapreste dire come fare il controllo nel caso in cui ci siano 4 pedine dello stesso colore nelle due diagonali (sx e dx).

P.S. Io uso una matrice di jlabel dove assegno a seconda dei casi l'immagine corrispondente!!

PM
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 16:26
Venerdì, 29/10/2010
Molto semplice, ipotizziamo che il gioco forza 4 abbia 10 righe e 20 colonne. Per ogni pallina che occuperà una determinata posizione bisognerà inserire il valore dentro la matrice (n riga e n colonna). Il valore da inserire sarà la lettera iniziale del colore della pallina esempio v (sta per verde). Adesso arriviamo al controllo. Un semplice ciclo for che controlla che la colonna sia totalmente riempita da palline verdi. Analizziamo per esempio la colonna più a destra (la 20-esima)

Codice sorgente - presumibilmente Java

  1. for (int i; i<=10; i++) {
  2.         if (strcmp(matrice[i][20], 'v')) {
  3.                 continue;
  4.         } else {
  5.                 break;
  6.         }
  7. }


Questa funzione controlla che la colonna sia riempita di palline verdi.
Se invece vuoi vedere se ci sono palline verdi, circondate da altre palline in una colonna. Dovrai organizzarti il lavoro in questo modo:
Codice sorgente - presumibilmente Java

  1. for (int i = 0; i <= 10; i++) {
  2.         if (!strcmp(matrice[i][20], 'v')) {
  3.                 for(int c = i;;) {
  4.                         ++c; /* mi serve subito il nuovo valore di i */
  5.                         if (!strcmp(matrice[c][20], 'v')) {
  6.                                 /* il ciclo continua finchè le palline non saranno più verdi */
  7.                         } else {
  8.                                 break;
  9.                         }
  10.                 }
  11.         }
  12. }


Lo scritto in C, perchè conosco solo questo come linguaggio.

PM
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 16:36
Venerdì, 29/10/2010
Il linguaggio non è un problema perché ho fatto anch'io C. ;)
Ma non c'è un metodo che quando schiaccio su una posizione della matrice, avendo la x e la y di quella, si può controllare sia la diagonale dx e sx passante per quella posizione??

PM
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 17:53
Venerdì, 29/10/2010
Per trovare una diagonale, partendo dal n di riga e n di colonna potresti fare cosi

Codice sorgente - presumibilmente Plain Text

  1. matrice[n_righe+1][n_colonne-1]


troverai in questo modo una piccola diagonale (esempi vedi |)

-------|----
--------|---
---------|-- (si parte da qui)

PM
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 20:20
Venerdì, 29/10/2010
Provo e ti faccio sapere!

PM
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 12:30
Domenica, 31/10/2010
Ce l'ho fatta. Ho utilizzato un altro metodo molto più lungo a causa dei ragionamenti che ho fatto, ma con la bellezza di 650 righe ho finito Forza 4.
Grazie anche a te, Pitagora, perchè mi hai fatto capire come dovevo fare. :k:

PM
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 14:08
Domenica, 31/10/2010
perchè non provi a spiegare il ragionamento? A qualcuno prima o poi potrà essere utile! :k:

PM
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 9:52
Lunedì, 01/11/2010
Sempre qui, in questo post?

PM
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 9:57
Lunedì, 01/11/2010
Testo quotato

Postato originariamente da bububs:

Sempre qui, in questo post?

E dove sennò 8-)

PM
Pagine: [ 1 2 ] Precedente | Prossimo