Dialog1.frm.VisualBasicSourceCode.c

00001 VERSION 5.00
00002 Begin VB.Form Dialog1 
00003    BorderStyle     =   3  'Fixed Dialog
00004    Caption         =   "TittyMemory Hiscore"
00005    ClientHeight    =   6225
00006    ClientLeft      =   2760
00007    ClientTop       =   3750
00008    ClientWidth     =   4410
00009    Icon            =   "Dialog1.frx":0000
00010    LinkTopic       =   "Form1"
00011    MaxButton       =   0   'False
00012    MinButton       =   0   'False
00013    ScaleHeight     =   6225
00014    ScaleWidth      =   4410
00015    ShowInTaskbar   =   0   'False
00016    StartUpPosition =   1  'CenterOwner
00017    Begin VB.TextBox Text1 
00018       BeginProperty Font 
00019          Name            =   "Courier New"
00020          Size            =   8.25
00021          Charset         =   0
00022          Weight          =   400
00023          Underline       =   0   'False
00024          Italic          =   0   'False
00025          Strikethrough   =   0   'False
00026       EndProperty
00027       Height          =   285
00028       Left            =   1440
00029       MaxLength       =   12
00030       TabIndex        =   1
00031       Top             =   5880
00032       Visible         =   0   'False
00033       Width           =   1455
00034    End
00035    Begin VB.CommandButton OKButton 
00036       Caption         =   "OK"
00037       Default         =   -1  'True
00038       BeginProperty Font 
00039          Name            =   "Courier New"
00040          Size            =   8.25
00041          Charset         =   0
00042          Weight          =   400
00043          Underline       =   0   'False
00044          Italic          =   0   'False
00045          Strikethrough   =   0   'False
00046       EndProperty
00047       Height          =   255
00048       Left            =   3120
00049       TabIndex        =   0
00050       Top             =   5880
00051       Width           =   1215
00052    End
00053    Begin VB.Label Label3 
00054       Caption         =   "Label3"
00055       BeginProperty Font 
00056          Name            =   "Courier New"
00057          Size            =   8.25
00058          Charset         =   0
00059          Weight          =   400
00060          Underline       =   0   'False
00061          Italic          =   0   'False
00062          Strikethrough   =   0   'False
00063       EndProperty
00064       Height          =   255
00065       Left            =   120
00066       TabIndex        =   4
00067       Top             =   5520
00068       Width           =   4095
00069    End
00070    Begin VB.Label Label2 
00071       Caption         =   "Enter name:"
00072       BeginProperty Font 
00073          Name            =   "Courier New"
00074          Size            =   8.25
00075          Charset         =   0
00076          Weight          =   400
00077          Underline       =   0   'False
00078          Italic          =   0   'False
00079          Strikethrough   =   0   'False
00080       EndProperty
00081       Height          =   255
00082       Left            =   120
00083       TabIndex        =   3
00084       Top             =   5880
00085       Visible         =   0   'False
00086       Width           =   1335
00087    End
00088    Begin VB.Label Label1 
00089       Caption         =   "Label1"
00090       BeginProperty Font 
00091          Name            =   "Courier New"
00092          Size            =   8.25
00093          Charset         =   0
00094          Weight          =   400
00095          Underline       =   0   'False
00096          Italic          =   0   'False
00097          Strikethrough   =   0   'False
00098       EndProperty
00099       Height          =   5295
00100       Left            =   120
00101       TabIndex        =   2
00102       Top             =   0
00103       Width           =   3375
00104    End
00105 End
00106 Attribute VB_Name = "Dialog1"
00107 Attribute VB_GlobalNameSpace = False
00108 Attribute VB_Creatable = False
00109 Attribute VB_PredeclaredId = True
00110 Attribute VB_Exposed = False
00111 
00112 Option Explicit
00113 
00114 Dim attempts As Long
00115 Dim elapsedTime As Long
00116 Dim insertPos As Long
00117 Dim section As Long
00118 Dim maxX As Long
00119 Dim maxY As Long
00120 
00121 '   4 x 4
00122 '   5 x 4
00123 '   6 x 4
00124 '   6 x 5
00125 '   6 x 6
00126 
00127 '   name    attempts    time
00128 '   1
00129 '   2
00130 '   3
00131 
00132 Dim hiscore(3, 15) As String
00133 
00134 Private Sub Form_Load()
00135     attempts = Form1.attempts
00136     elapsedTime = Form1.elapsedTime
00137     maxX = Form1.squareMaxX
00138     maxY = Form1.squareMaxY
00139     Label3.Caption = "You played: " & maxX & "x" & maxY & _
00140                      "   Att.: " & attempts & "   Time: " & _
00141                      elapsedTime
00142     loadHS
00143     checkHS
00144     displayHS
00145 End Sub
00146 
00147 Sub checkHS()
00148     insertPos = 99
00149     If (maxX = 4 And maxY = 4) Then
00150         section = 0
00151     ElseIf (maxX = 5 And maxY = 4) Then
00152         section = 1
00153     ElseIf (maxX = 6 And maxY = 4) Then
00154         section = 2
00155     ElseIf (maxX = 6 And maxY = 5) Then
00156         section = 3
00157     ElseIf (maxX = 6 And maxY = 6) Then
00158         section = 4
00159     End If
00160     If (attempts = hiscore(1, section * 3 + 2)) Then
00161         If (elapsedTime <= hiscore(2, section * 3 + 2)) Then
00162             insertPos = 2
00163         End If
00164     End If
00165     If (attempts < hiscore(1, section * 3 + 2)) Then
00166         insertPos = 2
00167     End If
00168     If (attempts = hiscore(1, section * 3 + 1)) Then
00169         If (elapsedTime <= hiscore(2, section * 3 + 1)) Then
00170             insertPos = 1
00171         End If
00172     End If
00173     If (attempts < hiscore(1, section * 3 + 1)) Then
00174         insertPos = 1
00175     End If
00176     If (attempts = hiscore(1, section * 3 + 0)) Then
00177         If (elapsedTime <= hiscore(2, section * 3 + 0)) Then
00178             insertPos = 0
00179         End If
00180     End If
00181     If (attempts < hiscore(1, section * 3 + 0)) Then
00182         insertPos = 0
00183     End If
00184     If (insertPos < 99) Then
00185         Me.Visible = True
00186         Text1.Visible = True
00187         Label2.Visible = True
00188         Text1.SetFocus
00189     End If
00190     If (insertPos = 2) Then
00191         hiscore(0, section * 3 + 2) = "** NEW ENTRY **"
00192         hiscore(1, section * 3 + 2) = attempts
00193         hiscore(2, section * 3 + 2) = elapsedTime
00194     End If
00195     If (insertPos = 1) Then
00196         hiscore(0, section * 3 + 2) = hiscore(0, section * 3 + 1)
00197         hiscore(1, section * 3 + 2) = hiscore(1, section * 3 + 1)
00198         hiscore(2, section * 3 + 2) = hiscore(2, section * 3 + 1)
00199         hiscore(0, section * 3 + 1) = "** NEW ENTRY **"
00200         hiscore(1, section * 3 + 1) = attempts
00201         hiscore(2, section * 3 + 1) = elapsedTime
00202     End If
00203         If (insertPos = 0) Then
00204         hiscore(0, section * 3 + 2) = hiscore(0, section * 3 + 1)
00205         hiscore(1, section * 3 + 2) = hiscore(1, section * 3 + 1)
00206         hiscore(2, section * 3 + 2) = hiscore(2, section * 3 + 1)
00207         hiscore(0, section * 3 + 1) = hiscore(0, section * 3 + 0)
00208         hiscore(1, section * 3 + 1) = hiscore(1, section * 3 + 0)
00209         hiscore(2, section * 3 + 1) = hiscore(2, section * 3 + 0)
00210         hiscore(0, section * 3 + 0) = "** NEW ENTRY **"
00211         hiscore(1, section * 3 + 0) = attempts
00212         hiscore(2, section * 3 + 0) = elapsedTime
00213     End If
00214 End Sub
00215 
00216 Sub displayHS()
00217     Dim y As Long
00218     Dim text As String
00219     For y = 0 To UBound(hiscore, 2) - 1
00220         If (y = 0) Then text = vbNewLine & text & "             4 x 4   Att.   Time" & vbNewLine
00221         If (y = 3) Then text = text & vbNewLine & "             5 x 4   Att.   Time" & vbNewLine
00222         If (y = 6) Then text = text & vbNewLine & "             6 x 4   Att.   Time" & vbNewLine
00223         If (y = 9) Then text = text & vbNewLine & "             6 x 5   Att.   Time" & vbNewLine
00224         If (y = 12) Then text = text & vbNewLine & "             6 x 6   Att.   Time" & vbNewLine
00225         text = text & (y Mod 3) + 1 & Format(hiscore(0, y), "@@@@@@@@@@@@@@@@") & "   " & _
00226                       Format(hiscore(1, y), "0000") & "   " & _
00227                       Format(hiscore(2, y), "0000") & vbNewLine
00228     Next y
00229     Label1.Caption = text
00230 End Sub
00231 
00232 Sub loadHS()
00233     On Error GoTo Hell
00234     Dim fNr As Long
00235     Dim fName As String
00236     Dim y As Long
00237     Dim inputName As String
00238     Dim inputAtt As String
00239     Dim inputTime As String
00240     fName = App.path & "\hiscore.dat"
00241     If (Dir(fName) = "") Then
00242         makeDefaultTable
00243         saveHS
00244         Exit Sub
00245     End If
00246     fNr = FreeFile
00247     Open fName For Input As #fNr
00248     For y = 0 To UBound(hiscore, 2) - 1
00249         Input #fNr, inputName, inputAtt, inputTime
00250         hiscore(0, y) = decodeStr(inputName, 1)
00251         hiscore(1, y) = decodeStr(inputAtt, 15)
00252         hiscore(2, y) = decodeStr(inputTime, 14)
00253     Next y
00254     Close #fNr
00255     Exit Sub
00256 Hell:
00257     MsgBox "Error loading file: 'hiscore.dat'", vbCritical, "TittyMemory"
00258 End Sub
00259 
00260 Function decodeStr(str As String, key As Long) As String
00261     Dim i As Long
00262     Dim c As Long
00263     Dim res As String
00264     For i = 1 To Len(str)
00265         c = Asc(Mid$(str, i, 1))
00266         c = c - key
00267         res = res & Chr(c)
00268     Next i
00269     decodeStr = res
00270 End Function
00271 
00272 Function encodeStr(str As String, key As Long) As String
00273     Dim i As Long
00274     Dim c As Long
00275     Dim res As String
00276     For i = 1 To Len(str)
00277         c = Asc(Mid$(str, i, 1))
00278         c = c + key
00279         res = res & Chr(c)
00280     Next i
00281     encodeStr = res
00282 End Function
00283 
00284 Sub saveHS()
00285     On Error GoTo Hell
00286     Dim fNr As Long
00287     Dim fName As String
00288     Dim y As Long
00289     Dim encodeName As String
00290     Dim encodeAtt As String
00291     Dim encodeTime As String
00292     fName = App.path & "\hiscore.dat"
00293     fNr = FreeFile
00294     Open fName For Output As #fNr
00295     For y = 0 To UBound(hiscore, 2) - 1
00296         encodeName = encodeStr(hiscore(0, y), 1)
00297         encodeAtt = encodeStr(hiscore(1, y), 15)
00298         encodeTime = encodeStr(hiscore(2, y), 14)
00299         Write #fNr, encodeName; encodeAtt; encodeTime
00300     Next y
00301     Close #fNr
00302     Exit Sub
00303 Hell:
00304     MsgBox "Error writing file: 'hiscore.dat'", vbCritical, "TittyMemory"
00305 End Sub
00306 
00307 Sub makeDefaultTable()
00308     hiscore(0, 0) = "Peter": hiscore(1, 0) = "30": hiscore(2, 0) = "44"
00309     hiscore(0, 1) = "Bob": hiscore(1, 1) = "32": hiscore(2, 1) = "56"
00310     hiscore(0, 2) = "Endrew": hiscore(1, 2) = "34": hiscore(2, 2) = "53"
00311     
00312     hiscore(0, 3) = "DonPhilippe": hiscore(1, 3) = "44": hiscore(2, 3) = "62"
00313     hiscore(0, 4) = "Klaus": hiscore(1, 4) = "52": hiscore(2, 4) = "67"
00314     hiscore(0, 5) = "Irmi": hiscore(1, 5) = "54": hiscore(2, 5) = "66"
00315     
00316     hiscore(0, 6) = "Boba Fet": hiscore(1, 6) = "62": hiscore(2, 6) = "86"
00317     hiscore(0, 7) = "Chewbacca": hiscore(1, 7) = "66": hiscore(2, 7) = "84"
00318     hiscore(0, 8) = "Pizza Mampf": hiscore(1, 8) = "70": hiscore(2, 8) = "97"
00319     
00320     hiscore(0, 9) = "Karl": hiscore(1, 9) = "74": hiscore(2, 9) = "99"
00321     hiscore(0, 10) = "Heinz": hiscore(1, 10) = "80": hiscore(2, 10) = "102"
00322     hiscore(0, 11) = "Rummenige": hiscore(1, 11) = "84": hiscore(2, 11) = "110"
00323     
00324     hiscore(0, 12) = "Meiling": hiscore(1, 12) = "90": hiscore(2, 12) = "140"
00325     hiscore(0, 13) = "Zedong": hiscore(1, 13) = "96": hiscore(2, 13) = "133"
00326     hiscore(0, 14) = "Jintao": hiscore(1, 14) = "100": hiscore(2, 14) = "154"
00327 End Sub
00328 
00329 Private Sub OKButton_Click()
00330     If (Text1.Visible) Then
00331         If (Text1.text = "") Then Text1.text = "Nobody"
00332         hiscore(0, section * 3 + insertPos) = Text1.text
00333         hiscore(1, section * 3 + insertPos) = attempts
00334         hiscore(2, section * 3 + insertPos) = elapsedTime
00335         saveHS
00336     End If
00337     Unload Me
00338     Form1.redraw
00339 End Sub
00340 
00341 Private Sub Text1_Change()
00342     hiscore(0, section * 3 + insertPos) = Text1.text
00343     If (Len(Text1.text) = 0) Then
00344         hiscore(0, section * 3 + insertPos) = "** NEW ENTRY **"
00345     End If
00346     displayHS
00347 End Sub

Generated on Sun Jan 6 16:43:10 2008 for TittyMemory by  doxygen 1.5.4