Skocz do zawartości
Opublikowano

image.png.a144663d4007d16872d3413c4a1a8bf3.png

 

Cześć wszystkim,

 

Chciałbym podzielić się z wami pewną aktualizacją, którą wprowadziłem w systemie małżeństwa. Dotyczy ona funkcji Update w klasie TMarriage, odpowiedzialnej za zarządzanie punktami miłości (love_point). W oryginalnej wersji, mieliśmy do czynienia z potencjalnym problemem przepełnienia. Zmienna love_point była typu DWORD, co oznacza maksymalny zakres wartości na poziomie około 4,29 miliarda. W sytuacji, gdy dodawane punkty przekraczały ten limit, mogło dochodzić do błędnych wyników. Aby zapobiec tej sytuacji, wykorzystano funkcję MIN, ograniczając maksymalną wartość love_point do 2 miliardów. Niestety, było to rozwiązanie dalekie od idealnego, ponieważ mogło prowadzić do utraty punktów, które przekraczały ten limit.

 

Wprowadzone zmiany:

  • Zmieniłem typ zmiennej z DWORD na uint64_t dla totalLovePoints to znacznie zwiększa zakres wartości i eliminuje ryzyko przepełnienia.
  • Zastąpiłem funkcję MIN funkcją std::clamp - dzięki temu wartość love_point jest bezpiecznie ograniczana do prawidłowego zakresu, bez ryzyka utraty punktów.
  • Zoptymalizowałem kod, dodałem warunki wczesnego zakończenia funkcji i użyłem pętli for do iteracji po identyfikatorach graczy, co poprawia wydajność kodu.
  • Zaktualizowałem nazwy zmiennych i argumentów dla lepszego zrozumienia kodu (możesz to pominąć). 

 

Wymagane:

 

Implementacja:

📂 Lokalizacja pliku: 'common -> length.h'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj:

🔐 Ukryta Treść 🔐

 

 

📂 Lokalizacja pliku: 'game -> marriage.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj:

🔐 Ukryta Treść 🔐

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

 

📂 Lokalizacja pliku: 'game -> marriage.h'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

Featured Replies

Opublikowano

Teraz ślub z szamanką będzie o wiele lepszy!

-- Kupie garnitur

Opublikowano

Bardzo dobrze zrobiona robota szefie

image.png.e9219bb079f6d075082048b6abb850cf.png

Opublikowano

Uratowałeś wiele metinowych małżeństw 👰

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...