Einzelnen Beitrag anzeigen
Ungelesen 02.07.14, 19:33   #10
Haseron
Anfänger
 
Registriert seit: Mar 2011
Beiträge: 25
Bedankt: 2
Haseron ist noch neu hier! | 0 Respekt Punkte
Standard

So ich hab eigtl. ein Spiel das ich ganz gerne nehmen würde aber mein Wissensstand reicht nicht aus um die Vorgänge im Quellcode nachzuvollziehen und erklären zu können aber was "einfacheres" als das Spiel find ich auch nicht
Hier mal der Quellcode von Senso (mein gewünschtes Spiel):

Option Explicit
Option Base 1

Dim iMax As Integer
Dim iCounter As Integer
Dim iZufall(50) As Integer
Dim iFarbe_R(9), iFarbe_G(9), iFarbe_B(9) As Integer
Dim i, i2, j, k, l As Integer
Dim sPauseKlein, sPauseGross As Single

Sub Auto_Open()
ThisWorkbook.Worksheets("Senso").Activate
iMax = ThisWorkbook.Worksheets("Init").Cells(1, 2).Value
sPauseKlein = ThisWorkbook.Worksheets("Init").Cells(3, 2).Value
sPauseGross = ThisWorkbook.Worksheets("Init").Cells(4, 2).Value
Randomize Timer

For i = 1 To iMax
ThisWorkbook.Worksheets("Zufall").Cells(i, 2).Value = 0
Next i

For i = 1 To 9
iFarbe_R(i) = ThisWorkbook.Worksheets("Init").Cells(i + 5, 2).Value
iFarbe_G(i) = ThisWorkbook.Worksheets("Init").Cells(i + 5, 3).Value
iFarbe_B(i) = ThisWorkbook.Worksheets("Init").Cells(i + 5, 4).Value
Next i

For i = 1 To 9
Call ButtonColor(i)
Next i

k = 0

For i2 = 1 To iMax + 3
ThisWorkbook.Worksheets("Senso").Cells(i2 + 2, 1).Value = ""
ThisWorkbook.Worksheets("Senso").Cells(i2 + 2, 2).Value = ""
ThisWorkbook.Worksheets("Senso").Cells(i2 + 2, 2).Font.Color = RGB(0, 0, 0)
ThisWorkbook.Worksheets("Senso").Cells(i2 + 2, 2).Interior.Color = 12632256
ThisWorkbook.Worksheets("Senso").Cells(i2 + 2, 3).Interior.ColorIndex = 15
Next i2
ThisWorkbook.Worksheets("Senso").Cells(4, .Value = "nn"
End Sub

Private Sub CommandButton10_Click()
End
End Sub

Private Sub CommandButton11_Click()
For i = 0 To 56
ThisWorkbook.Worksheets("Senso").Cells(40, 1).Interior.ColorIndex = i
Call MsgBox("Colorindex=" + Str(i), vbOKOnly)
Next i
End Sub

Private Sub CommandButton1_Click()
Call Einsetzen_und_Prüfe(1)
End Sub

Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Einsetzen_und_Prüfe(1)
End Sub

Private Sub CommandButton2_Click()
Call Einsetzen_und_Prüfe(2)
End Sub

Private Sub CommandButton2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Einsetzen_und_Prüfe(2)
End Sub

Private Sub CommandButton3_Click()
Call Einsetzen_und_Prüfe(3)
End Sub

Private Sub CommandButton3_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Einsetzen_und_Prüfe(3)
End Sub

Private Sub CommandButton4_Click()
Call Einsetzen_und_Prüfe(4)
End Sub

Private Sub CommandButton4_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Einsetzen_und_Prüfe(4)
End Sub

Private Sub CommandButton5_Click()
Call Einsetzen_und_Prüfe(5)
End Sub

Private Sub CommandButton5_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Einsetzen_und_Prüfe(5)
End Sub

Private Sub CommandButton6_Click()
Call Einsetzen_und_Prüfe(6)
End Sub

Private Sub CommandButton6_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Einsetzen_und_Prüfe(6)
End Sub

Private Sub CommandButton7_Click()
Call Einsetzen_und_Prüfe(7)
End Sub

Private Sub CommandButton7_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Einsetzen_und_Prüfe(7)
End Sub

Private Sub CommandButton8_Click()
Call Einsetzen_und_Prüfe(
End Sub

Private Sub CommandButton8_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Einsetzen_und_Prüfe(
End Sub

Private Sub CommandButton9_Click()
Call Einsetzen_und_Prüfe(9)
End Sub

Private Sub CommandButton9_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Einsetzen_und_Prüfe(9)
End Sub

Private Sub CommandButtonReset_Click()
Call Auto_Open
End Sub

Private Sub CommandButtonStart_Click()
If k > 0 Then
GoTo Weiter
End If

'UserForm1.Show besser mit TextBox

Dim Mldg, Titel, Voreinstellung, Wert1
Mldg = "Bitte vor dem Spiel noch den Namen eingeben ..."
Titel = "Name"
Voreinstellung = ThisWorkbook.Worksheets("Senso").Cells(4,
' Meldung, Titel und Standardwert anzeigen.
Wert1 = InputBox(Mldg, Titel, Voreinstellung)
If Wert1 = "" Then
End
End If


Call Wait_A_Minute(1)
Call Auto_Open

For i = 1 To 9
Call ButtonBlack(i)
Next i

Call Wait_A_Minute(1)

For i = 1 To iMax
iZufall(i) = Int((Rnd * 9) + 1)
' TEST If i < 5 Then iZufall(i) = 2
ThisWorkbook.Worksheets("Zufall").Cells(i, 1).Value = iZufall(i)
Next i

For i = 1 To 9
Call ButtonColor(i)
Next i

Call Wait_A_Minute(1)

'UserForm1.Show
'Call Wait_A_Minute(1)

Weiter:
k = k + 1
Call Game_Play
DoEvents

End Sub

Private Sub Game_Play()
' For j = 1 To k
' ThisWorkbook.Worksheets("Senso").Cells(5 + j, 2).Interior.ColorIndex = 5
' Next j

For j = 1 To k
Call ButtonBlack(iZufall(j))
ThisWorkbook.Worksheets("Senso").Cells(5 + j, 2).Interior.ColorIndex = 16
DoEvents
Call Wait_A_Minute(sPauseKlein)

Call ButtonColor(iZufall(j))
DoEvents
Call Wait_A_Minute(sPauseKlein)
Next j

l = 0
' Call Wait_A_Minute(sPauseGross)


End Sub

Private Sub Einsetzen_und_Prüfe(Ziffer As Integer)
l = l + 1
ThisWorkbook.Worksheets("Senso").Cells(5 + l, 2).Interior.ColorIndex = 4

'ThisWorkbook.Worksheets("Senso").Cells(40, 1).Value = l
'ThisWorkbook.Worksheets("Senso").Cells(40, 2).Value = k

ThisWorkbook.Worksheets("Zufall").Cells(l, 2).Value = Ziffer
If ThisWorkbook.Worksheets("Zufall").Cells(l, 1).Value <> _
ThisWorkbook.Worksheets("Zufall").Cells(l, 2).Value Then

ThisWorkbook.Worksheets("Senso").Cells(3, 1).Value = "Zufalls-"
ThisWorkbook.Worksheets("Senso").Cells(4, 1).Value = "zahlen"
ThisWorkbook.Worksheets("Senso").Cells(3, 2).Value = "Ihre"
ThisWorkbook.Worksheets("Senso").Cells(4, 2).Value = "Zahlen"

For i2 = 1 To k
ThisWorkbook.Worksheets("Senso").Cells(i2 + 5, 1).Value = ThisWorkbook.Worksheets("Zufall").Cells(i2, 1).Value
ThisWorkbook.Worksheets("Senso").Cells(i2 + 5, 2).Value = ThisWorkbook.Worksheets("Zufall").Cells(i2, 2).Value
Next i2
ThisWorkbook.Worksheets("Senso").Cells(l + 5, 2).Value = Ziffer
ThisWorkbook.Worksheets("Senso").Cells(l + 5, 2).Font.Color = RGB(255, 255, 255)
ThisWorkbook.Worksheets("Senso").Cells(l + 5, 2).Interior.Color = RGB(255, 0, 0)

Call MsgBox(" * * * F E H L E R * * * " + Chr$(10) + Chr$(13) + Chr$(10) + Chr$(13) + _
"Score:" + Str(k + (l / 100)), vbOKOnly)
Call HighScore(k, l)
End
End If

DoEvents
If l = k Then
DoEvents
ThisWorkbook.Worksheets("Senso").Cells(1, 1).Select
Call Wait_A_Minute(sPauseGross)
Call CommandButtonStart_Click
End If
End Sub

Private Sub HighScore(ByVal a, b)
Dim gHighScoreTemp, gHighScore As Single

gHighScoreTemp = a + b / 100
For i = 3 To 12
gHighScore = ThisWorkbook.Worksheets("Senso").Cells(i, 13).Value

If gHighScoreTemp > gHighScore Then
If i = 3 Then
Call MsgBox("Der alte Highscore lag bei" + Str(gHighScore) + Chr$(10) + Chr$(13) + Chr$(10) + Chr$(13) + _
"Ihr neuer Highscore liegt bei" + Str(gHighScoreTemp), vbOKOnly, "Neuer Highscore ***")
Else
Call MsgBox("Ein alter Score lag bei" + Str(gHighScore) + Chr$(10) + Chr$(13) + Chr$(10) + Chr$(13) + _
"Ihr neuer Score liegt bei" + Str(gHighScoreTemp), vbOKOnly, "Neuer Score!")
End If
For j = 12 To i + 1 Step -1
ThisWorkbook.Worksheets("Senso").Cells(j, 11).Value = ThisWorkbook.Worksheets("Senso").Cells(j - 1, 11).Value
ThisWorkbook.Worksheets("Senso").Cells(j, 12).Value = ThisWorkbook.Worksheets("Senso").Cells(j - 1, 12).Value
ThisWorkbook.Worksheets("Senso").Cells(j, 13).Value = ThisWorkbook.Worksheets("Senso").Cells(j - 1, 13).Value
Next j
ThisWorkbook.Worksheets("Senso").Cells(i, 11).Value = ""
ThisWorkbook.Worksheets("Senso").Cells(i, 12).Value = Date
ThisWorkbook.Worksheets("Senso").Cells(i, 13).Value = gHighScoreTemp
ThisWorkbook.Worksheets("Senso").Cells(i, 11).Value = ThisWorkbook.Worksheets("Senso").Cells(4, .Value
Exit Sub
End If
Next i
End Sub

Private Sub ButtonBlack(ByVal index As Integer)
Select Case index
Case 1
CommandButton1.ForeColor = RGB(255, 255, 255)
CommandButton1.BackColor = RGB(0, 0, 0)
Case 2
CommandButton2.ForeColor = RGB(255, 255, 255)
CommandButton2.BackColor = RGB(0, 0, 0)
Case 3
CommandButton3.ForeColor = RGB(255, 255, 255)
CommandButton3.BackColor = RGB(0, 0, 0)
Case 4
CommandButton4.ForeColor = RGB(255, 255, 255)
CommandButton4.BackColor = RGB(0, 0, 0)
Case 5
CommandButton5.ForeColor = RGB(255, 255, 255)
CommandButton5.BackColor = RGB(0, 0, 0)
Case 6
CommandButton6.ForeColor = RGB(255, 255, 255)
CommandButton6.BackColor = RGB(0, 0, 0)
Case 7
CommandButton7.ForeColor = RGB(255, 255, 255)
CommandButton7.BackColor = RGB(0, 0, 0)
Case 8
CommandButton8.ForeColor = RGB(255, 255, 255)
CommandButton8.BackColor = RGB(0, 0, 0)
Case 9
CommandButton9.ForeColor = RGB(255, 255, 255)
CommandButton9.BackColor = RGB(0, 0, 0)
Case Else
End Select
End Sub

Private Sub ButtonColor(ByVal index As Integer)

Select Case index
Case 1
CommandButton1.ForeColor = RGB(0, 0, 0)
CommandButton1.BackColor = RGB(iFarbe_R(index), iFarbe_G(index), iFarbe_B(index))
Case 2
CommandButton2.ForeColor = RGB(0, 0, 0)
CommandButton2.BackColor = RGB(iFarbe_R(index), iFarbe_G(index), iFarbe_B(index))
Case 3
CommandButton3.ForeColor = RGB(0, 0, 0)
CommandButton3.BackColor = RGB(iFarbe_R(index), iFarbe_G(index), iFarbe_B(index))
Case 4
CommandButton4.ForeColor = RGB(0, 0, 0)
CommandButton4.BackColor = RGB(iFarbe_R(index), iFarbe_G(index), iFarbe_B(index))
Case 5
CommandButton5.ForeColor = RGB(0, 0, 0)
CommandButton5.BackColor = RGB(iFarbe_R(index), iFarbe_G(index), iFarbe_B(index))
Case 6
CommandButton6.ForeColor = RGB(0, 0, 0)
CommandButton6.BackColor = RGB(iFarbe_R(index), iFarbe_G(index), iFarbe_B(index))
Case 7
CommandButton7.ForeColor = RGB(0, 0, 0)
CommandButton7.BackColor = RGB(iFarbe_R(index), iFarbe_G(index), iFarbe_B(index))
Case 8
CommandButton8.ForeColor = RGB(0, 0, 0)
CommandButton8.BackColor = RGB(iFarbe_R(index), iFarbe_G(index), iFarbe_B(index))
Case 9
CommandButton9.ForeColor = RGB(0, 0, 0)
CommandButton9.BackColor = RGB(iFarbe_R(index), iFarbe_G(index), iFarbe_B(index))
Case Else
End Select
End Sub

Sub Wait_A_Minute(ByVal Sekunden As Single)
Dim Start, Ende

Start = Timer
Do While Timer < Start + Sekunden
DoEvents
Loop
End Sub
Haseron ist offline   Mit Zitat antworten