Wrzucać treść programu w znacznik CODE i pamiętaj o Tabulatorach, bo ciężko coś rozeznać.
Post powinien wyglądać w ten sposób:
#include
#include
using namespace std;
void sleep (int ile)
{
int b=ile+1;
int tmp=time(0);
int stop=time(0)+ile;
do
{
if(time(0)>tmp)
{
b--;
tmp=time(0);
cout<
}
}while(time(0)
}
int main(int argc, char **argv)
{
string imiona[5];
string boty[5]={"Gienio","Zygmunt","Adek","Iduś","Amadeusz"};
const int maxLG=5;
int suma1[10];
int ilegraczy;
int ilegier;
string itmp;
int tmp;
cout<<"Ile graczy ? " <
cin>>ilegraczy;
cout<<"Ile gier ? " <
cin>>ilegier;
for (int i=0; i
{
cout<<"Podaj imie "<
cin>>imiona[i];
suma1[i]=0;
cout<
//sleep(5);
for (int j=0; j
{
srand (time(0)+j) ;
int liczba =rand ()%6;
suma1[i]=suma1[i]+liczba;
cout<<"Wylosowano : "<
cout<
for(int i=ilegraczy; i
{
imiona[i]=boty[i];
}
}
cout<<"Suma punktów wynosi : "<
}
cout<
for (int j=0; j
{
for (int i=0; i
{
if(suma1[i]
{
tmp=suma1[i];
suma1[i]=suma1[i+1];
suma1[i+1]=tmp;
itmp=imiona[i];
imiona[i]=imiona[i+1];
imiona[i+1]=itmp;
}
}
}
cout<<"Wyniki sortowań"<
cout<
for (int i=0; i
{
cout<
}
return 0;
}
[/code]
Sprawdzę, może znajdę jakiś sposób na rozwiązanie jeśli nikt inny mnie nie ubiegnie :P
Dodano:
ten fragment:
[code]for(int i=ilegraczy; i { imiona[i]=boty[i]; } }
nie powinien być wewnątrz pętli
for (int i=0; i
Dodaj pod tą pętlą podobną ale zaczynającą się właśnie od
[code]for(int i=ilegraczy; i { imiona[i]=boty[i]; } }
Robiłeś do tego programu schemat blokowy? Jeśli tak to wrzuć go tutaj, bo albo masz źle schemat napisany, albo nie stosowałeś się do schematu pisząc program
Nie robiłem schematu blokowego, ponieważ jeszcze nie mieliśmy tego na lekcjach w szkole, a jeżeli chodzi to co wyżej napisałeś to nie za bardzo to rozumiem ;/
Jak można uczyć programowania nie ucząc schematów?
Ja zrobiłem to w ten sposób - nie mam jednak kompilatora, żeby sprawdzić czy na pewno działa.
#include
#include
using namespace std;
void sleep (int ile)
{
int b=ile+1;
int tmp=time(0);
int stop=time(0)+ile;
do
{
if(time(0)>tmp)
{
b--;
tmp=time(0);
cout<
}
}while(time(0)
}
int main(int argc, char **argv)
{
string imiona[5];
string boty[5]={"Gienio","Zygmunt","Adek","Iduś","Amadeusz"};
const int maxLG=5;
int suma1[10];
int ilegraczy;
int ilegier;
string itmp;
int tmp;
cout<<"Ile graczy ? " <
cin>>ilegraczy;
cout<<"Ile gier ? " <
cin>>ilegier;
for (int i=0; i
{
cout<<"Podaj imie "<
cin>>imiona[i];
suma1[i]=0;
cout<
//sleep(5);
for (int j=0; j
{
srand (time(0)+j) ;
int liczba =rand ()%6;
suma1[i]=suma1[i]+liczba;
cout<<"Wylosowano : "<
cout<
}
cout<<"Suma punktów wynosi : "<
}
for(int i=ilegraczy; i
{
imiona[i]=boty[i];
for (int j=0; j
{
srand (time(0)+j) ;
int liczba =rand ()%6;
suma1[i]=suma1[i]+liczba;
cout<<"Wylosowano : "<
cout<
}
}
cout<
for (int j=0; j
{
for (int i=0; i
{
if(suma1[i]
{
tmp=suma1[i];
suma1[i]=suma1[i+1];
suma1[i+1]=tmp;
itmp=imiona[i];
imiona[i]=imiona[i+1];
imiona[i+1]=itmp;
}
}
}
cout<<"Wyniki sortowań"<
cout<
for (int i=0; i
{
cout<
}
return 0;
}
[/code]
W Twoim przykładzie dodawałeś boty na wolne miejsca po każdym dodaniu gracza zdeklarowanego, ale nic z tymi botami nie robiłeś. Teraz program najpierw dodaje graczy i rzuca dla nich kostką, a później dodaje boty i rzuca dla nich kostką. Dodatkowo na końcu wypisywałeś wyniki tylko dla graczy, ja poprawiłem, żeby wypisywał dla wszystkich. Dodatkowo program umożliwia deklarację większej ilości graczy niż 5, a założenie jest że 5 graczy to max, więc całość bym jeszcze wrzucił w
[code]if(ilegraczy<6) tresc programu; else cout<<“zbyt dużo graczy”;
Pomyśl też nad tym “ifem” żeby sprawdzał czy nie wprowadzono ujemnej lub niecałkowitej liczby graczy.
Jest prawie dobrze Tyle że moim zdaniem powinno być inaczej. Niżej wkleiłem to co się wyświetla w terminalu.
Ile graczy ?
2
Ile gier ?
2
Podaj imie 1 gracza :
Zenek
Zenek
Wylosowano : 1 suma : 1
Wylosowano : 2 suma : 3
Suma punktów wynosi : 3
Podaj imie 2 gracza :
Adek
Adek
Wylosowano : 1 suma : 1
Wylosowano : 1 suma : 2
Suma punktów wynosi : 2
Wylosowano : 1 suma : 1
Wylosowano : 1 suma : 2
Wylosowano : 1 suma : 3129428
Wylosowano : 1 suma : 3129429
Wylosowano : 1 suma : 2
Wylosowano : 1 suma : 3
Wyniki sortowań
Zenek 3 pkt
Adek 2 pkt
Adek 2 pkt
Iduś 3129429 pkt
Amadeusz 3 pkt
Powinny się jeszcze wyświetlać nazwy botów przy ich losowaniu, tak jak przy normalnych graczach, a drugi problem to bardzo wysoka liczba pkt czy bocie “Iduś” też nie mam pojęcia skąd aż taka . ;/
dobra z imionami i dużą liczbą mam już z głowy Ale wystąpił kolejny problem ;/ Wyniki sortowań wyświetlane pod koniec programu ;/ osobno sortuje pkt dla graczy i osobno dla botów. Niżej wkleiłem jak sie wyświetla teraz a jak powinno :
Tak jest teraz :
Lukasz 9 pkt
Antek 5 pkt
Zenek 2 pkt
Iduś 15 pkt
Amadeusz 12 pkt
A powinno być tak :
Iduś 15 pkt
Amadeusz 12 pkt
Lukasz 9 pkt
Antek 5 pkt
Zenek 2 pkt
Z czego Iduś i Amadeusz to boty, a reszta to gracze.
Sortowanie powinno być nie na podstawie “ilegier” tylko “maxLG”. Wtedy pewnie będzie działać dobrze, bo funkcja sortująca nie wie którzy gracze to boty. Po prostu posortowało Ci pierwszych trzech graczy, bo pewnie zrobiłeś 3 rzuty kostką.