Siemano, od razu mówię że jestem tutaj nowy i zaczynam swoja przygodę z C++, zacząłem pisać prosty program który zawiera 10 uczestników i dzieli ich na 5 walk w ringu. Czyli - 1vs1 i tak 5 razy.
Problem w tym że nie wiem jak rozlosować zmienne typu string z uczestnikami..
Próbowałem wielu możliwych sposobów ale nic nie wychodziło ; /
Daje swój kod.
Bardzo proszę o wyrozumiałość bo jeszcze nie znam się za bardzo na C++ i siedziałem nad tym programem długi czas i nie znalazłem rozwiązania. :)
Pętle i to że liczby się nie powtarzają zaczerpnąłem stąd : http://miroslawzelent.pl/losowanie-bez-powtorzen-php-c-plus-plus-gra-milionerzy/
Dodam jeszcze że program prawidłowo losuje liczby ale uczestnicy ciągle są ci sami w walkach. :)
#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
// Kompilator: CodeBlocks
// System: Windows 7
int main()
{
///////////////////////// ALGORYTM LOSOWANIA BEZ POWTORZEN //////////////////////
srand(time(NULL));
int ile_pytan = 10; //z ilu pytan losujemy?
int ile_wylosowac = 10; //ile pytan wylosowac?
int ile_juz_wylosowano=0; //zmienna pomocnicza
int *wylosowane = new int[ile_wylosowac+1]; //rezerwacja tablicy
bool losowanie_ok;
string w1,w2,w3,w4,w5,w6,w7,w8,w9,w10;
for (int i=1; i<=ile_wylosowac; i++)
{
do
{
int liczba=rand()%ile_pytan+1; //losowanie w C++
losowanie_ok=true;
for (int j=1; j<=ile_juz_wylosowano; j++)
{
//czy liczba nie zostala juz wczesniej wylosowana?
if (liczba==wylosowane[j]) losowanie_ok=false;
}
if (losowanie_ok==true)
{
//mamy unikatowa liczbe, zapiszmy ja do tablicy
ile_juz_wylosowano++;
wylosowane[ile_juz_wylosowano]=liczba;
}
} while(losowanie_ok!=true);
}
if((ile_wylosowac==5 || ile_wylosowac==2 || ile_wylosowac==3 || ile_wylosowac==4 || ile_wylosowac==1
|| ile_wylosowac==6 || ile_wylosowac==7 || ile_wylosowac==8 || ile_wylosowac==9
|| ile_wylosowac==10))
{
string w1 = "uczestnik";
string w2 = "uczestnik";
string w3 = "uczestnik";
string w4 = "uczestnik";
string w5 = "uczestnik";
string w6 = "uczestnik";
string w7 = "uczestnik";
string w8 = "uczestnik";
string w9 = "uczestnik";
string w10 = "uczestnik";
cout<<"Pierwsza walka to "<<w1<<" vs "<<w2;
}
return 0;
}