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

На основе классов реализовать карточную игру Блэк-Джек - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение памяти не возможно http://www.cyberforum.ru/cpp-beginners/thread1046799.html
Начал изучаться ООП получил лабораторную, программа заупускается и на вводе размерности матрицы появляется ошибка. Табличка которая выходит после ввода размерности приложена. #include <iostream>...
C++ В матрице переставить строки в порядке убывания количества отрицательных чисел в строке Пожалуйста помогите написать программу! В матрице В переставить строки в порядке убывания количества отрицательных чисел в строке. http://www.cyberforum.ru/cpp-beginners/thread1046794.html
Длинное целое 100 дес знаков инициализировать C++
Длинное целое 100 дес. знаков. инициализировать себя из 1) строки символов 2)целого 3)уметь +=, -=, ==, != 4) уметь выводить себя в поток помогите пожалуйста написать, с комментариями (С++)
C++ Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны
Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны. Решить при помощи сдвига элементов. Помогите пожалуйста.
C++ 16-ричная система http://www.cyberforum.ru/cpp-beginners/thread1046772.html
всем привет. помогите составить логическую функцию которая определяет для одного числа(в 10 ричной системе). состоит ли оно полностью из букв в 16ричной системе
C++ марицы Составить следующие функции с матрицей. 1) функцию, которая для одного целого числа (не для одномерного массива и не для матрицы) определяет, является ли оно кратным числу К, где К и анализируемое... подробнее

Показать сообщение отдельно
vitalu
3 / 3 / 1
Регистрация: 25.06.2013
Сообщений: 51
18.12.2013, 16:52  [ТС]
Написал вот так, все работает, но думаю есть вариант намного проще, подскажите пожалуйста......
Не судите строго, только учусь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Card.h
#pragma once
static int index=1;
class Card
{
public:
    Card(int);
    ~Card();
    void Sort();
    int Rozd();
    int RozdBank(); 
    int Symma(int);
    int Symma();
    int SymmaBank(int);
    int SymmaBank();
private:
    
    int KolKart;
    int Mast[4];
    int* Dost;
    int *Kploda[4];
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
//Card.cpp
#include<iostream>
#include"Card.h"
using namespace std;
static int summa=0;
static int summabank = 0;
Card::Card(int kol){
    KolKart = kol;
    for(int i = 0; i<4; i++){
        Mast[i] = i+3;
    }   
    Dost = new int[kol / 4];
    for(int i = 0; i<(kol / 4); i++){
        Dost[i] = (kol / 4 == 13)? i+2 : i+6;
    }
    
    for(int i = 0; i<4; i++){
        Kploda[i] = new int [kol / 4];
    }
    for(int i = 0; i<4; i++){
        for(int j = 0; j<(kol / 4); j++){
            Kploda[i][j] = 0;
        }
    }   
}
Card::~Card(){
    delete[]Dost;
    for(int i = 0; i<4; i++)
        delete[]Kploda[i];  
}
void Card::Sort(){
    int m, n;
    for(int karta = 1; karta<=KolKart; karta++){
        m = rand()%4;
        n = rand()%13;
        while(Kploda[m][n]!=0){
            m = rand()%4;
            n = rand()%13;
        }
        Kploda[m][n] = karta;       
    }
}
int Card::Rozd(){
    int a;  
        for(int j = 0; j<=3; j++){
            for(int k = 0; k<=12; k++){
                if(Kploda[j][k]==index){
                    cout<<" "<<(char)Mast[j]<<" - ";    
                    a = Dost[k];
                    if(Dost[k]<=10)
                    cout<<Dost[k]<<endl;
                    else{
                        switch(Dost[k]){
                        case 11:
                            cout<<"J"<<endl;
                            break;
                        case 12:
                            cout<<"Q"<<endl;
                            break;
                        case 13:
                            cout<<"K"<<endl;
                            break;
                        case 14:
                            cout<<"A"<<endl;
                            break;
                        }
                    }
                }
            }           
        }   
    Symma(a);
    index++;
    return 0;
}
int Card::Symma(int a){
    
    if(a<=10)
        return summa+=a;
    else if(a==14)
        return summa+=11;
    else
        return summa+=10;
}
int Card::Symma(){
    return summa;
}
int Card::RozdBank(){
    int a;  
        for(int j = 0; j<=3; j++){
            for(int k = 0; k<=12; k++){
                if(Kploda[j][k]==index){
                    cout<<" "<<(char)Mast[j]<<" - ";
                    a = Dost[k];
                    if(Dost[k]<=10)
                    cout<<Dost[k]<<endl;
                    else{
                        switch(Dost[k]){
                        case 11:
                            cout<<"J"<<endl;
                            break;
                        case 12:
                            cout<<"Q"<<endl;
                            break;
                        case 13:
                            cout<<"K"<<endl;
                            break;
                        case 14:
                            cout<<"A"<<endl;
                            break;
                        }
                    }
                }
            }           
        }   
    SymmaBank(a);
    index++;
    return 0;
}
int Card::SymmaBank(int a){
    
    if(a<=10)
        return summabank+=a;
    else if(a==14)
        return summabank+=11;
    else
        return summabank+=10;
}
int Card::SymmaBank(){
    return summabank;
}
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
//main.cpp
#include<iostream>
#include"Card.h"
#include<time.h>
using namespace std;
 
void main(){
    srand((unsigned)time(NULL));    
    Card A(52);
    A.Sort();
    cout<<"Igrok\n";
    for(int i=1; i<=2; i++)
      A.Rozd();
    cout<<"Summa = "<<A.Symma()<<endl;
    cout<<"Bank\n";
    A.RozdBank();
    do{
        if(A.Symma()<21){
            cout<<"Vzat kartu (1) Stop (0) __ ";
            cin>>index;         
                if(index){
                    cout<<"Igrok\n";
                    A.Rozd();
                    cout<<"Summa = "<<A.Symma()<<endl;
                    if(A.Symma()==21){
                        cout<<"BLECK JACK\n";                       
                    }
                    else if(A.Symma()>21){
                        cout<<"Perebor\n";
                        cout<<"POBEDIL BANCK\n";
                    }
                }
                else{
                    do{
                            cout<<"Bank\n";
                            A.RozdBank();
                        if(A.SymmaBank()==21){
                            cout<<"Summa Banka = "<<A.SymmaBank()<<endl;
                            cout<<"BLECK JACK\n";
                        }
                        else if(A.SymmaBank()>21){
                            cout<<"Banck Perebor\n";
                            cout<<"Summa Banka = "<<A.SymmaBank()<<endl;
                            cout<<"POBEDIL IGROK\n";
                        }
                        else
                            cout<<"Summa Banka = "<<A.SymmaBank()<<endl;
                        }while(A.SymmaBank()<17);
                }
        }       
    }while(index&&A.Symma()<21);
 
    if(A.Symma()<=21 && A.Symma()>A.SymmaBank() )
        cout<<"POBEDIL IGROK\n";
    if(A.SymmaBank()<=21 && A.SymmaBank()>A.Symma() )
        cout<<"POBEDIL BANCK\n";
    if(A.SymmaBank()<=21 && A.Symma()<=21 && A.SymmaBank()==A.Symma())
        cout<<"ROVNO\n";
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru