Форум программистов, компьютерный форум CyberForum.ru

Игра в покер С++(по Дейтелу) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Структура "Государство". Структурирование информации http://www.cyberforum.ru/cpp-beginners/thread1857266.html
Структура "Государство": - название; - столица; - численность населения; - занимаемая площадь. Необходимо информацию сохранить в файл. Отсортировать по численности населения и сохранить в новый файл. Программа работает как надо, но необходимо сделать отдельную функцию считывания из файла. Не могу понять как это сделать. #include <iostream> #include <string> #include <fstream>
C++ Подсчитать количество чисел в тексте С клавиатуры вводится строка. Составить программу, которая подсчитывает количество чисел в тексте (не цифр, а именно чисел): выводит на экран все слова, состоящие только из латинских букв удаляет каждое второе слово. с++ http://www.cyberforum.ru/cpp-beginners/thread1857264.html
Для заданной матрицы размером N на N найти такие k, при которых k-я столбец матрицы совпадет с k-ым строкой C++
Для заданной матрицы размером N на N найти такие k, при которых k -я столбец матрицы совпадет с k -ым строкой.Найти сумму элементов в тех строках,которые содержат хотя бы один отрицательный элемент.
Сумма числового ряда C++
Программа должна вычислить сумму числового ряда заданного в диалоговом режиме параметра N- кол-во слагаемых. На экране вывести значения всех N числителей и знаменателей слагаемых, а также сами слагаемые в виде таблицы из N строк. Перед таблицей должен быть заголовок с наименованиями колонок. Вычислить сумму ряда, состоящего из N слагаемых, и вывести результат с M=5 знаками после запятой....
C++ Считывание слов из файла с перестановкой местами http://www.cyberforum.ru/cpp-beginners/thread1857254.html
Задача: считать из файла текст, вывести в выходной файл, где каждые два соседние слова будут поменяны местами Я сделал это так: ... while (!input.eof()) { getline(input, prev, ' '); getline(input, next, ' '); output << next << ' ' << prev << ' '; } ...
C++ Напечатать в алфавитном порядке все разные русские буквы, входящие в поданный текст из 200 букв Напечатать в алфавитном порядке все разные русские буквы, входящие в поданный текст из 200 букв. подробнее

Показать сообщение отдельно
Tigran1998
0 / 0 / 0
Регистрация: 22.11.2016
Сообщений: 1
22.11.2016, 17:04     Игра в покер С++(по Дейтелу)
Здравствуйте!
Написал программу по приведенной снизу задаче, но она только раз из 20 работает правильно, в остальные разы выдает глюк -бесконечное возвращение конечного результата. В ней нужно использовать ссылки.

Вот задача:
Тасование и раздача карт в покер, его надо модифицировать. Нужно написать такую программу, которая моделирует игру в покер так, чтобы функция раздачи карт раздавала на руки пятикарточный покер. Затем напишите следующие дополнительные функции:
a) Определите, находится ли на руках пара.
b) Определите, находятся ли на руках две пары.
c) Определите, находятся ли на руках три валета.
d) Определите, находятся ли на руках четыре туза.
e) Определите, находится ли на руках флеш (все пять карт одной
масти).
f) Определите, находятся ли на руках пять карт с последователь-
последовательными фигурами.

Модифицируйте программу так,
чтобы она могла моделировать сдающего. Пять карт сдающего сда-
сдаются рубашкой вверх, так что игрок не может видеть фигуры на
картах. Программа должна затем оценить карты на руках сдающего
и, основываясь на их качестве, сдающий должен засветить допол-
дополнительно одну, две или три дополнительные карты, чтобы заменить
соответствующее количество ненужных карт в исходной раздаче.
Затем программа должна оценить заново раздачу на руки.

Помогите, пожалуйста, чем сможете.
Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include<iostream>
#include<iomanip>
#include<stdlib.h>
#include<time.h>
#include<locale>
 
using namespace std;
 
void shuffle(int[][13]);
void deal(const int[][13],const char*[],const char*[]);
void bubbleSort(int*,const int);
 
int main()
{
    setlocale(0,"RUS");
 
    const char *suit[4]={"Черви","Бубны","Трефы","Пики"};
    const char *face[13]={"Туз","Двойка","Тройка","Четвёрка",
                    "Пятерка","Шестерка","Семерка",
                    "Восьмерка","Девятка","Десятка",
                    "Валет","Дама","Король"};
    int deck[4][13]={0};
    int card=1;
 
    for(int i=0;i<=3;i++)
        for(int j=0;j<=12;j++){
            deck[i][j]=card;
            card++;
        }
    srand(time(NULL));
 
    shuffle(deck);
    deal(deck,face,suit);
    cout<<endl;
 
    return 0;
}
 
void shuffle(int wDeck[][13])
{
    int row,column,hold;
    for(int card=1;card<=52;card++){
        for(int i=0;i<=3;i++)
            for(int j=0;j<=12;j++){
                row=rand()%4;
                column=rand()%13;
                hold=wDeck[i][j];
                wDeck[i][j]=wDeck[row][column];
                wDeck[row][column]=hold;
            }
    }
}
void deal(const int wDeck[][13],const char *wFace[],
    const char *wSuit[])
{
    int valets=0,aces=0,flesh=1,holdRow=0,posled=1,holdFace=0;
    const int arraySize=5;
    int razdacha[arraySize];
    for(int card=1;card<=5;card++){
        for(int row=0;row<=3;row++)
            for(int column=0;column<=12;column++)
                if(wDeck[row][column]==card){
                    if(row=holdRow)
                        flesh++;
                    holdRow=row;
                    for(int a=card+1;a<=5;a++)
                        for(int i=0;i<=5;i++)
                            for(int j=0;j<=12;j++)
                                if(wDeck[i][j]==a)
                                    if(wFace[j]==wFace[column])
                                        cout<<"У вас на руках пара:"<<endl
                                            <<wFace[column]<<" масти "<<wSuit[row]<<endl
                                            <<wFace[j]<<" масти "<<wSuit[i]<<endl;
                    if(column==10)
                        valets++;
                    if(column==0)
                        aces++;
                    razdacha[card-1]=column;
                }
    }
    
    bubbleSort(razdacha,arraySize);
 
    for(int i=0;i<arraySize;i++){
        if(razdacha[i]=holdFace)
            posled++;
        holdFace=razdacha[i];
    }
 
    if(valets==3)
        cout<<"У вас на руках 3 валета"<<endl;
    if(aces==4)
        cout<<"у вас на руках 4 туза"<<endl;
    if(posled==5)
        cout<<"У вас на руках 5 карт с последовательными фигурами"<<endl;
    if(flesh==5)
        cout<<"у вас на руках флеш"<<endl;
 
}
void bubbleSort(int *array, const int size)
{
    void swap(int *,int *);
 
    for(int pass=1;pass<size;pass++)
        for(int j=0;j<size-1;j++)
            if(array[j]>array[j+1])
                swap(&array[j],&array[j+1]);
}
 
void swap(int *element1Ptr, int *element2Ptr)
{
    int temp=*element1Ptr;
    *element1Ptr=*element2Ptr;
    *element2Ptr=temp;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru