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

Игры в камушки через классы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ наследование http://www.cyberforum.ru/cpp-beginners/thread300840.html
Пытаюсь разобраться в наследовании Есть класс class File { public: struct comp { char num; // Имя переменной char st; // Значение переменной char time;
C++ Перевод с Паскаля на С++ Помогите переделать с Паскаля на С++. 1)Вывести максимальное число из файла in.txt. Листинг: Program num23; uses crt; var f1:file of integer; f2:text; n,i,a,max,imax,k:integer; http://www.cyberforum.ru/cpp-beginners/thread300833.html
C++ Цвет текста
Возник такой вопрос,возможно ли както выделение цветом выводимого текста(в консоли) ?
Выполнение кода в стеке C++
Доброго времени суток! Не могу разобратся в коде void Demo(int (*_printf) (const char *,...) ) { _printf("Hello, Word!\n"); return; } int main(int argc, char* argv) {
C++ Вывести максимальное число из файла http://www.cyberforum.ru/cpp-beginners/thread300818.html
Приветик помогите плиз - завтра нада задачку сдать - оч нада Вывести максимальное число из файла in.txt. плиз помогите!!!
C++ Скромный вопрос Подскажите пожалуйста, как можно в строке содержащей буквы и цифры определить количество цифр? подробнее

Показать сообщение отдельно
Lockiti
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 6
20.05.2011, 23:54     Игры в камушки через классы
Условие задачи: Имеются три кучки камней. Двое играющих по очереди делают ходы. Каждый ход заключается в том, что из какой-то одной кучки берется произвольное, ненулевое число камней.
Выигрывает взявший последний камень.
Требуется написать с помощью классов - отдельно класс игрока, отдельно для кучек с камнями. Обязательна инкапсуляция внутри классов.

Не по теме:

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



Добавлено через 25 секунд
Исходный код:
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
//======================================================// 
class KUCHA
{
public:
    int a[100],i,e,t;
    int n,n1,n2,n3;
 
    void intype();
    void init();
    void choosing();
 
    void input();
    void select();
    void unputed();
};
void KUCHA::select()                                //выбор количества изымаемых из кучи камней
{
    int k,m;
    cout<<"Select number of stones to put out: ";
    cin>>k;
    choosing();
    i=0;
    while (a[i]==0)
        i++;
    m=i;
    for (i=m; i<(m+k); i++)
        a[i]=0;
}
void KUCHA::choosing()                              //выбор обрабатываемой кучи
{
    int h;
    cout<<"Select kucha to use: ";
    cin>>h;
    if (h==1)
        n=n1;
    if (h==2)
        n=n2;
    if (h==3)
        n=n3;
}
void KUCHA::init()                                  //количество камней в куче
{
    int h;
    cout<<"Select kucha: ";
    cin>>h;
    cout<<"Number of ctones in kucha: ";
    if (h==1)
        cin>>n1;
    if (h==2)
        cin>>n2;
    if (h==3)
        cin>>n3;
}
void KUCHA::intype()                                //создание кучи
{
    for (i=0; i<n; i++)
        a[i]=1;
    for (i=0; i<n; i++)
        cout<<a[i]<<" ";
    cout<<endl<<"======"<<endl;
}
void KUCHA::input()                                 //вывод кучи на экран
{
    for (i=0; i<n; i++)
        cout<<a[i]<<" ";
    cout<<endl<<"Number of stones in kucha = "<<n<<endl;
}
void KUCHA::unputed()   
{   
    int t=0;
    for (i=0; i<n; i++)
        if (a[i]==1)
            t=t+1;
    cout<<"Number of lefted stones in kucha = "<<t<<endl;
    if (t==0)
        cout<<"Remember! Kucha is empty now!"<<endl;
    cout<<"======"<<endl;
}
 
//======================================================//
int main()
{   
    int h,k=1,d;
    string q;
    bool f=true;
    int p=0,p1=1,p2=2;
//==создание куч==//
    KUCHA kucha1,kucha2,kucha3; 
 
    kucha1.init();
    kucha1.choosing();
    kucha1.intype();
                        
    kucha2.init();
    kucha2.choosing();
    kucha2.intype();
                                
    kucha3.init();
    kucha3.choosing();
    kucha3.intype();
 
//==начало игры==//
    cout<<"Would you like to start the game? y/n"<<endl;
    cin>>q;
    if (q=="y")
        system("cls");
 
    cout<<"Inputing kuchas and terms befor starting:"<<endl;
        kucha1.choosing();
        kucha1.input();
        kucha1.unputed();
 
        kucha2.choosing();
        kucha2.input();
        kucha2.unputed();
 
        kucha3.choosing();
        kucha3.input();
        kucha3.unputed();
//игра//
cout<<"|||=====================================|||"<<endl;
 
cout<<"You play vs opponent. Choose your player: (1/2)"<<endl;
cin>>p;
    if (p==1)
    {
        p=p1;
        cout<<"You choose Player1. You will be named P1 next. Your oppenent is P2. You make gamestep first."<<endl;
    }
    if (p==2)
    {
        p=p2;
        cout<<"You choose Player2. You will be named P2 next. Your oppenent is P1. You make gamestep after P1."<<endl;
    }
cout<<endl<<endl;
while (f)
{
    if (k%2==1)
    {
        p=p1;
        cout<<"P1,";
    }
    if (k%2==0)
    {
        p=p2;
        cout<<"P2,";
    }
 
cout<<" make your step. Choose kucha to put out: ";
        cin>>h;
    if (h==1)
    {
        kucha1.select();
        kucha1.input();
        kucha1.unputed();
    };
    if (h==2)
    {
        kucha2.select();
        kucha2.input();
        kucha2.unputed();
    };
    if (h==3)
    {
        kucha3.select();
        kucha3.input();
        kucha3.unputed();
    };
cout<<"/=========/"<<endl;
 
cout<<"Are all kuchas empty now? y/n"<<endl;
cin>>q;
if (q=="y")
    f=false;
k++;
}
cout<<endl<<"END OF THE GAME!!!"<<endl;
d=k/2;
    if (p==p1)
    {
        cout<<"Congratulations! Player1 win the game!"<<endl;
        cout<<"Player1 made "<<d<<" steps during the game."<<endl;
    }
    if (p==p2)
    {
        cout<<"Congratulations! Player2 win the game!"<<endl;
        cout<<"Player2 made "<<d<<" steps during the game."<<endl<<endl;
    }
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru