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
Visual Basic 6 - Dichiarazioni areee matrici
Forum - Visual Basic 6 - Dichiarazioni areee matrici

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
silvervale01 (Ex-Member)
Rookie


Messaggi: 24
Iscritto: 29/09/2007

Segnala al moderatore
Postato alle 16:20
Domenica, 27/01/2008
Ciao!!!
Aiuto!!!sto facendo un gioco degli scacchi e mi sono bloccato!
Non riesco a dire a VB6 di dichiarare un'area con le matrici;
esempio:quando clicco sulll'alfiere (imagebox) devono illuminarsi le celle in diagonale libere e quando il giocatore clicca su una delle celle illuminate il pezzo si deve muovere in quell'area...(come scacchiera ho usato una immagine quindi i pezzi sono immagini dentro una immagine...)
help

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 16:47
Domenica, 27/01/2008
Devi chiarire meglio come e' fatto il tuo programma ... non hai dato i dettagli sufficienti ...

Non si e' capito neanche cosa non riesci a fare ...

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 17:00
Domenica, 27/01/2008
come scacchiera hai usato un immagine singola?
secondo me la cosa migliore da fare per creare una scacchiera è di creare un' array di 64 elementi di image o picture ed associare ad ogni image un elemento nella matrice. ad esempio se clicchi su image(62) allora dovrai fare le operazione sull'elemento della matrice(8;7) contando che l'elemento 62 sarebbe il penultimo dell'ultima riga.
non so semi sono spiegato.

Ultima modifica effettuata da Overflow il 27/01/2008 alle 17:03
PM Quote
Avatar
silvervale01 (Ex-Member)
Rookie


Messaggi: 24
Iscritto: 29/09/2007

Segnala al moderatore
Postato alle 17:24
Domenica, 27/01/2008
aspetta... ecco i mio progetto...
http://www.mediafire.com/?csuyxqj5wzl

x overflow:tu intendi mettere in un array le 32 immagini dei pezzi e le altre 32 immagini vuote per le caselle vuote ma poi basta che gli dico alla matrice:
Codice sorgente - presumibilmente Plain Text

  1. matrice(8,7)=array(62)


è così?

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 17:33
Domenica, 27/01/2008
la cosa è abbastanza complessa...
io ho in parte analizzato la situazione ed ho trovato questa soluzioe:
io ho pensato di inserire 64 image. e creare un type con le caratteristiche delle celle e poi associare ad ogni image cliccata l'elemento della matrice corrispondente.
Codice sorgente - presumibilmente VB.NET

  1. Private Type casella
  2.     val As Boolean  'cella piena o vuota
  3.     pedina As Integer   'pedina che devi muovere alfiere, pedone ecc...
  4.     bianco As Boolean 'se la pedina è bianca  o nera
  5. End Type
  6. 'valori da attribuire alla variabile pedina
  7. Const torre = 1
  8. Const alf = 2
  9. Const cavallo = 3
  10. Const re = 4
  11. Const regina = 5
  12. Const pedone = 6
  13.  
  14. Dim cella(8, 8) As casella
  15.  
  16. Private Sub Form_Load()
  17. 'va inizializzata la matrice da (0,0) a (0,7) con val = true, bianco = true e
  18. 'pedina con le ripsettive pedine torre cavallo ecc... e poi le da (1,0) a (1,7) come prima solo che pedina sara sempre pedone e poi lo stesso per il nero
  19. End Sub
  20.  
  21. Private Sub Image1_Click(Index As Integer)
  22. Select Case Index
  23.     Case 0
  24.     'esegui operazioni per la casella 1 cioè cella(0,0) torre bianco
  25.     Case 1
  26.     'esegui operazioni per la casella 2 cioè cella(0,1) cavallo bianco
  27.     'ecc...
  28. End Select
  29. End Sub



io l'ho pensata in questo modo...

Ultima modifica effettuata da Overflow il 27/01/2008 alle 17:36
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 17:33
Domenica, 27/01/2008
Non solo hai usato una sola picture ma hai visualizzato la scacchiera con tutti i pezzi a partire da una singola immagine ... in questo modo non potrai visualizzare i pezzi.

Puoi usare una sola picture (e poi operare con il metodo PaintPicture), ma devi avere le bitmap dei singoli pezzi e anche quelli del quadrato bianco e del quadrato nero.

In questo modo puoi visualizzare il pezzo che ti serve nel posto che ti serve.

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 17:45
Domenica, 27/01/2008
Testo quotato

Postato originariamente da Overflow:

la cosa è abbastanza complessa...
io ho in parte analizzato la situazione ed ho trovato questa soluzioe:
io ho pensato di inserire 64 image. e creare un type con le caratteristiche delle celle e poi associare ad ogni image cliccata l'elemento della matrice corrispondente.
Codice sorgente - presumibilmente VB.NET

  1. Private Type casella
  2.     val As Boolean  'cella piena o vuota
  3.     pedina As Integer   'pedina che devi muovere alfiere, pedone ecc...
  4.     bianco As Boolean 'se la pedina è bianca  o nera
  5. End Type
  6. 'valori da attribuire alla variabile pedina
  7. const vuoto =0
  8. Const torre = 1
  9. Const alf = 2
  10. Const cavallo = 3
  11. Const re = 4
  12. Const regina = 5
  13. Const pedone = 6
  14.  
  15. Dim cella(8, 8) As casella
  16.  
  17. Private Sub Form_Load()
  18. 'va inizializzata la matrice da (0,0) a (0,7) con val = true, bianco = true e
  19. 'pedina con le ripsettive pedine torre cavallo ecc... e poi le da (1,0) a (1,7) come prima solo che pedina sara sempre pedone e poi lo stesso per il nero
  20. End Sub
  21.  
  22. Private Sub Image1_Click(Index As Integer)
  23. Select Case Index
  24.     Case 0
  25.     'esegui operazioni per la casella 1 cioè cella(0,0) torre bianco
  26.     Case 1
  27.     'esegui operazioni per la casella 2 cioè cella(0,1) cavallo bianco
  28.     'ecc...
  29. End Select
  30. End Sub



io l'ho pensata in questo modo...



scusate non volevo quotare, volevo solo modificare.

Ultima modifica effettuata da Overflow il 27/01/2008 alle 17:47
PM Quote
Avatar
silvervale01 (Ex-Member)
Rookie


Messaggi: 24
Iscritto: 29/09/2007

Segnala al moderatore
Postato alle 18:53
Domenica, 27/01/2008
grazie,
avrei solo un dubbio:
per inizializzare la matrice nel form load usando i valori type devo dirgli ad esmpio x la prima riga:
Codice sorgente - presumibilmente Plain Text

  1. val matrice(0,0)=true
  2. bianco matrice(0,0)=true


ma poi x dirgli la pedina devo scrivere:
Codice sorgente - presumibilmente Plain Text

  1. pedina matrice(0,0)=1


?

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 19:12
Domenica, 27/01/2008
no.. viene cosi.
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_Load()
  2. 'prima cella torre bianco
  3. cella(0, 0).val = True
  4. cella(0, 0).bianco = True
  5. cella(0, 0).pedina = torre
  6. 'secondacella 'cavallo bianco
  7. cella(0, 1).val = True
  8. cella(0, 1).bianco = True
  9. cella(0, 1).pedina = cavallo
  10. End Sub



questo è solo per la prima e seconda cella cioè la torre e il cavallo, questo va fatto per tutte le pedine però, re, alfiere, regina e pedoni cambiando sempre però i valori della matrice.
Poi in ogni cella gli metti l'immagine della pedina corrispondente...
ciao.

Ultima modifica effettuata da Overflow il 27/01/2008 alle 19:15
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo