Italian istruzione "if" non funziona

tonyo

New Member
Ciao a tutti spero di trovare un'anima buona che mi aiuti a sbloccare la mia app. e cioè: stò creando un gioco dove ci sono 2 imageview e in ognuna di esse girano delle immagini (random) il tutto gestito da un timer.Ora viene il problema : ci sono 2 label che in ognuna di esse segna un punto all'una o a l'altra imageview a secondo dell'accoppiamento al termine del ciclo,e quindi il codice dovrebbe essere 'if timer1.enabled=false and img1=img2 then
a=a+1
label1.text=a (cioe vince img1)......ma non funziona.Heelp
 

micro

Well-Known Member
Licensed User
Longtime User
Forse è meglio postare la tua parte di codice, non mi è chiaro come fai a controllare l'uguaglianza di due immagini.
E' da un pò che non ci smanetto con Android però penso che la soluzione migliore (non so se tu carichi le immagini direttamente da DirAssets) è quella di caricare le immagini in due list diverse e controllare la combinazione degli indici delle immagini nelle liste.
Qualcuno che ci lavora in modo più continuo sicuramente ti potrà dare una mano.
 

Dominex

Active Member
Licensed User
Longtime User
Ti consiglio di assegnare ai tag delle immagini un indice, e poi confronti quest'ultimo "img1.tag = img2.tag", altrimenti non credo funzioni dato che un controllo di uguaglianza tra due imageview fallisce se non sono uguali TUTTI i valori del view.
 

tonyo

New Member
Grazie a tutti per l'intervento ecco il codice


Sub Globals
Dim punti As Int
Dim a As Int
Dim b As Int
Dim timer1 As Timer
Dim timer2 As Timer
Dim Butgioca As Button
Dim EditText1 As EditText
Dim EditText2 As EditText
Dim img1 As ImageView
Dim img2 As ImageView
Dim Label1 As Label
Dim Label3 As Label
Dim lbl1giocatore As Label
Dim lbl2giocatore As Label
End Sub
__________________________________________________
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("scf")
timer1.Initialize("timer1",500)
timer1.Enabled=False
timer2.Initialize("timer2",3000)
timer2.Enabled=False
End Sub
_______________________________________________________
Sub Activity_Resume

End Sub
___________________________________________________________
Sub Activity_Pause (UserClosed As Boolean)

End Sub
________________________________________________________________
Sub Butgioca_Click
timer1.Enabled=True
timer2.Enabled=True
a=Rnd(1,4)
b=Rnd (1,4)
Select a
Case 1
sasso2
Case 2
carta2
Case 3
forbici2
End Select
Select b
Case 1
sasso
Case 2
carta
Case 3
forbici
End Select
If timer1.Enabled=False AND sasso2=carta Then
punti=punti+1
lbl2giocatore.Text=punti
Else If timer1.Enabled=False AND sasso2=forbici Then
punti=punti+1
lbl1giocatore.Text=punti
End If
End If
______________________________________________________
End Sub
Sub timer2_tick
timer2.Enabled=False
timer1.Enabled=False
End Sub
_______________________________________________________
Sub timer1_tick
timer1.Enabled=True
timer2.Enabled=True
a=Rnd(1,4)
b=Rnd (1,4)
Select a
Case 1
sasso2
Case 2
carta2
Case 3
forbici2
End Select
Select b
Case 1
sasso
Case 2
carta
Case 3
forbici
End Select
End Sub
________________________________________________________
Sub sasso
img2.Bitmap=LoadBitmap(File.DirAssets,"sasso.png")
End Sub
______________________________________________________________
Sub carta
img2.Bitmap=LoadBitmap(File.DirAssets,"carta.png")
End Sub
_____________________________________________________________________
Sub forbici
img2.Bitmap=LoadBitmap(File.DirAssets,"forbici.png")
End Sub
__________________________________________________________________
Sub sasso2
img1.Bitmap=LoadBitmap(File.DirAssets,"sasso2.png")
End Sub
_________________________________________________________
Sub carta2
img1.Bitmap=LoadBitmap(File.DirAssets,"carta2.png")
End Sub
___________________________________________________________________
Sub forbici2
img1.Bitmap=LoadBitmap(File.DirAssets,"forbici2.png")
End Sub
 

Dominex

Active Member
Licensed User
Longtime User
Non l'ho provato, ma la strada dovrebbe essere questa.
B4X:
Sub Globals
    Dim punti As Int
    Dim a As Int
    Dim b As Int
    Dim timer1 As Timer
    Dim timer2 As Timer
    Dim Butgioca As Button
    Dim EditText1 As EditText
    Dim EditText2 As EditText
    Dim img1 As ImageView
    Dim img2 As ImageView
    Dim Label1 As Label
    Dim Label3 As Label
    Dim lbl1giocatore As Label
    Dim lbl2giocatore As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("scf")
    timer1.Initialize("timer1",500)
    timer1.Enabled=False
    timer2.Initialize("timer2",3000)
    timer2.Enabled=False
End Sub

Sub Butgioca_Click
    timer1.Enabled=True
    timer2.Enabled=True
    a=Rnd(1,4)
    b=Rnd (1,4)
    Select a
        Case 1
            sasso2
        Case 2
            carta2
        Case 3
            forbici2
    End Select
    Select b
        Case 1
            sasso
        Case 2
            carta
        Case 3
            forbici
    End Select
    If timer1.Enabled=False Then
        If img1.Tag = (img2.Tag+1) Mod 2 Then
            punti=punti+1
            lbl2giocatore.Text=punti
        Else img2.Tag = (img1.Tag+1) Mod 2 Then
            punti=punti+1
            lbl1giocatore.Text=punti
        End If
    End If
End Sub

Sub timer2_tick
    timer2.Enabled=False
    timer1.Enabled=False
End Sub

Sub timer1_tick
    timer1.Enabled=True
    timer2.Enabled=True
    a=Rnd(1,4)
    b=Rnd (1,4)
    Select a
        Case 1
            sasso2
        Case 2
            carta2
        Case 3
            forbici2
    End Select
    Select b
        Case 1
            sasso
        Case 2
            carta
        Case 3
            forbici
    End Select
End Sub

Sub sasso
    img2.Bitmap=LoadBitmap(File.DirAssets,"sasso.png")
    img2.Tag = 0
End Sub

Sub carta
    img2.Bitmap=LoadBitmap(File.DirAssets,"carta.png")
    img2.Tag = 1
End Sub

Sub forbici
    img2.Bitmap=LoadBitmap(File.DirAssets,"forbici.png")
    img2.Tag = 2
End Sub

Sub sasso2
    img1.Bitmap=LoadBitmap(File.DirAssets,"sasso2.png")
    img1.Tag = 0
End Sub

Sub carta2
    img1.Bitmap=LoadBitmap(File.DirAssets,"carta2.png")
    img1.Tag = 1
End Sub

Sub forbici2
    img1.Bitmap=LoadBitmap(File.DirAssets,"forbici2.png")
    img1.Tag = 2
End Sub
 
Top