Oppure

Loading
27/01/08 15:20
silvervale01
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
aaa
27/01/08 15:47
gantonio
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 ...
aaa
27/01/08 16:00
Overflow
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 27/01/08 16:03
aaa
27/01/08 16:24
silvervale01
aspetta... ecco i mio progetto...
mediafire.com/

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:
matrice(8,7)=array(62)

è così?
aaa
27/01/08 16:33
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.
Private Type casella
    val As Boolean  'cella piena o vuota
    pedina As Integer   'pedina che devi muovere alfiere, pedone ecc...
    bianco As Boolean 'se la pedina è bianca  o nera
End Type
'valori da attribuire alla variabile pedina
Const torre = 1
Const alf = 2
Const cavallo = 3
Const re = 4
Const regina = 5
Const pedone = 6

Dim cella(8, 8) As casella

Private Sub Form_Load()
'va inizializzata la matrice da (0,0) a (0,7) con val = true, bianco = true e
'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
End Sub

Private Sub Image1_Click(Index As Integer)
Select Case Index
    Case 0
    'esegui operazioni per la casella 1 cioè cella(0,0) torre bianco
    Case 1
    'esegui operazioni per la casella 2 cioè cella(0,1) cavallo bianco
    'ecc...
End Select
End Sub



io l'ho pensata in questo modo...
Ultima modifica effettuata da Overflow 27/01/08 16:36
aaa
27/01/08 16:33
gantonio
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.
aaa
27/01/08 16:45
Overflow
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.
Private Type casella
    val As Boolean  'cella piena o vuota
    pedina As Integer   'pedina che devi muovere alfiere, pedone ecc...
    bianco As Boolean 'se la pedina è bianca  o nera
End Type
'valori da attribuire alla variabile pedina
const vuoto =0
Const torre = 1
Const alf = 2
Const cavallo = 3
Const re = 4
Const regina = 5
Const pedone = 6

Dim cella(8, 8) As casella

Private Sub Form_Load()
'va inizializzata la matrice da (0,0) a (0,7) con val = true, bianco = true e
'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
End Sub

Private Sub Image1_Click(Index As Integer)
Select Case Index
    Case 0
    'esegui operazioni per la casella 1 cioè cella(0,0) torre bianco
    Case 1
    'esegui operazioni per la casella 2 cioè cella(0,1) cavallo bianco
    'ecc...
End Select
End Sub



io l'ho pensata in questo modo...


scusate non volevo quotare, volevo solo modificare.
Ultima modifica effettuata da Overflow 27/01/08 16:47
aaa
27/01/08 17:53
silvervale01
grazie,
avrei solo un dubbio:
per inizializzare la matrice nel form load usando i valori type devo dirgli ad esmpio x la prima riga:
val matrice(0,0)=true
bianco matrice(0,0)=true

ma poi x dirgli la pedina devo scrivere:
pedina matrice(0,0)=1

?
aaa