Перейти к содержанию
Друзья, важная новость! ×

функии рандома


Void Zombie

Рекомендуемые сообщения

Писал от скуки на уроке программу, моделирующую игру в покер (две в руку, пять на стол). столкнулся с нерандомностью генерации карт, либо все разные но генерация раз и навсегда, либо все одинаковые.

Функция генерации карты:

void cardgen () {

	int a = rand() % 14;

	if (a == 0) cout << "Туз ";

	if (a == 11) cout << "Валет ";

	if (a == 12) cout << "Дама ";

	if (a == 13) cout << "Король ";

	if (a > 0 && a < 11) cout << a << ' ';

	srand(time( NULL ) );

	int b = rand() % 4;

	if (b == 0) cout << "пик. ";

	if (b == 1) cout << "крестей. ";

	if (b == 2) cout << "червей. ";

	if (b == 3) cout << "бубей. ";

	return;

}

что я делаю не так?

Ссылка на комментарий
Поделиться на другие сайты

для начала не используешь свич.

http://www.cyberguru.ru/programming/cpp/cp...ide-page43.html

Нуи возможно где-то синтаксисом навреняка косяки так как блоки иф организованы не правильно.

Зы рандомить лучшео т таймера, чтобы "случайнее" получалось

Изменено пользователем FrostDog
Ссылка на комментарий
Поделиться на другие сайты

спасибо за ответ) язык для меня сравнительно новый, так что все советы будут полезны)

Ссылка на комментарий
Поделиться на другие сайты

Опять я... решил попутно осваивать классы и их методы.. лучше бы я этого не делал. Если не сложно, подскажите, в чем ошибка?

основной блок:

card a;

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

		a.generate();

		a.out();

		cout << endl;

	}

	return 0;
класс card:
class card {

	int count;

	int race;

public: void generate () {

	srand(time( NULL ) );

	count = rand() % 13;

	srand(time( NULL ) );

	race = rand() % 4;

		}

public: void out () {

	switch (count) {

	case 10: cout << "Валет ";

	case 11: cout << "Дама ";

	case 12: cout << "Король ";

	case 0: cout << "Туз ";

	}

	if (count > 0 && count < 10) cout << count + 1<< ' ';

	switch (race) {

	case 0: cout << "пик. ";

	case 1: cout << "крестей. ";

	case 2: cout << "червей. ";

	case 3: cout << "бубей. ";

	}

		}


};

заранее спасибо за помощь будущему российской науки)

Ссылка на комментарий
Поделиться на другие сайты

Я, конечно, такой знаток плюсов...

Но во-первых разберись до конца со свичем, а именно с использованием слова default (для случаев с "цифровыми" картами).

Во-вторых начинающему будущему российской нанонауки книга Джесса Либерти "Освой самостоятельно C++ за 21 день" будет полезна, там и про ООП расскажут, и про синтаксис.

Ссылка на комментарий
Поделиться на другие сайты

1) Прочитай любую базовую книгу по С++.

2) Составь структуру классов.

3) Нарисуй алгоритм на любом листе бумаги.

ЗЫ.

case:

break;

Иначе будет просто проходить по всем нижестоящим условиям....

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...