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

Funkcja bool w prostym zadaniu

Ostatnio zmodyfikowano 2017-01-06 17:16
Autor Wiadomość
wokub
Temat założony przez niniejszego użytkownika
» 2017-01-06 16:28:48
Pokombinowałem z kilkoma rzeczami
*zmieniając bool czyKoniec = false w mainie na jakieś koniec = czyKoniec()

C/C++
int main()
{
    bool koniec = czyKoniec();
    int zwyciezca = 0;
    logo();
    mapka();
   
    do
    {
        gracz();
        SI();
        mapka();
        wygrana( zwyciezca );
    } while( koniec != false );
   
    return 0;
}
*próbowałem zmienić main na to z ,,do"
C/C++
int main()
{
    bool czyKoniec = false;
    int zwyciezca = 0;
    logo();
    mapka();
   
    do
    {
        gracz();
        SI();
        mapka();
        wygrana( zwyciezca );
    } while( czyKoniec != false );
   
    return 0;
}
*dopisywałem return 0 lub 1 pod wygrana (zwyciezca);

I mam jeden rezultat. Za każdym razem wykonuje się jeden ruch gracz, jeden SI i po przycisku się wyłącza. Funkcja czyKoniec jest dobra, int main robiony po mojemu nie czyta funkcji, robione na podstawie tej lekcji wyłącza po jednej pętli... Chociaż przyznam jedno. Np. przy tym przykładzie w końcu czyta tą funkcję, bo wyświetla cout-a, którego dopisałem.
C/C++
int main()
{
    logo();
    mapka();
    bool koniec = czyKoniec();
    int zwyciezca = 0;
   
    do
    {
        gracz();
        SI();
        mapka();
        wygrana( zwyciezca );
    } while( koniec != false );
   
    return 0;
}
Ja już nie wiem. Z tego co zauważam, to false = 0 (co jest oczywiste), a przy każdym 0 wyłącza mi plik. Dlaczego więc na starcie mam mieć bool czyKoniec false (polecenie ćwiczeniowca), jeśli false z reguły wyłącza. Czy nie powinienem zaczynać od tego, że bool jest true/1 ?
P-156105
Gibas11
» 2017-01-06 16:31:54
bool koniec = czyKoniec();
Tu jednorazowo zapisujesz wynik wykonania funkcji
czyKoniec()
 a ty zdaje się chcesz wywoływać tą funkcję co obieg pętli, więc wstaw to zwyczajnie do warunku.
while( !czyKoniec() )
P-156106
wokub
Temat założony przez niniejszego użytkownika
» 2017-01-06 16:34:04
Działa :| Dzięki wielkie, chwała ci! Teraz wiem jak dokończyć resztę. Jakby ktoś kiedyś miał problem z czymś podobnym, ostateczna wersja maina była:

C/C++
int main()
{
    logo();
    mapka();
    int zwyciezca = 0;
   
    do
    {
        //if(czyRuchGracza)
        gracz();
        //else
        SI();
        mapka();
        wygrana( zwyciezca );
    } while( !czyKoniec() );
   
    return 0;
}
P-156107
czaffik
» 2017-01-06 16:34:32
Funkcja czyKoniec() się nie wczytuje bo jej tam nawet nie używasz, tworzysz zmienną która ma taką samą nazwę jak funkcja jednak egzystuje wewnątrz funkcji main, a funkcji wcale nie używasz
C/C++
int main()
{
    bool czyKoniec = false; <-- // niepotrzebna zmienna, nazwa taka sama
    // jak nazwa funkcji ale to nie znaczy że będzie
    // miała taką samą wartośc jak zwracana
    // przez funkcję czyKoniec
    int zwyciezca = 0;
    logo(); // mapka na starcie
    mapka(); //logo
   
    while( czyKoniec == false ) // to powinno wyglądać raczej tak: while (czyKoniec() == false)
    // lub while (!czyKoniec())
    {
        gracz(); // ruch gracza
        SI(); // ruch rand SI
        mapka(); //wyswietla aktualny stan
        wygrana( zwyciezca ); //regula na zwyciestwo SI lub gracza
    }
   
    return 0;
}
P-156108
wokub
Temat założony przez niniejszego użytkownika
» 2017-01-06 16:35:20
Zmyliło mnie w poleceniu ,,bool czyKoniec na starcie ma mieć wartość false".

A i mam jeszcze jedno pytanie, jak tak spojrzeć na tego maina, to jest możliwość, żeby wcisnąć tam system ("clear"), aby zostawała tylko jedna mapka widoczna, aktualna? Próbuję z tym się bawić, ale za każdym razem usuwa mi całość. Co prawda kiedys mialem to dobrze zrobione, z system cls, ale przesiadlem sie na linuxa i juz nie wiem co i jak
P-156109
Gibas11
» 2017-01-06 17:16:14
Czyść tuż przed narysowaniem nowej mapy.
P-156113
1 « 2 »
Poprzednia strona Strona 2 z 2