Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Pomoc-gra losujaca


Rekomendowane odpowiedzi

Opublikowano

Witam, uczę się programować i w jednym z kursów muszę zrobić grę, która ma działać następująco:
 
 
1. Program losuje liczbę z przedziału od 1 do 20. 

2. Użytkownik zgaduje liczbę, która została wylosowana. 
3. Jeżeli podana liczba jest za duża (za mała) gra wypisuje stosowny komunikat i powraca do kroku 2. 
4. Jeżeli gracz trafi liczbę wylosowaną to progam kończy działanie, wypisując na ekran wylosowaną liczbę oraz liczbę 'strzałów', które oddał gracz. 
Gra ma być zabezpieczona przed możliwością wprowadzenia błędnych wartości liczbowych.

 

Trochę się już z tym męczę i nie mogę tego ogarnąć. 

 

Na ten czas mam takie coś:

#include <iostream>
#include<conio.h>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
    
    srand( time( NULL ) );
     
     
    int liczba;
    int ile;
    
    cout<<"Jaka liczba";
    cin>>liczba;
    
    if (liczba==(rand()%20)+1){
                                cout<<"Zgadles "<<endl;
                                cout<<"Wylosowana liczba "<<(rand()%20)+1<<endl;
                                cout<<"Liczba prob: "<<ile<<endl;
                                }
                                
                                else {
                                     
                       do 
    {
    
    if (liczba>20||liczba<1)
    {
                              cout<<"Liczby musza sie znajdowac w przedziale od 1 do 1000";
                              
                              }
                              
                              else {
                                   cout<<"Podaj kolejna liczbe";
                                   cin>>liczba;
                                   ile++;
                                   
                                   }
                                   }
                                    while (liczba=(rand()%20)+1);
                                   }                       
    getch ();
}
 
 

Prosiłbym o jakąkolwiek pomoc.

Opublikowano

bo brakuje Ci zmiennej, która przechowuje liczbę wylosowaną

poza tym co wg Ciebie to robi?:

while (liczba=(rand()%20)+1);

@@edit2

poza tym co to za formatowanie? zmień te dev-cpp na coś lepszego np. code blocks

Opublikowano

 

bo brakuje Ci zmiennej, która przechowuje liczbę wylosowaną

poza tym co wg Ciebie to robi?:

while (liczba=(rand()%20)+1);

Kończy działanie pętli. Teraz dodałem zmienna przechowującą wylosowaną liczbę, ale program nadal nie robi tego co powinien. 

 

 

#include <iostream>
#include<conio.h>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
    
    srand( time( NULL ) );
     
    int wylosowana = (rand()%20)+1;
    int liczba;
    int ile=1;
    
    
    cout<<"Jaka liczba";
    cin>>liczba;
    
    if (liczba==wylosowana){
                                cout<<"Zgadles "<<endl;
                                cout<<"Wylosowana liczba "<<wylosowana<<endl;
                                cout<<"Liczba prob: "<<ile<<endl;
                                }
                                
                                else {
                                     
                       do {
    
    if (liczba>20||liczba<1)
    {
                              cout<<"Liczby musza sie znajdowac w przedziale od 1 do 20";
                              
                              }
                              
                              else {
                                   cout<<"Podaj kolejna liczbe";
                                   cin>>liczba;
                                   ile++;
                                   
                                   }
                                   }
                                    while (liczba=wylosowana);
                                   }                       
    getch ();
}
Opublikowano


#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    srand( time( NULL ) );
    int liczba=(std::rand()%20)+1;
    int ile;
    int i=0;
    do {
        std::cout<<"Jaka liczba: ";
        std::cin>>ile;
        if (ile>liczba)
        {
            std::cout<< "Za duza!"<<std::endl;
            i++;
        }
        else if (ile<liczba)
        {
            std::cout <<"Za mala!"<<std::endl;
            i++;
        }
        else if (ile==liczba)
            std::cout<< "Liczba prob: "<< i;
        if (std::cin.fail())
        {
            std::cout<< "Nieprawidlowy znak!"<<std::endl;
            std::cin.clear();
    std::cin.sync();
        }
    } while (ile!=liczba);
    return 0;
}

Opublikowano

powinieneś poczytać o operatorach, bo to nie kończy działania pętli, zawsze będzie działała.

 

tutaj masz stronę, która za Ciebie sformatuje kod:

format.krzaq.cc

wybierz style: WebKit wybierz co chcesz

Opublikowano

 

#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    srand( time( NULL ) );
    int liczba=(std::rand()%20)+1;
    int ile;
    int i=0;
    do {
        std::cout<<"Jaka liczba: ";
        std::cin>>ile;
        if (ile>liczba)
        {
            std::cout<< "Za duza!"<<std::endl;
            i++;
        }
        else if (ile<liczba)
        {
            std::cout <<"Za mala!"<<std::endl;
            i++;
        }
        else if (ile==liczba)
            std::cout<< "Liczba prob: "<< i;
        if (std::cin.fail())
        {
            std::cout<< "Nieprawidlowy znak!"<<std::endl;
            std::cin.clear();
     std::cin.sync();
        }
    } while (ile!=liczba);
    return 0;
}

 

Dzięki, działa. Tylko kiedy wybiorę poprawną liczbę to program od razu się zamyka i nie widać przez to ilości prób. Co muszę zrobić żeby się nie zamykał?

Opublikowano

Dzięki, działa. Tylko kiedy wybiorę poprawną liczbę to program od razu się zamyka i nie widać przez to ilości prób. Co muszę zrobić żeby się nie zamykał?

Nie zamyka się, tylko korzystasz z starego IDE (może da się jakoś ustawić by się nie zamykało).

 

Dodaj getch(); przed return 0;

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...