Wykonywanie kodu od określonego punktu

2011-09-16 15:37
gość
0

Wiecie jak zaimplementować do programu "funkcję" punktów kontrolnych?
w trakcie wykonywania od początku main'a użytkownik dostawałby za każdym jakimś blokiem kodu szyfr, którym, gdyby zaczynał od nowa użytkowanie programu, po jego wpisaniu kod zacząłby się wykonywać od określonego punktu.

rozumiecie mniej więcej?
gdybym miał kod o wiele mniej skomplikowany można by dać takie coś:

cin >> Szyfr;

if (Szyfr == "punkt1") {
          blok1();
          blok2();
          blok3();
          blok4();
}

if (Szyfr == "punkt2") {
          blok2();
          blok3();
          blok4();
}

if (Szyfr == "punkt3") {
          blok3();
          blok4();
}

if (Szyfr = "punkt4") {
          blok4();
}

else {
     //
}

ale u mnie to nie przejdzie. jakieś propozycje?

edytowany 1x, ostatnio: madmike, 2016-12-13 18:26

Pozostało 580 znaków

2011-09-16 15:50
0

ale u mnie to nie przejdzie. jakieś propozycje?

No oczywiście, przecież skoro to nie przechodzi to coś innego przejdzie.

Czy chodzi Ci o:
a)Niemożność implementacji danego rozwiązania z powodu Twojej głupoty.
b)Niemożność implementacji danego rozwiązania z powodu skompilkowanego programu.
c)Błędy których podanie jest oczywiście niemożliwe (Sic).

Głosować teraz.

EDIT: Bardzo ciekawa nazwa, ale odemnie nie spodziewaj się pomocy, nie pomagam anonymous'om.

EDIT#2: Payl poleca: Weź książke i ją przeczytaj, jak nie pomoże to weź drugą i też ją przeczytaj. I wtedy będziesz umiał rozwiązać takie odwieczne problemy informatyki, jak warunek IF, którego większość programistów boi się i nie zna.


Nie pisz do mnie PM o czymś co nie dotyczy bezpośrednio mnie. | Nie rozmawiaj ze mną jeśli brak Ci kultury (wystarczy że mi brakuje) | Nie jestem zły, jestem po prostu zły.
edytowany 4x, ostatnio: payl, 2011-09-16 16:13

Pozostało 580 znaków

2011-09-16 15:52
pribrov
0

a teraz, z nickiem, lepiej?

Zdecydowanie. Thx - payl 2011-09-16 16:00

Pozostało 580 znaków

2011-09-16 15:58
0

Robisz 4 funkcje jako 4 bloki i wywołujesz sobie zależnie od wyboru czy to swich-case, czy to delegatami :) To takie trudne?

switch na stringu? A to nie jest przypadkiem herezja? - payl 2011-09-16 16:07
Nie, chyba, że używamy C/C++. - hauleth 2011-09-16 16:14
W Delphi też nie można stosować switcha (a właściwie case) na stringach. no ten kod co ten na górze dał mi na C/C++ właśnie wygląda. Czyż nie? - payl 2011-09-16 16:15
Ogólnie w C się dało, ale nie działało to tak jak się wydawało. GCC ma rozszerzenie języka, które na to pozwala, a nie wiem czy przypadkiem C++11 nie wprowadza też tego. - hauleth 2011-09-16 16:26
Java SE w wersji 7 o ile się nie mylę wprowadza możliwość użycia String w instrukcji switch. - Mrowa 2011-09-16 16:34
A gdzie napisałem, że ma robić switch-case na stringu? :) - Madm4n 2011-09-19 10:09

Pozostało 580 znaków

2011-09-16 16:28
pribrov
0

tyle że ja nie mam go podzielonego na funkcje. czy maina trzeba aż tak rozdrabniać? nie da się tego inaczej?

Pozostało 580 znaków

2011-09-16 16:43
0

Napisz może po co Ci to jest potrzebne, bo może kombinujesz niepotrzebnie. Będzie łatwiej doradzić coś innego. Mi taka potrzeba szyfrów na zaczęcie programu od pewnego miejsca kojarzy się ze starym sposobem zapisu stanu gry, w sensie, że każdy poziom ma swój szyfr, dzięki któremu można od niego zacząć grę. Jeśli to to, to moim zdaniem zabierasz się od złej strony za to. Nie powinieneś takiego czegoś na twardo klepać ifami czy switchami w kodzie, tylko po prostu w funkcji wczytującej poziomy sprawdzać szyfr i ładować odpowiedni poziom. Jeżeli to nie to, to może chociaż jakiś pomysł Ci wpadł po przeczytaniu tego.

Edit:
Zauważyłem, że piszesz, że nie masz kodu rozdzielonego na funkcje. Hmmm, to może po prostu jak już masz tak skopany kod, to użyj goto. Choć sam nie wiem, czy Twój sposób organizacji kodu programu nie rzuca ci kłód pod nogi. Może warto zrefaktoryzować kod, niż brnąć w ten obłęd :)

edytowany 1x, ostatnio: Mrowa, 2011-09-16 16:45

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0