Problem ze sprawdzeniem danych 16365 37

O temacie

Autor DominikT

Zaczęty 15.02.2013 roku

Wyświetleń 16365

Odpowiedzi 37

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Witajcie , chciałbym zrobić grę w kości , jednak nie wiem jak napisać funkcje żeby sprawdzała czy dane kości tworzą pare , trójke lub karete itp ... . Tutaj mój kod który losuje liczby i co udało mi się zrobić , jak napisać taką funkcje która by sprawdzała te wartości ??
 
void rzucKosci (int , int) ;
void para (int prawda , int falsz);
int main() {
   
   string START ;
   
   cout << "**************************"<<endl ;
   cout << "|      GRA W KOSCI       |"<<endl ;
   cout << "|     DOMINIK TAMIOLLO   |"<< endl ;
   cout << "**************************"<<endl ;
   
   cout << " Wpisz \"START\" aby rzucic kosci " << endl ;
   
   cin >> START ;
   
   if (START == ("START") || ("start"))
   {
    cout << " Gratulacje ! Zaczynamy gre !! " << endl ;
    rzucKosci (5,5);
   
      
    }
   
   return 0;
}

 void rzucKosci (int kosci , int wszystkie_kosci)
 {
      srand (time(NULL));
     
      int * rzucone = new int [kosci];
     
      for (int i = 0 ; i < kosci ; i++)
      {
      rzucone = rand () % (wszystkie_kosci) + 1 ;
     
    cout << "Twoje kosci to : " << rzucone << endl ;
     
     
     
     }
 }
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Problem ze sprawdzeniem danych
#1 2013-02-15, 13:04(Ostatnia zmiana: 2013-02-15, 13:07)
Po prostu piszesz odpowiednie funkcje, które sprawdzą, czy masz parę, trójkę etc. Same funkcje będą mogą być podobne do tego: http://themodders.org/index.php?/topic/19020-ktora-i-jaka-liczba-wystepuje-najczesciej-w-tablicy/

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Mógłbyś mnie jakoś oświecić :P ? Próbuje stworzyć instrukcje która sprawdzała by czy i jest mniejsze od rozmiaru tablicy , no ale tutaj problem że nie mam zdefiniowanej jej w tej funkcji . Chodziło mi o coś takiego : for (int i = 0 ; i < sizeof(kosci) / sizeof(int) ; i++ )
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
for (int i = 0 ; i < sizeof(kosci[i]) / sizeof(int) ; i++ ) Naprawdę nie wiem, co chcesz dzięki temu osiągnąć... sizeof(kosci) / sizeof(int) w twoim przypadku to 1.

Utwórz tablicę o wymiarze 6(?).

Następnie:
for (int i = 0; i < kosci; i++)
    tablica[rzucone[i]]++;

I wtedy w tablicy masz wartości ile razy powtarza się dany element od 0 do 5.

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Zrobiłem jak powiedziałeś , ale za bardzo nie widze w tym sensu . Zresztą zamiast i musiałem dać k bo by mi nie przeszło przez kompilator . Gdy wyłuskam wartośc spod tablica (cout << *tablica) to wszędzie jest 0 i mają takie same adresy . Czemu nie moge w drugiej pętli i . Przecież jest poza obrębem tamtej pętli i już i nie istnieje . Tak wygląda moja funkcja :  void rzucKosci (int kosci , int wszystkie_kosci)
 {
      srand (time(NULL));
     
      int * rzucone = new int [kosci];
     
      for (int i = 0 ; i < kosci ; i++)
      {
      rzucone = rand () % (wszystkie_kosci) + 1 ;
     
    cout << "Twoje kosci to : " << rzucone << endl ;
   
 
     }    
      for (int k = 0; k < kosci; k++){
     
       tablica[rzucone[k]]++;
       cout << *tablica << endl ; }
       
}
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Problem ze sprawdzeniem danych
#5 2013-02-15, 19:41(Ostatnia zmiana: 2013-02-15, 20:03)
Po co ci adres tablicy? Po prostu zwróć wartość w tablicy za pomocą indeksów.

EDYCJA
Nie potrzebujesz również tworzyć tablic dynamicznych, wystarczą statyczne.

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

void rzucKosci (int kosci , int wszystkie_kosci)
{
   srand (time(NULL));
   int rozmiar = kosci + 1;
   int rzucone[kosci];
   int tablica[rozmiar];

   for (int i = 0; i < rozmiar; i++)
      tablica[i] = 0;

   for (int i = 0 ; i < kosci ; i++)
   {
      rzucone [i] = rand () % (wszystkie_kosci) + 1;
      tablica[rzucone[i]]++;

      cout << "Twoje kosci to: " << rzucone[i] << endl;
   }

   for (int i = 0; i < rozmiar; i++)
      cout << tablica[i] << endl;
}

int main()
{
   string START;

   cout << "**************************"<<endl;
   cout << "| GRA W KOSCI |"<<endl;
   cout << "| DOMINIK TAMIOLLO |"<< endl;
   cout << "**************************"<<endl;

   cout << " Wpisz \"START\" aby rzucic kosci " << endl;

   cin >> START;

   if (START == ("START") || START == ("start"))
   {
      cout << " Gratulacje ! Zaczynamy gre !! " << endl;
      rzucKosci (5,5);
   }

   return 0;
}


Poprawiłem jeszcze "start".

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Mógłbyś jaśniej ? Z tego co wiem to indeks jest tu : tab[indeks] . Więc jak mam zwrócić za pomocą licznika pętli (i) tablice ? Myślę że chodzi ci o to : tablica ( wiem , wiem jestem noobem , ale każdy kiedyś nim był :)  ) . Lecz gdy tak zrobiłem do za 4 obiegiem pętli jest 19987546654654 a nie żadna liczba . Jak to wygląda : http://ifotos.pl/zobacz/Beztytuuj_xaxqwap.jpg/ .

Moja funkcja :
 
void rzucKosci (int kosci , int wszystkie_kosci)
 {
  srand (time(NULL));
  int tablica [kosci] ;
  int * rzucone = new int [kosci];
 
  for (int i = 0 ; i < kosci ; i++)
  {
  rzucone [i] = rand () % (wszystkie_kosci) + 1 ;
  tablica[rzucone[i]]++;
 
cout << "Twoje kosci to : " << rzucone[i] << endl ;
       cout << tablica[i] << endl ;

 
     }    

       
}
Jest w tym pewien sens logiczny , no bo jeżeli się zsumuje te liczby to wychodzi ile razy się powtórzyło , ale co tam robi ta ogromna liczba w 4 obiegu pętli :P
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
Lecz gdy tak zrobiłem do za 4 obiegiem pętli jest 19987546654654 a nie żadna liczba .
Na początku elementy w tablicy są wypełniane losowymi wartościami i dlatego trzeba wyzerować je. Kod masz wyżej.

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Wielkie dzięki za pomoc :)  Ciekawe jak sobie poradze z małym i dużym stritem . I jeszcze takie pytanie : Po co pętla for przed zerowaniem tablicy ?? ( Sprawdziłem : zainicjalizowałem sobie int i = 0 i pousuwałem int to ta duża liczba mi jednak wyskoczyła . Czemu ?? Przecież tablica została wyzerowana .
I co w łopatologicznym (:p) tłumaczeniu to znaczy : tablica[rzucone]++; .Myśle      
że:zwiększ tablice [ ( no i właśnie : o co chodzi że tablica w indeksie ma inną tablice też z indeksem ) ] ?? Jak to rozumieć .
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
I jeszcze takie pytanie : Po co pętla for przed zerowaniem tablicy ?? ( Sprawdziłem : zainicjalizowałem sobie int i = 0 i pousuwałem int to ta duża liczba mi jednak wyskoczyła . Czemu ?? Przecież tablica została wyzerowana .
Nie wiem, co dokładnie zrobiłeś, ale to
for (int i = 0; i < rozmiar; i++)
      tablica[i] = 0;
oznacza zerowanie wszystkich elementów w tablicy, miałem to na myśli, pisząc wyzerowanie tablicy.

Cytuj
I co w łopatologicznym (:p) tłumaczeniu to znaczy : tablica[rzucone]++; .Myśle
że:zwiększ tablice [ ( no i właśnie : o co chodzi że tablica w indeksie ma inną tablice też z indeksem ) ] ?? Jak to rozumieć .
Poprzez rzucone odwołujesz się do elementu w tablicy rzucone o indeksie i, który wskazuje nam wyrzuconą wartość. W tablicy tablica każdy element przechowuje ilość naszych elementów i zwiększasz o jeden.

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Wielkie dzięki . Teraz już rozumiem .
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Jednak znowu mam problem . Wymyśliłem sobie że jeżeli tablica = np 2 to wypisuje Dwójka ! . Ale jeżeli występują dwie dwójki to nazywa się to parą . Jak się odwołać do dwóch wartości z tych tablic ( jeżeli w dwóch obiegach pokażą 2 ) , jest to równoznaczne z tym że jest to parą . Tak samo mam problem z fullem .
  if ((tablica[i] == 3 ) && (tablica[i] == 2 ) )
      {
  cout << " FULL !! " << endl ;
 }

Nie wykonuje się tylko pokazuje : http://ifotos.pl/zobacz/Beztytuu1_xanxpqe.jpg/ .
Cały kod :

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

void rzucKosci (int kosci , int wszystkie_kosci)
{
   srand (time(NULL));
   int rozmiar = wszystkie_kosci + 1;
   int rzucone[kosci];
   int tablica[rozmiar];

   for (int i = 0; i < rozmiar; i++)
      tablica[i] = 0;

   for (int i = 0 ; i < kosci ; i++)
   {
      rzucone [i] = rand () % (wszystkie_kosci) + 1;
      tablica[rzucone[i]] ++;

      cout << "Twoje kosci to: " << rzucone[i] << endl;
   }

   for (int i = 0; i < rozmiar; i++)
   {

      if ((tablica[i] == 3 ) && (tablica[i] == 2 ) )
      {
  cout << " FULL !! " << endl ;
 }
 if ((tablica[i] == 2  ))
 {cout << " Dwojka !!! " << endl ;}
 if (tablica [i] == 3)
 {
 cout << "Trojka !!! " << endl ;    
 }
 if (tablica [i] == 5)
 {
 cout << " Piatka !!!! " << endl ;
 }
 if (tablica [i] == 4 )
 {
 cout << "Kareta !!!! " << endl ;
 }
 

  }  
}

int main()
{
   string START;

   cout << "**************************"<<endl;
   cout << "| GRA W KOSCI |"<<endl;
   cout << "| DOMINIK TAMIOLLO |"<< endl;
   cout << "**************************"<<endl;


      rzucKosci (5,6);
   

   return 0;
}
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Problem ze sprawdzeniem danych
#12 2013-02-16, 15:13(Ostatnia zmiana: 2013-02-16, 15:15)
To ci się nigdy nie spełni:
if ((tablica[i] == 3 ) && (tablica[i] == 2 ) )
      {
                 cout << " FULL !! " << endl ;                  
          }

Ja bym zrobił coś takiego:
int zmienna = 0;

for (int i = 0; i < rozmiar; i++)
   {    
      if (tablica [i] == 5)
      {
          cout << " Piatka !!!! " << endl ;
          break;
      }
      else if (tablica [i] == 4 )
      {
          cout << "Kareta !!!! " << endl ;
          break;
      }
      else if (tablica[i] == 2)
      {
          zmienna+=2;
      }
      else if (tablica [i] == 3)
      {
          zmienna+=3;                      
      }      
  }  
      if (zmienna == 5)
      {
          cout << " FULL !! " << endl ;                  
      }
      else if (zmienna == 3)
      {
         cout << "Trojka !!! " << endl ;  
      }
      else if (zmienna == 2)
      {
          cout << " Dwojka !!! " << endl;
      }

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
No tak ... :p że ja na to nie wpadłem . Tam jest błąd zmienna a zadekralowałeś wartość (ale to nieważne ) . Dzięki :)

Jednak gdy wartość jest równa 4 to nie wypisuje pary , bo gdy są 4 takie same kości to tablica nie wypisuje dwóch dwójek tylko jedną . void rzucKosci (int kosci , int wszystkie_kosci)
{
   srand (time(NULL));
   int rozmiar = wszystkie_kosci + 1;
   int rzucone[kosci];
   int tablica[rozmiar];

   for (int i = 0; i < rozmiar; i++)
      tablica[i] = 0;

   for (int i = 0 ; i < kosci ; i++)
   {
      rzucone [i] = rand () % (wszystkie_kosci) + 1;
      tablica[rzucone[i]] ++;

      cout << "Twoje kosci to: " << rzucone[i] << endl;
   }

   int wartosc = 0 ;

   for (int i = 0; i < rozmiar; i++)
   { cout << tablica[i] << endl ;
    if (tablica[i] == 5)
    {
    cout << "Piatka !!! " << endl ;
    break ;
}
else if (tablica[i] == 2)
    {
    wartosc += 2;
    break ;
}
else if (tablica[i] == 4)
    {
    cout << "Kareta !!! " << endl ;
    break ;
}
  else if (tablica[i] == 3)
    {
    wartosc += 3;
    break ;
}

   


  }  
 
  if (wartosc == 4 )
  {
  cout << " Para !!! " << endl ;
 
}
else if (wartosc == 5 )
  {
  cout << " FULL !!! " << endl ;
 
}
else if (wartosc == 2 )
  {
  cout << " Dwojka !!! " << endl ;
 
}
else if (wartosc == 3 )
  {
  cout << " Trojka !!! " << endl ;
 
}


}

Tak wygląda w konsoli : http://ifotos.pl/zobacz/Beztytuu2_xanxxew.jpg/ .

Już rozumiem sorry :P . Poprostu zauważyłem że break kończy wykonywanie pętli i nigdy się nie pokaże następna 2 .
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Po co dałeś tu:
else if (tablica[i] == 2)
                {
                wartosc += 2;
                break ;
                }
i tu:
else if (tablica[i] == 3)
                {
                wartosc += 3;
                break ;
                }
break? Break przerywa działanie pętli, w tym wypadku for. Przy karecie czy pokerze(piątce) nie ma sensu sprawdzać innych opcji, bo mamy tylko 5 kości.

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Już rozumiem . W edycji dałem że już sam to spostrzegłem wcześniej  :P

Chciałem zrobić małego i dużego strita , jednak już zaczynają się schody . Zrobiłem sobie int wartosc_strit = 0 ; . Potem napisałem else if (tablica [i] == 1)
    {
wartosc_strit += 3 ;
}

Bo zauważyłem ze jeżeli tablica ma wartość 1 to nie ma nic . Więc pomyślałem sobie że napisze tak : else if (wartosc_strit == 15)
        {
  cout << " Maly strit !!! " << endl ;
        }


Jednak gdy wypadną liczby 1 ,2 ,3 ,4 ,6 to również pisze mały strit , no bo wszędzie są jedynki . Nie mam odwołania do rzucone wiec jak zrobić ignorowanie 6 żeby niebyła uwzględniana przy małym stricie ?? . Cała funkcja :
void rzucKosci (int kosci , int wszystkie_kosci)

{
   srand (time(NULL));

   int rozmiar = wszystkie_kosci + 1;
   int rzucone[kosci];
   int tablica[rozmiar];

   for (int i = 0; i < rozmiar; i++)
      tablica[i] = 0;

   for (int i = 0 ; i < kosci ; i++)
   {  
      rzucone [i] = rand () % (wszystkie_kosci) + 1;
      tablica[rzucone[i]] ++ ;
      cout << "Twoje kosci to: " << rzucone[i] << endl;
   }

   int wartosc = 0 ;
   int wartosc_strit = 0 ;
   for (int i = 0; i < rozmiar; i++)
   
   {
cout << tablica[i] << endl ;
    if (tablica[i] == 5)
    {
    cout << "Piatka !!! " << endl ;
    break ;
}
else if (tablica[i] == 4)
    {
    cout << "Kareta !!! " << endl ;
    break ;
}
else if (tablica [i] == 1)
    {
wartosc_strit += 3 ;
}

else if (tablica[i] == 2)
    {
    wartosc += 2;
   
}

  else if (tablica[i] == 3)
    {
    wartosc += 3;
   
}


  }  
 
  if (wartosc == 4 )
  {
  cout << " Para !!! " << endl ;
 
}
else if (wartosc == 5 )
  {
  cout << " FULL !!! " << endl ;
 
}
else if (wartosc == 2 )
  {
  cout << " Dwojka !!! " << endl ;
 
}
else if (wartosc == 3 )
  {
  cout << " Trojka !!! " << endl ;
 
}
else if (wartosc_strit == 15)
        {
  cout << " Maly strit !!! " << endl ;
        }




}
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Dla małego strita sprawdzasz indeksy od 0 do 4, a dla dużego od 1 do 5.

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Ale rzucone[indeks] jest w innej funkcji . Tablica informuje czy coś się powtarza . A ja przecież mam operować na liczbach wylosowanych , a nie powtarzających się .
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Przecież masz tylko jedną (z mainem dwie) funkcje.

int strit;
int maly_strit = 1;
int duzy_strit = 0;

if (tablica[0] == 0)
{
   maly_strit = 0;
   duzy_strit = 1;
}

for (int i = 0; i < rozmiar; i++)
{
   if (tablica[i] == 1 && strit < 5) strit++;
   if (i > 0 && tablica[i] != 1) duzy_strit = 0;
}

if (maly_strit) std::cout << "mały strit" << std::endl;
if (duzy_strit) std::cout << "duży strit" << std::endl;

Może można lepiej to zrobić, ale to mi pierwsze przyszło do głowy.

DominikT

DominikT

Użytkownicy
posty161
Propsy69
  • Użytkownicy
Sprawdzę poprawność zaraz , może jakieś poprawki dokonam ale na pierwszy rzut oka widze że 2 warunki się spełnią w tym samym czasie bo obie mają wartości dodatnie .
Pytanie czysto techniczne : Czy mogę się w jaki kolwiek sposób odwołać do rzucone poza pętlą ??

Nasuwa się kolejny problem . Jak zrobić aby oba losowania były równe . No bo w kości gra się w 2 osoby , a nie pojedynczo . Gdy stworzyłem taką samą funkcje ( nie wiem czy źle , czy dobrze , ale myśle że potem mi to się przyda :P ) i wywołałem ją z funkcji main to oba losowania są identyczne . Myśle że jest to problem z ziarnem , bo jako parametr jest czas (który jest taki sam w obu przypadkach . Czy da się jakoś opóżnić losowanie , wiem że to powinno dać efekty , ale nie wiem jakim sposobem dodać do czasu kilka milisekund .
 
Spoiler
Programie nasz, któryś jest w pamięci

Swięć się nazwa twoja

Bądź system operacyjny twój

Wykonuj funkcje swoje

I na drukarce i na ekranie



I daj nam nasze dane

I wybacz nam nasze błędy

Jako i my wybaczymy

Twoim programistom

I prowadź nas do swego końca



Bo twój jest algorytm

I pętla, i rozwiąnie

Na wieku wieków (jak się zwiesisz)



ENTER

Intel i5 3,2 duo 8 gb ram karta gts250 1gb


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry