Skocz do zawartości

Tabela wyników, zapisywanie do pliku ini, szyfrowanie metodą Xor


Rekomendowane odpowiedzi

Tabela wyników, zapisywanie do pliku ini, szyfrowanie metodą Xor

przykład dla początkujących

//jezeli użyjesz tego przykładu w grze dodaj mnie do credits i poinformuj na PW, dzieki

wykorzystuje artykuł:

Szyfrowanie tekstu metodą Xor by Gnysek

 

artykuł z którym powinieneś się zapoznać:

Warunki i pętle w GM by Tymon

 

GML (create)
/*----------------------------------------------------------------------------*/

/*------------------------wczytywanie rekordów z pliku------------------------*/

/*----------------------------------------------------------------------------*/

if !file_exists("rekordy.ini")

{

//jeżeli plik "rekordy.ini" nie istnieje to go tworzymy

//i wszystkie pozycje uzupełniamy jako 0 szyfrując metodą Xor

ini_open("rekordy.ini")

for(var i=0;i<=9;i+=1)

//każdy powinien wiedziać jak działa pentla for :)

{

ini_write_string("score",string(i),doXor(0))//zapisywanie punktów na pozycje "i"

ini_write_string("nick",string(i),doXor("------"))//zapisywanie nicku na pozycje "i"

//inicjowanie tablic dwuwymiarowych

rekord[0,i]=0//punkty

rekord[1,i]=""//nick

}

}

else

//jeżeli plik istnieje

{

ini_open("rekordy.ini")

//zapisujemy wszystkie rekordy z pliku do tablicy 2-wymiarowej

for(var i=0;i<=9;i+=1)

{

rekord[0,i]=real(doXor((ini_read_string("score",string(i),""))))

rekord[1,i]=doXor(ini_read_string("nick",string(i),""))

}

}

ini_close()//należy pamiętać o zamknięciu pliku ini</span></span>

GML (keyboard pressed space)
/*----------------------------------------------------------------------------*/

/*------------------------pobieranie aktualnych wyników-----------------------*/

/*----------------------------------------------------------------------------*/

nick=get_string("Jak mam cię wpisać do rejestru dłuzników?","Somebody")

score=get_integer("Oblicz "+string(random(20))+"+"+string(random(20))+"=","")

 

/*----------------------------------------------------------------------------*/

/*------------------------zapisywanie wyników do pliku------------------------*/

/*----------------------------------------------------------------------------*/

for(var i1=0;i1<=9;i1+=1)

//odliczanie od najwyższego wyniku w dół

{

if score>rekord[0,i1]//jeżeli nasz wynik jest większy niż wynik na pozycji "i1"

{

ini_open("rekordy.ini")

for(var i2=9;i2>=i1+1;i2-=1)

{

//przesówamy wszystkie wyniki w dół(od tego którego pobiliśmy do końca)

rekord[0,i2]=rekord[0,i2-1]

rekord[1,i2]=rekord[1,i2-1]

//zapisujemy przesunięcie do pliku

ini_write_string("score",string(i2),doXor(rekord[0,i2]))

ini_write_string("nick",string(i2),doXor(rekord[1,i2]))

}

//gdy wszystko przesunięte to zapisujemy nasz aktualny wynik

rekord[0,i1]=score

rekord[1,i1]=nick

ini_write_string("score",string(i1),doXor(rekord[0,i1]))

ini_write_string("nick",string(i1),doXor(rekord[1,i1]))

ini_close()

exit//kończymy pentle oraz kończy cały event

}

}

GML (draw)
//rysowanie tła

draw_set_alpha(0.4)

draw_set_color(c_black)

draw_rectangle(view_xview,view_yview,view_xview+view_wview,view_yview+view_hview,0)

//draw_set_font(font0)

draw_set_valign(fa_center)//wyśrodkowanie czcionki na osi Y

draw_set_alpha(1)

for(var i=0;i<=9;i+=1)

{

if i=0//1miejsce

draw_set_color(c_green)

else if i=1//2miejsce

draw_set_color(c_silver)

else if i=2//3miejsce

draw_set_color(c_orange)

else //inne miejsca

draw_set_color(c_dkgray)

//rysowanie kwadrata pod napisem

draw_rectangle(view_xview+10,view_yview+30+40*i-18,view_xview+view_wview,view_yview+30+40*i+18,0)

//rysowanie wyników

draw_set_color(c_white)

draw_set_halign(fa_left)//wyrównanie czcionki do lewej

draw_text(view_xview+20,view_yview+30+40*i,string(i+1))

draw_text(view_xview+50,view_yview+30+40*i,rekord[1,i])//nick

draw_set_halign(fa_right)//wyrównanie czcionki do prawej

draw_text(view_xview+view_wview-50,view_yview+30+40*i,rekord[0,i])//punkty

}

GML (skrypt doXor)
//skrypt by Gnysek

//https://gmclan.org/index.php?czytajart=58

var _klucz,i,_znaki,_len;

argument0 = string( argument0 );

_znaki = '';

_len = string_length( argument0 );

_klucz = 4321;//należy wpisać własny klucz

 

for ( i = 1; i <= _len; i += 1 )

{

_znaki += chr( ord( string_char_at( argument0, i ) ) ^ _klucz );

}

 

return _znaki;

download plik gm:s

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...