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

Игра "Спички" на С++ - C++

Восстановить пароль Регистрация
 
Burkova
Сообщений: n/a
17.06.2013, 12:38     Игра "Спички" на С++ #1
Пусть дана кучка, первоначально содержащая множество спичек, двое играющих поочередно берут по нескольку спичек: не менее одной и не более десяти. Проигрывает игрок, взявший последнюю спичку.
В данной игре необходимо предусмотреть возможность игры человек-человек, человек-машина, машина-машина.
Требования:
1) Текст вспомогательного меню должен быть выведен из файла;
2) Дружественный интерфейс игры;
3) Цвет фона игры не должен быть черным;
4) Меню, делающее управление игрой более удобным.
Не знаю как делать
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
17.06.2013, 13:49     Игра "Спички" на С++ #2
Я не думаю, что такую игру вообще возможно создать.
Maksig
4 / 4 / 0
Регистрация: 26.02.2013
Сообщений: 24
17.06.2013, 15:31     Игра "Спички" на С++ #3
Привет все, не думаю что она будет интересно кому нибудь, поменяй логику игры.
MastAKK
 Аватар для MastAKK
144 / 135 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
17.06.2013, 15:39     Игра "Спички" на С++ #4
Для GUI (если хотите её сделать с графикой+интернетом) посоветую Qt.
Ну, как делать? Создайте массив (предположим булевый) спичек, заполните его значениями true, далее по очереди игроки вытаскивают спички, и столько элементов принимают значение false. Если ход перешел к игроку, а массив полностью заполнен false, победил другой игрок. Можно так.

Добавлено через 1 минуту
А все дополнительные штуки (всплывающее меню, интерфейс) - уже к GUI API.
Как я уже говорил - попробуйте Qt, но можно и wxWidgets (но я ним дело не имел, ничего про него сказать не могу).
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
17.06.2013, 16:46     Игра "Спички" на С++ #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
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
#include <iostream.h>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
 
const short int TC1 = 2;
const short int TC2 = 4;
const short int BC = 15;
 
//---------------------------------------------------------------------------
void SetColor(int text, int background)
{
        HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
//---------------------------------------------------------------------------
 
void Destiny(int NumColorRow)
{
SetColor(TC1, BC);
system("cls");
cout << "Choose your destiny:" << endl;
if(NumColorRow==0) SetColor(TC2, BC); else SetColor(TC1, BC);
  cout << "One player." << endl;
if(NumColorRow==1) SetColor(TC2, BC); else SetColor(TC1, BC);;
  cout << "Corporate!" << endl;
if(NumColorRow==2) SetColor(TC2, BC); else SetColor(TC1, BC);;
  cout << "God mode!!!";
}
//---------------------------------------------------------------------------
bool Take(std::string NamePlayer, int *numbFireSticks);
 
//---------------------------------------------------------------------------
int main()
{
int fireSticksCount;
int iKey = 0;
enum PlayMode
  {
  Single,
  Double,
  Trible
  };
 
cout << "How old you:";
cin >> fireSticksCount;
system("cls");
 
 
int nRow = 0;
Destiny(nRow);
while(iKey!=13)
  {
  iKey = getch();
 
  switch(iKey)
    {
    case 72 : if(nRow>0){nRow--;} break; //Вверх
    case 80 : if(nRow<2){nRow++;} break; //Вниз
    case 13 : iKey = 13; break;
    }
  Destiny(nRow);
  }
system("cls");
 
for(int i=/*INT_MAX*/4000; i>0; i--)
  {
  cout << "Are you mad?!";
  SetColor(TC1, i);
  }
SetColor(TC1, BC);
system("cls");
 
 
 
bool WhoCare = true;
std::string NamePlayer;
 
switch(nRow)
  {
  case(Single): { cout << "You walk through the woods and suddenly die.";
                  cout << " But death take you just boring and it offers ";
                  cout << "you to play a game, where the rate of your life!" << endl << endl;
                  Sleep(4000);
 
                while(fireSticksCount>0)
                  {
                  if(WhoCare) NamePlayer = "You";
                  else NamePlayer = "Death";
                  WhoCare = !WhoCare;
 
                    if(!Take(NamePlayer, &fireSticksCount))
                      cout << NamePlayer << " lose!";
                  }
                break;
                }
  case(Double): { cout << "Are you a big two-headed ogre, and you're bored. ";
                  cout << "The only thing that you have to have the brains to ";
                  cout << "play it with himself in the Lucifer match." << endl << endl;
                  Sleep(4000);
 
                while(fireSticksCount>0)
                  {
                  if(WhoCare) NamePlayer = "Left Head";
                  else NamePlayer = "Right Head";
                  WhoCare = !WhoCare;
 
                    if(!Take(NamePlayer, &fireSticksCount))
                      cout << NamePlayer << " lose!";
                  }
                break;
                }
  case(Trible): { cout << "You hit her head slipped while trying to light a ";
                  cout << "fire and see in front of two people: a gray-haired ";
                  cout << "old man in white robes and gnarled bad geezer in ";
                  cout << "tatters. They play in something." << endl << endl;
                  Sleep(4000);
 
                while(fireSticksCount>0)
                  {
                  if(WhoCare) NamePlayer = "God";
                  else NamePlayer = "Satan";
                  WhoCare = !WhoCare;
 
                    if(!Take(NamePlayer, &fireSticksCount))
                      cout << NamePlayer << " lose!";
                  }
                break;
                }
  }
 
 
getch();
//cin.ignore(2);
return 0;
}
//---------------------------------------------------------------------------
bool Take(std::string NamePlayer, int *numbFireSticks)
{               int numb;
                while(true)
                  {
                  cout << "In the stack are " << *numbFireSticks << " items." << endl;
                  cout << NamePlayer << ", please, take a few fire sticks: ";
                  if(NamePlayer =="You" ||
                     NamePlayer =="Left Head" || //two-headed
                     NamePlayer =="Right Head")
                    cin >> numb;
                  else
                    {
                    Sleep(rand()%666);
                    numb = rand()%30-5;
                    cout << numb << endl;
                    }
 
                  if(numb<1) cout << endl << NamePlayer << " ssiklo! " << endl;
                  if(numb>10) cout << endl << NamePlayer << " jadina! " << endl;
                  if(numb>0 && numb<11)
                    {
                    *numbFireSticks -= numb;
                    break;
                    }
                  }
if(*numbFireSticks>0)
  return true;
else
  return false;
}
//---------------------------------------------------------------------------
Yandex
Объявления
17.06.2013, 16:46     Игра "Спички" на С++
Ответ Создать тему
Опции темы

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