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: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