Witam, czy jest ktoś w posiadaniu kodu lub wiedzy jak taki kod stworzyć który zapisywał by w pliku nick oraz wynik gracza, a po wybraniu w menu, wyniki pokazywały by się w formie rankingu tj. najlepszy wynik na górze, najgorszy na dole itd.?
Ogólnie z samymi wynikami jakiś to wielki problem nie jest, ale dopasowanie do tego nazw powoduje ból głowy u całej grupy :)
Gierka konsolowa na projekt :)
- Rejestracja:ponad 6 lat
- Ostatnio:około 5 lat
- Postów:9

- Rejestracja:około 19 lat
- Ostatnio:3 dni
- Lokalizacja:Warszawa
- Postów:1454
Paaanie, możliwości ci od groma...możesz użyć formatu .json:
[
{
"nick" : "ksywa gracza1",
"result" : wynik1
},
{
"nick" : "ksywa gracza2",
"result" : wynik2
}
]
albo xmla:
<playerData>
<nick>ksywa gracza 1</nick>
<result>wynik1</result>
</playerData>
<playerData>
<nick>ksywa gracza 2</nick>
<result>wynik2</result>
</playerData>
albo zwykły plik tekstowy gdzie w każdej następnej linii będą wpisy:
nick gracza 1
wynik gracza 1
nick gracza 2
wynik gracza 2
Wczytujecie sobie te dane do wektora struktur {nick, result}, po czym robicie sortowanie po polu result, i voila, macie dane gotowe do wyświetlenia
- Rejestracja:ponad 6 lat
- Ostatnio:około 5 lat
- Postów:9
Dziekuje za odpowiedz, mimo to chciałbym dopytać w jednej kwestii. Jak widać w pliku tekstowym dałeś wynik poniżej nazwy gracza. Co w wypadku gdy plik tekstowy wygląda tak?
nick wynik
nick2 wynik2
nick3 wynik3
Czyli wynik i nick są w jednej linijce?

- Rejestracja:prawie 14 lat
- Ostatnio:prawie 3 lata
- Postów:4882
to wczytujesz stringa jako linie i robisz na nim split.
Pierwszy element to nick
Drugi element to wynik
https://www.google.com/search?client=firefox-b-d&ei=Tc34XPSkIZLZwQKkk43QBQ&q=read+line+from+file+c%2B%2B&oq=read+line+from+file+c%2B%2B&gs_l=psy-ab.3..0i203l2j0i22i30l8.6800.12699..12877...1.0..0.152.2094.13j11......0....1..gws-wiz.......0i71j35i39j0i67j0j0i19j0i22i30i19j0i13i30i19j0i13i30.kNTVB_aPVbs
https://www.google.com/search?client=firefox-b-d&q=split+string+c%2B%2B

- Rejestracja:około 19 lat
- Ostatnio:3 dni
- Lokalizacja:Warszawa
- Postów:1454
Dewytr napisał(a):
Dziekuje za odpowiedz, mimo to chciałbym dopytać w jednej kwestii. Jak widać w pliku tekstowym dałeś wynik poniżej nazwy gracza. Co w wypadku gdy plik tekstowy wygląda tak?
nick wynik nick2 wynik2 nick3 wynik3
Czyli wynik i nick są w jednej linijce?
Tak też może być, ale w takim wypadku albo trzeba by dać obostrzenie, że w ksywie gracza nie może być spacji, bo inaczej położysz się na wpisie:
Pirat Barnaba 1000
albo dać split po spacji, i ostatni element z listy traktować jako wynik, natomiast z wcześniejszych części odbudować ksywę poprzez dostawianie wyciętych spacji, albo użyć separatora, np:
nick : wynik
wtedy oczywiście : nie może wystąpić ani w ksywie, ani w wyniku.

- Rejestracja:ponad 11 lat
- Ostatnio:ponad rok
- Postów:1340
MasterBLB napisał(a):
albo dać split po spacji, i ostatni element z listy traktować jako wynik, natomiast z wcześniejszych części odbudować ksywę poprzez dostawianie wyciętych spacji,
Albo wczytać całą linię i wyszukać ostatnie wystąpienie spacji. Wtedy wszystko przed jest ksywą a wszystko po jest osiągniętym wynikiem.
auto pos = buffer.rfind(' ');
string nick = buffer.substr(0, pos++);
int result = stoi(buffer.substr(pos, buffer.length() - pos));

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
fasadin