• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Początki obiektówki c++

0 głosów
1,307 wizyt
pytanie zadane 10 grudnia 2015 w C i C++ przez natrov Gaduła (3,970 p.)

Witam,

od kilku dni próbuję pisać obiektowo, mogłby ktoś sprawdzić mój kod.

Wydaje mi się, że jest on bardzo nieopytmalny, i dużo rzeczy jest niepotrzenych :)

Pozdrawiam :)


#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

class Kostka {
public:
	int ilu_gra;
	int ile_rzutow;

	Kostka(){
		cout << "Podaj liczbę grających w kości: " << endl;
		cin >> ilu_gra;
		cout << "Podaj liczbę rzutów kostką: " << endl;
		cin >> ile_rzutow;
		cout << "LICZBA GRAJĄCYCH: " << ilu_gra;
		cout << " LICZBA RZUTÓW: " << ile_rzutow << endl << endl;
	}

};

class Kubek {
public:
	int wylosowana;

	void losuj(){
		wylosowana = rand() % 5 + 1;
	}

	void wyswietl(){
		cout << wylosowana << endl;
	}

};

int main() {
	Kostka kostka;

	if(kostka.ilu_gra <= 0)
		kostka.ilu_gra = 1;
	if(kostka.ile_rzutow <= 0)
		kostka.ile_rzutow = 1;

	Kubek* obiekt = new Kubek[kostka.ilu_gra*kostka.ile_rzutow];
	srand( time( NULL ) );

	for(int i = 0; i < kostka.ilu_gra; i++)
	{
		for(int j = 0; j < kostka.ile_rzutow; j++)
		{
			cout << "Gracz nr: " << i + 1 << " rzut nr: " << j + 1 << " wylosowal ";
			obiekt[i].losuj();
			obiekt[i].wyswietl();
		}
	}

	delete [] obiekt;
	return 0;
}

 

2 odpowiedzi

+3 głosów
odpowiedź 10 grudnia 2015 przez emz Nowicjusz (200 p.)
1. Z polskich znaków robią się wzorki.

2. Losują się liczby od 1 do 5, a chyba miała być sześcienna kostka. wylosowana = rand() % 5 + 1;

powinno być 6+1, przykładowo jak robisz losowanie z zakresu 1-100 to bez "+1" wyjdzie 0-99 (zero też jest liczbą) i dlatego musisz dodać +1, ale nadal dzieląc (% - modulo - w tym przypadku dzielenie) przez 100.
0 głosów
odpowiedź 10 grudnia 2015 przez Krawiec91 Pasjonat (19,600 p.)
Jak dobrze rozumiem chodzi tu o "rzucanie" kostką (kostkami) przez kilka osób.
Moim zdaniem, z punktu widzenia jakiejś logiki, to klasa Kostka jest do poprawy. Jako "cechę" kostki uważałbym to jaka liczba wypadła, potocznie mówiąc. Ewentualnie ile ma ścian. A co właściwości (funkcje) to proces "rzucania" losowania wartości jaką kostka wskazuje oraz sam odczyt jaka liczba wypadła. Ile osób rzuca kostką albo po ile razy nią rzuca nie jest nie opisuje kostki jako takiej.

Podobne pytania

0 głosów
2 odpowiedzi 447 wizyt
pytanie zadane 18 czerwca 2015 w C i C++ przez Mateep Użytkownik (850 p.)
+1 głos
4 odpowiedzi 550 wizyt
pytanie zadane 4 listopada 2015 w C i C++ przez krzakurts Obywatel (1,470 p.)
0 głosów
1 odpowiedź 1,015 wizyt
pytanie zadane 15 grudnia 2020 w C i C++ przez skuero0 Nowicjusz (120 p.)

93,720 zapytań

142,635 odpowiedzi

323,264 komentarzy

63,268 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...