Jag vill att det kommer upp en msgbox när man vinner ,, Första steget mot snyggare kod: förkorta. Men alltså ja vill ha koden sådär, vill bara veta hur man gör lodrätt koden.? Du skriver din fråga som en djä.. "kratta" <code> Där är min nya kod, förkortat, jag gör "fyra i rad spelet" och vill veta hur man kodar lodrätt, alltså att man vinner i lodrätt. Inte för att på något sätt vara otrevlig, men din kod är fortfarande ganska dåligt uppbyggd och har alldeles för lite kommentarer etc. för att någon ska orka: Ett alternativt sätt (vilket kanske inte hjälper i detta fallet dock) är att kolla after 4 i rad när en ny "bricka" placeras. Man kan då kolla efter 4 i rad som involvera just den positionen. Då behöver man inte kolla igenom varenda möjlighet varje gång efter vinst. Inte för att det tar så lång tid eller resurser men ändå...Kan någon hjälpa mig med koden ?
'-----------------------------------------------
Dim Index As Integer, antal As Integer, AngeNamn1 As String, angenamn2 As String, str1 As Boolean
Private Sub Form_Load()
AngeNamn1 = InputBox("Skriv in 1:a Spelarens namn..", "Fyra i Rad")
angenamn2 = InputBox("Skriv in 2:a Spelarens namn..", "Fyra i Rad")
lblplayer.Caption = AngeNamn1
End Sub
Private Sub players()
If Index Mod 2 = 0 Then ' Lägger indexen i två lägen
Index = Index + 1 ' Ökar indexen med ett
lblplayer.Caption = angenamn2
Else
Index = Index + 1
lblplayer.Caption = AngeNamn1
End If
End Sub
'Private Sub Image1_Click(index As Integer)
'Call players
'If IsEmpty(Image1(index).Picture) Then
'Exit Sub
'Else
' If Image1(index).index = 54 Or 45 Or 36 Or 27 Or 18 Or 9 Or 0 Then
' Call Rad1a
' Else
' Call Rad1
' End If
'End If
'-------------------------------------------------------
'-----------------------------------------------------------
End Sub
Private Sub mnuAvsluta_Click()
End
End Sub
Private Function Spelare()
If antal Mod 2 = 0 Then
Spelare = "röd"
antal = antal + 1
lblplayer.Caption = angenamn2
Else
Spelare = "blå"
antal = antal + 1
lblplayer.Caption = AngeNamn1
End If
End Function
Private Sub Rad1_Click()
For i = 0 To 54 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub rad2_Click()
For i = 1 To 55 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub rad3_Click()
For i = 2 To 56 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub rad4_Click()
For i = 3 To 57 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub rad5_Click()
For i = 4 To 58 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub rad6_Click()
For i = 5 To 59 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub rad7_Click()
For i = 6 To 60 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub rad8_Click()
For i = 7 To 61 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub rad9_Click()
For i = 8 To 62 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub lodratt()
For i = 0 To 54 Step 9
If Image().Picture = "röd ring.bmp" Then
End Sub
'-------------------------------------------Sv: Kan någon hjälpa mig med koden ?
Sätt index på rad och ha samma namn på alla nio, men med index från ett till nio.
Sedan blir det lättare för oss andra och dig att läsa koden och förstå problemet.
<CODE>
Private Sub Rad_Click(index as integer)
For i = 0 To index + 53 Step 9
If Image1(i).Picture = 0 Then
If Spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
</CODE>
/PelleSv:Kan någon hjälpa mig med koden ?
MVH PeteSv: Kan någon hjälpa mig med koden ?
Vadå lodrätt förstår "nada"
Skulle svarar som inlägget 2 steg ovan. Hur fae... skall Vi kunna veta vilken Sub som
behandlar lodrätt ?
Vilken Sub gäller det ?Sv:Kan någon hjälpa mig med koden ?
Private Sub lodratt()
For i = 0 To 54 Step 9
If Image().Picture = "röd ring.bmp" Then
End Sub
</code>
Jag antar att det är den biten han vill ha hjälp med. Vad som behövs där vet jag dock inte, har inte satt in mig i koden.
ThomasSv: Kan någon hjälpa mig med koden ?
Dim Index As Integer, antal As Integer, AngeNamn1 As String, angenamn2 As String, str1 As Boolean
Dim vekspelare(0 To 54), antal2 As Integer
Private Sub Rad_Click(Index As Integer)
For i = Index To Index + 54 Step 9
If Image1(i).Picture = 0 Then
If spelare = "röd" Then
Image1(i).Picture = LoadPicture(App.Path & "\" & "röd ring.bmp")
Exit Sub
Else
Image1(i).Picture = LoadPicture(App.Path & "\" & "blå ring.bmp")
Exit Sub
End If
End If
Next i
End Sub
Private Sub Form_Load()
AngeNamn1 = InputBox("Skriv in 1:a Spelarens namn..", "Fyra i Rad")
angenamn2 = InputBox("Skriv in 2:a Spelarens namn..", "Fyra i Rad")
lblplayer.Caption = AngeNamn1
End Sub
Private Function spelare()
If antal Mod 2 = 0 Then
spelare = "röd"
antal = antal + 1
lblplayer.Caption = angenamn2
spelaren = lodratt
Else
spelare = "blå"
antal = antal + 1
lblplayer.Caption = AngeNamn1
End If
End Function
Private Function lodratt()
For i = 0 To 45 Step 9
If vekspelare(i) = "röd" Then
If vekspelare(i + 9) = "röd" Then
If vekspelare(i + 18) = "röd" Then
If vekspelare(i + 27) = "röd" Then
MsgBox ("röd vann")
End If
End If
End If
ElseIf vekspelare(i) = "blå" Then
If vekspelare(i + 9) = "blå" Then
If vekspelare(i + 18) = "blå" Then
If vekspelare(i + 27) = "blå" Then
MsgBox ("blå vann")
End If
End If
End If
End If
Next i
End Function
Private Sub mnuAvsluta_Click()
End
End SubSv:Kan någon hjälpa mig med koden ?
1. Läsa igenom koden
2. Sätta sig in i ditt problem
3. Lösa ditt problem
Rent principellt säger jag så här:
Om du har en nxm-matris som du numrerar 1, 2, 3, ... , n*m så får du ut en lodrätt rad som index i, i+n, i+2n etc., jämfört med en vågrätt rad där du får ut det som i, i+1, i+2, etc.
Diagonalt får du ut som i, i+(1+n), i+2(1+n), i+3(1+n), resp. i, i+(n-1), i+2(n-1), osv.Sv: Kan någon hjälpa mig med koden ?