Void Zombie Опубликовано 21 декабря, 2011 Жалоба Поделиться Опубликовано 21 декабря, 2011 Писал от скуки на уроке программу, моделирующую игру в покер (две в руку, пять на стол). столкнулся с нерандомностью генерации карт, либо все разные но генерация раз и навсегда, либо все одинаковые. Функция генерации карты: 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; } что я делаю не так? Ссылка на комментарий Поделиться на другие сайты Поделиться
Амфицион Опубликовано 21 декабря, 2011 Жалоба Поделиться Опубликовано 21 декабря, 2011 (изменено) для начала не используешь свич. http://www.cyberguru.ru/programming/cpp/cp...ide-page43.html Нуи возможно где-то синтаксисом навреняка косяки так как блоки иф организованы не правильно. Зы рандомить лучшео т таймера, чтобы "случайнее" получалось Изменено 21 декабря, 2011 пользователем FrostDog Ссылка на комментарий Поделиться на другие сайты Поделиться
Void Zombie Опубликовано 21 декабря, 2011 Автор Жалоба Поделиться Опубликовано 21 декабря, 2011 спасибо за ответ) язык для меня сравнительно новый, так что все советы будут полезны) Ссылка на комментарий Поделиться на другие сайты Поделиться
Void Zombie Опубликовано 21 декабря, 2011 Автор Жалоба Поделиться Опубликовано 21 декабря, 2011 Опять я... решил попутно осваивать классы и их методы.. лучше бы я этого не делал. Если не сложно, подскажите, в чем ошибка? основной блок: 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 << "бубей. "; } } }; заранее спасибо за помощь будущему российской науки) Ссылка на комментарий Поделиться на другие сайты Поделиться
SoulStrippa Опубликовано 22 декабря, 2011 Жалоба Поделиться Опубликовано 22 декабря, 2011 Я, конечно, такой знаток плюсов... Но во-первых разберись до конца со свичем, а именно с использованием слова default (для случаев с "цифровыми" картами). Во-вторых начинающему будущему российской нанонауки книга Джесса Либерти "Освой самостоятельно C++ за 21 день" будет полезна, там и про ООП расскажут, и про синтаксис. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tyranid Опубликовано 22 декабря, 2011 Жалоба Поделиться Опубликовано 22 декабря, 2011 ИМХО тебе бы на ру-борд. Ссылка на комментарий Поделиться на другие сайты Поделиться
Mr.Woland-DCLXVI Опубликовано 22 декабря, 2011 Жалоба Поделиться Опубликовано 22 декабря, 2011 1) Прочитай любую базовую книгу по С++. 2) Составь структуру классов. 3) Нарисуй алгоритм на любом листе бумаги. ЗЫ. case: break; Иначе будет просто проходить по всем нижестоящим условиям.... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти