Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Adventure Text-based game - parę problemów w kodowaniu

Ostatnio zmodyfikowano 2016-11-28 20:20
Autor Wiadomość
siemieniaka
Temat założony przez niniejszego użytkownika
Adventure Text-based game - parę problemów w kodowaniu
» 2016-11-28 13:50:17
Witam. Jestem tutaj pierwszy raz, a także dopiero zaczynam uczyć się C++ (kończę pierwszy poziom kursu na tej stronie), ale zawsze byłem osobą, która teorie lubi przekuwać w praktykę już na samym początku nauki, więc zabrałem się za coś prostego z wykorzystaniem komend z pierwszego etapu, czyli biblioteki <iostream> oraz if...else. Napotkałem jednak parę problemów i błędów, które udało mi się przezwyciężyć googlowaniem i innymi takimi (szperanie na forach itd), aczkolwiek doszedłem do momentu kiedy po prostu nie wiem co zrobić, aby "wygładzić" swój projekt i nadać mu takiej "otoczki profesjonalizmu".

#include<iostream>
#include <string>

int main ()
{
    using namespace std;
    string zapalka;
    cout << "Stoisz w wielkim ciemny pokoju. W reku trzymasz kawalek PAPIERU, \n a w kieszeni spoczywa pudelko ZAPALEK. Co robisz?" << endl;
    getline(cin, zapalka);
    if ( zapalka == "podpalam papier")
        cout << "Pokoj rozswietla sie od plomieni palacej sie kartki.";
    else
        cout << "Pomysl przez chwile. To niekoniecznie prawidlowe wyjscie." << endl;
    cout << " \nKoniec" << endl;
    return 0;
}


Kod jak widać wcale nie jest długi, ponieważ staram się pisać na spokojnie i eliminować błędy na bieżąco przez co uczę się jak radzić sobie z pewnymi sytuacjami, które mam nadzieje będę mógł w przyszłości naprawić. Jakie są moje problemy z tym kodem? Wszystko działa poprawnie. Jeżeli użytkownik napisze "podpalam papier" gra idzie dalej, jeżeli nie wpisze tego czego wymagam, program wypisze linijkę alternatywną, aczkolwiek, jeżeli nacisnę Enter to program wypisze właśnie tę drugą linijkę i go zakończy (oczywiste, że zakończy), a tego nie chcę. Kiedyś pisałem to samo na drugim PC i w jakiś sposób ciągle kombinując udało mi się wyeliminować ten błąd, ale już nie pamiętam jakim cudem. Próbowałem też cin.clear i cin.sync, ale nic to nie daje. Chciałbym też poradzić się o to jak takowy program/gre po wpisaniu złej komendy i wyświetleniu alternatywnej linijki po prostu zrestartować do początku zamiast go zamykać. Ułatwi to granie, ale też testowanie błędów, które mogą się pojawić przy wpisywaniu kolejnych linijek kodu i dodawaniu nowych sytuacji w grze.

Dziękuję za otrzymaną pomoc :) I jeszcze raz witam się z wami :)
P-154210
DejaVu
» 2016-11-28 14:01:55
Napotkałem jednak parę problemów i błędów, które udało mi się przezwyciężyć googlowaniem i innymi takimi (szperanie na forach itd), aczkolwiek doszedłem do momentu kiedy po prostu nie wiem co zrobić, aby "wygładzić" swój projekt i nadać mu takiej "otoczki profesjonalizmu".
Profesjonalizm przy 10 liniach kodu...? :) Gdzie praktycznie nie ma kodu?
P-154211
michal11
» 2016-11-28 14:05:32
» Kurs C++ » Poziom 1Obsługa strumienia wejściowego lekcja

tu masz wszystkie potrzebne informacje.
P-154212
siemieniaka
Temat założony przez niniejszego użytkownika
» 2016-11-28 14:40:03
#include<iostream>
#include <string>
using namespace std;

int main ()
{
    string podpalam = "podpalam";
    string papier = "papier";
    cout << "Stoisz w wielkim ciemny pokoju. W reku trzymasz kawalek PAPIERU, \n a w kieszeni spoczywa pudelko ZAPALEK. Co robisz?" << endl;
    cin >> podpalam >> papier;
    if ( podpalam == "podpalam")
        cout << "Pokoj rozswietla sie od plomieni palacej sie kartki.";
    else
        cout << "Pomysl przez chwile. To niekoniecznie prawidlowe wyjscie." << endl;
    cout << " \nKoniec" << endl;
    return 0;
}

Zrobiłem to w taki sposób, ominąłem problem Entera oraz wymusiłem wpisanie dwóch stringów, aby poszło dalej, aczkolwiek tego drugiego nie potrafię umieścić w if. Próbowałem już różnych opcji typu

if (podpalam + papier = true) czy if (podpalam = "podpalam" + papier = "papier"), ale żadne z nich nie jest w stanie sprawdzić mi dwóch wyrazów i wykazuje błąd.
P-154213
Saran
» 2016-11-28 18:52:07
Prawdopodobnie chodzi ci o » Kurs C++ » Poziom 1Operacje logiczne lekcja


@2up jak taki ładny link wygenerowałeś?
P-154223
siemieniaka
Temat założony przez niniejszego użytkownika
» 2016-11-28 19:58:04
Już wszystko zrobiłem także dziękuję za pomoc.
P-154225
michal11
» 2016-11-28 20:20:22
@Saran » Kurs STC » ZaawansowaneOdsyłacze wewnętrzne lekcja i z paska adresu biorę numer tutoriala/artykułu/kursu, ale widzę, że już sam ogarnąłeś ;)
P-154226
« 1 »
  Strona 1 z 1