Gå til innhold

3Demon - fra 1983 til 2006


Anbefalte innlegg

Videoannonse
Annonse

Lagde en Top 5-liste sammen med en snake-klone. VB6 tough, men jeg anntar man kan få noe ut av det.

 

Option Explicit

 

    Type Score

        Score As Long

        Name As String

    End Type

Dim Scores(4) As Score

 

Public Quit As Boolean

 

Public Function LoadScore() As Boolean

On Error GoTo err

    Dim Lines As String, Line() As String, i As Integer, Score() As String

    Open App.Path & "\score" For Input As #1

        Line Input #1, Lines

    Close #1

   

    Lines = CryptText(Lines)

    Line = Split(Lines, ";")

   

    For i = 0 To UBound(Line)

        Score = Split(Line(i), "||")

        Scores(i).Name = Score(0)

        Scores(i).Score = Score(1)

    Next i

   

    LoadScore = True

   

    Exit Function

err:

    LoadScore = False

End Function

 

Public Sub CheckForHighScore(Score As Long)

    Dim i As Integer, u As Integer

    For i = 0 To 4

        If Score > Scores(i).Score Then

            For u = 4 To i + 1 Step -1

                Scores(u).Name = Scores(u - 1).Name

                Scores(u).Score = Scores(u - 1).Score

            Next u

            Scores(i).Name = InputBox("New highscore! Please write your name.", "Highscore")

            Scores(i).Score = Score

            SaveScores

            Exit Sub

        End If

    Next i

End Sub

 

Private Sub SaveScores()

    Dim i As Integer, buff As String

    For i = 0 To 4

        If i = 0 Then

            buff = Scores(i).Name & "||" & Scores(i).Score

        Else

            buff = buff & ";" & Scores(i).Name & "||" & Scores(i).Score

        End If

    Next i

    Open App.Path & "\score" For Output As #1

        Print #1, CryptText(buff)

    Close #1

End Sub

 

Public Function CryptText(Text As String) As String

    Dim Crypt As String, i As Integer

    For i = 0 To Len(Text) - 1

        Crypt = Crypt & Chr((Asc(Mid(Text, i + 1, 1)) Xor 1))

    Next i

    CryptText = Crypt

End Function

Syntax blir da:

JBA||5400;JBA||5200;||4500;JBA||4400;JBA||3000

KC@}}4511:KC@}}4311:}}5411:KC@}}5511:KC@}}2111

Anngående krypteringsmetoden, den er enkel, og det er egentlig meningen å bruke "Xor i", istedenfor 1, men jeg fikk det ikke helt til å fungere helt skikkelig.

Endret av Jonas
Lenke til kommentar
I utgangspunktet hadde jeg tenkt å bare legge topscore lista på nettet så slapp jeg hele problemet, men det er kanskje en god idé å "kryptere" hele greia uansett.

7377502[/snapback]

Noe form for kryptering er hvertfall nødvendig, ellers kan man jo bare snappe opp alt sammen, med programmer slikt som f.eks. Ethereal. Vanlig HTTP-post, ofte brukt, er utrolig simpelt og det tar ikke mange sekkunder før man kan skrive inn sin egen score.

Lenke til kommentar

Så er da også spillet laget for hyggelige folk, og ikke idioter... :p

 

Jeg tar poenget ditt og ser at det er gyldig, men hvis folk jobber såpass mye med å jukse, så tar det heller ikke lange tiden før de knuser den algoritmen for kryptering heller.

 

Kanskje ha en kryptert forbindelse med en SQL-serverer eller noe slikt da?

Lenke til kommentar

Kryptering er _dritenkelt_ i .NET

System.Security.Cryptography.CryptoStream + System.Net.Sockets.NetworkStream

 

Et voila!

 

Jeg pleier å fleske til med en System.IO.Compression.GZipStream også, men det er meg da.

 

Edit: kanskje jeg kan lage en ny splash-screen?

Endret av GeirGrusom
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...