Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Save High Score!!! (simple and has full explanation)
Index -> Programming, Turing -> Turing Tutorials
View previous topic Printable versionDownload TopicRate TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
xHoly-Divinity




PostPosted: Thu Jan 20, 2005 8:36 pm   Post subject: Save High Score!!! (simple and has full explanation)

I've done some experimenting, and have finally figured out an efficient, non confusing way to save high score (or any other info). You must create a text document in the folder of where your program is located called Highscore.txt. When you create it, type in any number value just so that it has a value (you should type in 0 because technically the high score at this time is 0), then save the .txt file. Here's the code!


Turing:

var check : array 1 .. 1 of int
            %Assigns pathName to 'Highscore.txt'
            const pathName : string := "Highscore.txt"
            var f : int
            %Opens the file to check the old high score
            open : f, pathName, get
            get : f, check (1)
            %Closes the text file
            close : f
            %Checks to see if the new score is higher than the old score
            if score > check (1) then
                %If it is, it will open the file and save the new high score
                open : f, pathName, put
                put : f, score
                close : f
            end if
            %This procedure (same as above) opens 'Highscore.txt'
            var one : int
            var sss : array 1 .. 1 of int
            open : one, "Highscore.txt", get
            get : one, sss (1)
            put "                              HIGH SCORE: ", sss (1)
Sponsor
Sponsor
Sponsor
sponsor
Tony




PostPosted: Thu Jan 20, 2005 9:20 pm   Post subject: (No subject)

alright, that's good.. a bit confused about why you're using static arrays of size 1 though Confused

+20Bits for trying though. Try to modify the code a bit to make the file keep track of top 10 highscores and names... shouldn't be that hard Smile
xHoly-Divinity




PostPosted: Wed Feb 23, 2005 6:28 pm   Post subject: (No subject)

Quote:

Try to modify the code a bit to make the file keep track of top 10 highscores and names... shouldn't be that hard


Hey tony, I'm running into a few problems with this. In order to save top 10 i would have to compare every single saved score with the score that was earned. Then I would have to place it in the appropriate placing requiring another couple of if statements. Any simpler way of doing this!?
jamonathin




PostPosted: Wed Feb 23, 2005 8:50 pm   Post subject: (No subject)

I first got the idea from a previous post that briefly explained a open, put and get, so I just put everything together and got this . .

You first need to start with a default base:
code:

%Just so we have a base to work with
var streamout : int
var names : array 1 .. 10 of string
var score : array 1 .. 10 of int % Juss so you don't have to use strint
open : streamout, "top10", put
for i : 1 .. 10
    names (i) := "New001"
    put : streamout, names (i)
    score (i) := 1
    put : streamout, score (i)
end for
close : streamout


Now here's the actual "top10" part, it calculates the position of the newscore and what not.
code:

%Now we can edit the base record
var names : array 1 .. 10 of string
var score : array 1 .. 10 of int
var newname : string := "Dudeman" %Whatever the name is
var newscore : int := 48 % whatever the score is
var streamin, streamout : int
open : streamin, "top10", get
for i : 1 .. 10
    get : streamin, names (i)
    get : streamin, score (i)
    locate (i, 1)
    put names (i), " - ", score (i) %Displaying original Top10
end for
close : streamin
for decreasing i : 10 .. 2
    if newscore > score (i) and newscore <= score (i - 1) then
        for decreasing q : 10 .. i
            score (q) := score (q - 1)
            names (q) := names (q - 1)
        end for
        score (i) := newscore
        names (i) := newname
    elsif newscore > score (1) and i = 2 then
        for decreasing q : 10 .. 2
            score (q) := score (q - 1)
            names (q) := names (q - 1)
        end for
        score (1) := newscore
        names (1) := newname
    end if
end for
open : streamout, "top10", put
for i : 1 .. 10
    put : streamout, names (i)
    put : streamout, score (i)
    locate (i, 1) %Displaying new Top10
    put i, ". ", names (i)
    locate (i, 15)
    put " - ", score (i)
end for
close : streamout


Well I hope i copy and pasted everything correctly, and i hope it works for yas Confused .
HyperFlexed




PostPosted: Wed Feb 23, 2005 10:06 pm   Post subject: (No subject)

xHoly-Divinity wrote:
Quote:

Try to modify the code a bit to make the file keep track of top 10 highscores and names... shouldn't be that hard


Hey tony, I'm running into a few problems with this. In order to save top 10 i would have to compare every single saved score with the score that was earned. Then I would have to place it in the appropriate placing requiring another couple of if statements. Any simpler way of doing this!?


look up the bubble sort. If that fails, I will be posting the source to my final project soon and an example is in there.
xHoly-Divinity




PostPosted: Thu Feb 24, 2005 4:08 pm   Post subject: (No subject)

Thanks man Smile
Display posts from previous:   
   Index -> Programming, Turing -> Turing Tutorials
View previous topic Tell A FriendPrintable versionDownload TopicRate TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 6 Posts ]
Jump to:   


Style:  
Search: