dbLounge
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
REM Projekt: Highscores
REM erstellt: 01.04.2005 00:42:22
REM
REM ***** Haupt-Quelldatei *****
REM

rem ein array für die namen auf der liste
Dim Name$(10)
rem ein array für die Punkte der leute mit index 10 weil 10 leute auf
rem die lsite sollen
Dim Punkte#(10)
rem einmal ein array mit den Punkten nur als string damit man
rem die punkte aus der datei lesen kann
Dim Punkte$(10)
rem Array wo die neue Punktzahl, wenns jemand auf die liste schafft
rem rein geschrieben wird. Denn die Punkte verschieben sich dann ja
Dim Punkteneu#(10)
rem Array für die neuen namen....
Dim Nameneu$(10)

rem Die alte Highscore liste einlesen
rem Die Datei muss schon existieren. notfalls vorher erstelln.
open to read 1,"Highscore.txt"
rem Die Namen der Highscoreplatzbeleger und deren Punkt zahl in die
rem entsprechenden arrays laden
for x= 1 to 10
 read string 1,name$(x)
 read string 1,Punkte$(x) : Punkte#(x)= val(Punkte$(x))
next x
rem und nicht vergessen das file wieder zu schließen
close file 1

rem einmal die liste anzeigen (muss im spiel natürlich nicht
rem gemacht werden
for x= 1 to 10
 print name$(x)+"      "+str$(punkte#(x))
next x
rem und auf tasten druck warten
wait key

rem Nur zum testen hier punkte und name eingeben
rem wird im spiel dann natürlcih durch die Punktevariable ersetzt
input "Punkte: ",punkte
input "Name: ",Name$

rem testen ob die Punktzahl größer is als eine in dem array der
rem alten highscore
for z= 1 to 10
 rem wenn ja dann neu eintragen
 if punkte>punkte#(z)
  gosub neutrag
 endif
next z

rem wenn nein dann halt nicht eintragen
gosub kein_neutrag

neutrag:
rem hier die Punkte die nicht verschoben werden müssen, also alles vor
rem der neuen Punktzahl, ins Punkteneu() array übertragen, auch die
rem namen ins neue array. z ist die variable von vorher, die stelle wo
rem die neue punktzahl eingetragen werden muss
for a=1 to z-1
 Punkteneu#(a)=Punkte#(a)
 Nameneu$(a)=Name$(a)
next a

rem hier jetzt alles was verschoben werden muss um eins nach hinten
rem kopieren. z ist die variable von vorher, die stelle wo
rem die neue punktzahl eingetragen werden muss
for b=z+1 to 10
 Punkteneu#(b)=Punkte#(b-1)
 Nameneu$(b)=Name$(b-1)
next b

rem und natürlich noch die neue punktzahl + name ins array schreiben
punkteneu#(z)=punkte
Nameneu$(z)=Name$

rem hier wird die neue Highscore liste noch ins file geschrieben
if file exist("Highscore.txt")=1 then delete file "Highscore.txt"
open to write 1,"Highscore.txt"
 for c= 1 to 10
  write string 1,Nameneu$(c)
  write string 1,str$(punkteneu#(c))
 next c
close file 1

rem wie es weiter geht wenn man es nicht auf die liste geschafft hat....
kein_neutrag: