![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.02.2013
Сообщений: 60
|
![]()
Решил попробывать написать покер.))))
Всё работает вроде нормально кроме функции по выдаче карт игроку(newcards). Работает через раз. 3 варианта работы программы: 1. Раздаёт нормально и выводит на эран. 2. Работает но не выводит карты игрока(послеследующие функции работают) 3 Вылетает. Можете помочь разобраться в чём дело, предпологаю что проблема где-то здесь: card pack::getcard() player::newcards(pack& a) Код:
Последний раз редактировалось tolikprankster; 05.03.2013 в 18:20. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
1) Что говорит отладчик? Как вариант, что говорит отладочная печать, выводящая pos на каждом getcard()?
2) Воля Ваша, но shuffle() странен. r принимает значения от 1 до 52, а индекс cards может меняться от 0 до 51... гм... 3) Ужас из switch в конструкторе card можно заменить на: Код:
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 09.02.2013
Сообщений: 60
|
![]() Цитата:
switch заменю) |
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 09.02.2013
Сообщений: 60
|
![]()
Возник ещё один вопрос по динамическому выделению памяти. Суть в следующем.
В начале функции game() создается массив игроков(player), в конце он удаляется. В конструкторе и деструкторе данного класса переменная cplayer соответственно инкреминтируется и декриментируется. Однако с каждым запуском функции game(), cplayer уменьшается на 1. Тоесть если count=5, то конструктор вызывается 5 раз, а деструктор 6. class player{ public: static int cplayer; }; void game(int count) { player* n=new player[count]; cout<<player::cplayer<<"\n"; createpack(); showpack(); shuffle(); desk* d = new desk; deal(n,count); for(int i=0;i<count;i++) n[i].spcards(); d->flop(); d->showcom(); besthand(n[2],d); delete d; delete [count]n; getch(); } |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 09.02.2013
Сообщений: 60
|
![]()
Проблема была в besthand(n[2],d);
создал конструктор копии, но всё равно здесь "besthand(n[2],d);" вызывается обычный конструктор. Почему? Код:
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
1) Почему переменная player::cplayer public?
2) Почему она не инициализируется при объявлении? 3) " delete [count]n;" Вероятно, имелось в виду delete[] n; 4) Я вижу только один вывод "cout<<player::cplayer<<"\n";". Расставьте их в разных точках функции для более точной диагностики. |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 09.02.2013
Сообщений: 60
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? | ArchiCurtis | Помощь студентам | 2 | 07.04.2012 14:16 |
Ошибка run-time Error 1004 общая ошибка ODBC | kaval88 | Microsoft Office Excel | 0 | 27.02.2011 20:20 |
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? | ankris | HTML и CSS | 5 | 23.11.2010 16:58 |
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... | infrared | Помощь студентам | 0 | 16.04.2009 17:44 |