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

Моделирование тасования карт в колоде - C++

Восстановить пароль Регистрация
 
Pozitiv
0 / 0 / 0
Регистрация: 11.04.2012
Сообщений: 10
30.05.2012, 16:43     Моделирование тасования карт в колоде #1
Помогите мне пожалуйста додумать программу,завтра надо срочно сдать
Задание:Составить программу, моделирующую тасование карт в колоде. Принять количество карт равным 52. После тасования раздается 5 карт. Требуется определить, находится ли на руках две запрошенные карты.

програмка работает,только она не запрашивает две карты,помогите пожалуйста

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
#include <conio.h>
#include <iostream>
#include <time.h>
#include <string>
#include <stdlib.h>
using namespace std;
 
typedef struct {
int value; // znacheniye karti // 2 = 2; 13 - korol; 14 - tuz
int mast; // mast karti
} KOLODA;
 
int GetRand(int min, int max)
{
return (double)rand()/(RAND_MAX+1)*((max+1)-min)+min;
}
 
string sopost(int value,int mast)
{
string str = "";
switch (value)
{
case 11:
str+="J";
break;
case 12:
str+="Q";
break;
case 13:
str+="K";
break;
case 14:
str+="A";
break;
default:
char *temp = new char[10];
itoa(value,temp,10); // ??????????? int ? char*
str+=temp;
break;
 
}
switch (mast)
{
case 0:
str+=" chervi";
break;
case 1:
str+=" bubni";
break;
case 2:
str+=" piki";
break;
case 3:
str+=" kresti";
break;
}
return str;
}
 
int ret_int_mast(string mast)
{
if (mast=="chervi")
return 0;
else if (mast=="bubni")
return 1;
else if (mast=="piki")
return 2;
else if (mast=="kresti")
return 3;
else return 99; // 99 - ??? ??????
}
 
int ret_int_value(string value)
{
if (value=="J")
return 11;
else if (value=="Q")
return 12;
else if (value=="K")
return 13;
else if (value=="A")
return 14;
else if (value=="2"||value=="3"||value=="4"||value=="5"||value=="6"||value=="7"||value=="8"||value=="9"||value=="10")
return atoi(value.c_str()); // ?? char* ? int
else return 99; // 99 - ??? ??????
}
 
int main()
{
srand((unsigned)time( NULL )); // chtobi rabotat s rand()
KOLODA *kol = new KOLODA[52];
int y = 0;
for (int i=2;i<15;i++) // i - znacheniye karti
for (int j=0;j<4;j++) // j - mast karti
{
KOLODA kk;
kk.value = i;
kk.mast = j;
kol[y] = kk;
y++;
}
 
for (int i=0;i<52;i++) // ?????????????
swap(kol[i],kol[GetRand(0,51)]); // ?????? ??????? ??????? ?? ?????????
 
KOLODA *gamer_1 = new KOLODA[5];
int end_elem = 51;
for (int i=0;i<5;i++)
{
int u;
u = GetRand(0,end_elem); // vibirayem indeks sluchainoi karti is kolodi
gamer_1[i] = kol[u]; // dayem ee pervomu igroku
kol[u].value = -1; // izvlekayem ee iz kolodi (stavim znacheniye karti =-1)
KOLODA temp = kol[end_elem]; // menyaem izvlechennujy kartu s samoy posledney v kolode
kol[end_elem] = kol[u];
kol[u] = temp;
end_elem--; // kolichestvo kart v kolode stalo na 1 menshe
}
cout<<"Na rukah: "<<endl;
for (int i=0;i<5;i++)
cout<<sopost(gamer_1[i].value,gamer_1[i].mast)<<endl;
cout<<endl;
 
cout<<"Ukazite 2 karti:"<<endl;
string mast1 = "";
string val1 = "";
cout<<"First: ";
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 16:43     Моделирование тасования карт в колоде
Посмотрите здесь:

Цикл for и 56 карт C++
Моделирование раздачи карт C++
Колода карт C++
C++ Как раздать по 5 карт
Массив карт C++
Колода карт C++
Клас колода карт C++
C++ Генерация набора карт

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru