Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Skayfer

Gra "Walka bokserów" - algorytm

Rekomendowane odpowiedzi

Witam

 

Piszę właśnie program w c++,tak jak w tytule gra "walka bokserów". Mam problem z algorytmem walki. W Założeniach ma byc 12 rund, przy czym walka może zostaćprzerwana jeżeli parametr wytrzymałość jednego z bokserów spadnie do 0.

 

Oto kod

http://pastebin.com/M8dyLwNv

 

Za wszelką pomoc będę bardzo wdzięczny.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie wiesz jak coś zrobić, czy coś nie działa? W każdym razie ta pętelka:

do
{
 ...
} while( W1 || W2 < 0 )

zatrzyma sie wtedy i tylko wtedy, gdy W1 == 0 i jednocześnie W2 >= 0.

Jeśli chciałbyś przerwać w momencie, gdy któraś ze zmiennych będzie <= 0, to bardziej pasowałoby coś w stylu ( W1 > 0 && W2 > 0 ).

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ogólnie to chodzi mi oto żeby program działał prawidłowo ;). Wiem, że jest tam jeszcze sporo błędów i dopiero powoli dochodzę gdzie się one znajdują i na czym polegają.

 

 

Dzięki za spostrzeżenie z tą pętlą. Jak zauważę jakiś konkretniejszy problem to się spytam.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Kolejna wersja mojego programiku http://pastebin.com/yg80VB6E

 

Dodałem pętlę dla rund od 2 do 12 i tu jest problem, bo program omija tą część programu (wykonuje się kod tylko dla pierwszej rundy).

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No to jest coś takiego jak debugger, który pozwala prześledzić działanie programu.

 

A jeśli chodzi o problem to może warto by sprawdzić warunki w tym forze czy oby na pewno pozwalają one na wykonanie instrukcji w pętli.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Właśnie tak myślałem, że może być coś na rzeczy z tymi warunkami. Albo w for, albo w if, ale kompletnie nie wiem gdzie dokładnie i na czym polega błąd.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie no, jak grochem o ścianę. Takie błędy szybko wyłapiesz za pomocą debuggera.

 

Ale pójdę nawet krok dalej. Skoro już wiesz że błąd jest w pętli, to może warto było by prześledzić jakie wartości mają zmienne z warunku pętli, otóż:

for (i = 2; i > 12 || W1 == 0 || W2 == 0; i++)

Mamy naszą pętle i na pierwszy rzut oka widać że pierwszy warunek tzn i>12 nie jest spełniony bo przecież nadajemy jej wartość początkową 2.

Teraz wystarczy się zastanowić czy jest szansa na to że po pierwszej rundzie któraś ze zmiennych W1 i W2 będzie miała wartość zero.

Tą zagadkę pozostawiam dla Ciebie. I na przyszłość trochę więcej własnej inicjatywy.

Dziękuje za uwagę. :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wydaje mi się, iż autor po prostu myślał, że środkowy składnik fora jest warunkiem przerywającym pętle.

( i>12 || W1==0 || W2==0 ) jest zaprzeczniem ( i<=12 && W1!=0 && W2!=0 ), czyli tego co sprawiłoby, że kod działałby tak jak (chyba) chciał tego autor. (chociaż biorąc pod uwagę to, że W1 i W2 chyba mogą spaść poniżej zera, lepiej byłoby po prostu sprawdzać czy są > 0)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Odpowiedzi

    • Dopiero teraz zauważyłem taką "perełkę". Mam nawet pewne podejrzenia kim jest ta osoba na forum ithardware, bo padają pewne słowa klucz(lewackie i jego odmiany) i używanie pewnych emotikonek ;). Tam pozwalają mu na razie "używać sobie". btw. widzieliście kto powrócił? Człowiek z nickiem zaczynającym się na "m", który tutaj był wielokrotnie banowany, aż dostał perm bana za multikonta i nie mówię o Odinie :D. Ładnie się też przywitał z nowym forum. Będzie się działo.
    • Jeszcze nie... pijem bawim się 🤧🍻
    • @Dresiq Ah, zawór upustowy blow-off! To jak mały duch mocy dla Twojego turbosprężonego autka. 🚗💨 Główna funkcja zaworu blow-off to kontrola ciśnienia doładowania w układzie dolotowym turbosprężarki. Kiedy zdejmujesz nogę z gazu, ciśnienie nadmiarowe musi się gdzieś podziać, a przecież nie chcemy, żeby wracało do łopatki sprężarki. Blow-off otwiera się, uwalniając powstałe ciśnienie i dając charakterystyczny efekt dźwiękowy „psshhh”, który wielu miłośników motoryzacji uwielbia. Praktycznie rzecz biorąc: 1. Chroni turbosprężarkę przed uszkodzeniem. 2. Redukuje turbo lag, pomagając turbosprężarce szybciej odzyskać moc po hamowaniu. 3. No i oczywiście – dodaje ten frywolny dźwięk, który sprawia, że czujesz się jak w scenie z filmu akcji. Oczywiście, to też atrakcyjne akustycznie gadżety, które mogą dodać trochę "blingu" Twojemu motoryzacyjnemu bestii! Jeśli masz jeszcze jakieś pytania albo chcesz pogadać o innych samochodowych gadżetach, śmiało pisz! 🚙
    • @PCLabGPT   Co daje zawór upustowy blow-off w samochodach ?
    • Nie wiem, czy będę miał taką potrzebę, ale pewnie się pojawię tyle że pod innym nickiem.
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...