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

Не работает вход в цикл в игре двадцать одно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритм перебора http://www.cyberforum.ru/cpp-beginners/thread322013.html
Всем доброго времени суток! Уважаемые форумчане подскажите алгоритм полного перебора, можно без кода, лишь ход действий. Конкретнее. В кармане некоторое количество монет. Какие суммы денег возможны из данного количества. Например: есть 3 монеты. Возможны варианты: 1+1+5=7 копеек, 5+10+10=25 копеек и т.п. Вынес себе весь мозг, так ниче и не придумал. Пробовал разные варианты но все не то. Если...
C++ проверьте пожалуйста! Доброе утро!Хочу показать вам не проверку свое творение.Не запускается. Вот текст ошибки: g++.exe "C:\Users\user\Desktop\Dev-Cpp\nature.cpp" -o "C:\Users\user\Desktop\Dev-Cpp\nature.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" ... http://www.cyberforum.ru/cpp-beginners/thread322005.html
прекалк C++
Доброго времени суток Знаю, что есть задачи, которые можно решить только с помощью этого прекалка. Но что это такое - найти не могу =( Просьба дать линки на какую-нибудь литературу по этой теме, либо объяснить на примере. Что он делает, примерно представляю - на олимпиадные задачи отводится определенное время, обычно 1 секунда. Иногда этого недостаточно, и в таких случаях, как я понял, пишут...
C++ указатели в с++
Здравствуйте уважаемые программисты! У меня есть одна проблема, не могу решить задачу в с++ с указателями, 5 задач в контрольной работе, 4 задачи решил, а эту не могу... не доходит.. помогите пожалуйста ее решить, все уже перепробывал... вот сама задача: "Исследовать действия процедуры delete при удалении значений целого и вещественного типов, записываемых на одно место динамической памяти ЭВМ....
C++ Произведение между мин и макс. Прога виснет :) http://www.cyberforum.ru/cpp-beginners/thread321976.html
не пойму в чём ошибка float proizv(float * a, int n){ int i, min_ind,max_ind; float pr=1,min=a,max=a; for(i=0;i<n;i++){ if(min>a){ min_ind=i; } }
C++ Запись и чтение файлов на диск и с диска НАПИСАТЬ ДВЕ ПРОГРАММЫ 1) СОЗДАНИЯ ФАЙЛА С УКАЗАННЫМИ ПОЛЯМИ И 2) СЧИТЫВАНИЕ ДАННЫХ ИЗ ФАЙЛА И ВЫВОД НА ЭКРАН МОНИТОРА В ВИДЕ ТАБЛИЦЫ, ЗАТЕМ ОПЯТЬ СЧИТАТЬ ДАННЫЕ ИЗ ФАЙЛА И ВЫПОЛНИТЬ ВЫБОРКУ ПО НЕКОТОРОМУ УСЛОВИЯ (условие придумать самостоятельно). НАПРИМЕР : считать данные из файла и вычислить средний балл по группе. ПРЕДУСМОТРЕТЬ ВОЗМОЖНОСТЬ ЗАПРОСА С КЛАВИАТУРЫ ИМЕНИ ФАЙЛА: Файл содержит... подробнее

Показать сообщение отдельно
admiral93
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 4
18.06.2011, 11:34     Не работает вход в цикл в игре двадцать одно
Программа для игры в 21. Возникла проблема в механизме досдачи карт( насколько я понял, не входит в цикл, котоый выводит новые карты и считает новый счет пользователя).

Вот текст программы :

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
#include <iostream>
#include <cstdlib>
#include <string.h>
#include <ctime>
#include <vector>
#include <conio.h>
#include <locale.h>
using namespace std;
 
enum Suit { clubs, diamonds, hearts, spades };
// от 2 до 10 обычные числа
const int jack = 11;
const int queen = 12;
const int king = 13;
const int ace = 14;
/////////////////////////////////////////////////////////////
class card
{ 
  public:
    int number;
    Suit suit;
     card ( ) // конструктор
      { }
    void set ( int n, Suit s ) // установка значения
      { suit = s; number = n; }
    void display ( );          // показ карты
};
/////////////////////////////////////////////////////////////
void card::display ( )
{
  if ( number >= 2 && number <= 10 )
    cout << number;
  else
  {
    switch ( number )
    {
      case jack: cout << 'J'; break;
      case queen: cout << 'Q'; break;
      case king: cout << 'K'; break;
      case ace: cout << 'A'; break;
    }
  }
  switch ( suit )
  {
    case clubs: cout << static_cast<char>( 5 ); break;
    case diamonds: cout << static_cast<char>( 4 ); break;
    case hearts: cout << static_cast<char>( 3 ); break;
    case spades: cout << static_cast<char>( 6 ); break;
  }
}
 
int main ( )
{
  setlocale(LC_ALL,"russian");
  card deck [ 52 ];
  int j;
 
  cout << endl;
 
  for ( j = 0; j < 52; j++ )   // создаем упорядоченную колоду карт
  { 
    int num = ( j % 13 ) + 2;
    Suit su = Suit ( j / 13 );
    deck [ j ].set ( num, su );
  }
  //тестовые строки-показываем исходную колоду
  /*cout << "Исходная колода:\n";
  for ( j = 0; j < 52; j++ )
  {
    deck [ j ].display ( );
//    cout < "  ";
//    if ( !( ( j + 1 ) % 13 ) ) // начинаем новую строку после каждой 13-й карты
      cout << endl;
  }
  srand ( time ( NULL ) );     // инициализируем генератор случайных чисел
  for ( j = 0; j < 52; j++ )
  {
    int k = rand ( ) % 52;     // выбираем случайную карту
    card temp = deck [ j ];    // и меняем ее с текущей
    deck [ j ] = deck [ k ];
    deck [ k ] = temp;
  } */
  // тестовые строки-показываем перемешанную колоду
 /* cout << "\nПеремешанная колода:\n";
  for ( j = 0; j < 52; j++ )
  {
    deck [ j ].display ( );
    cout << "  ";
  //  if ( !( ( j + 1 ) % 13 ) ) // начинаем новую строку после каждой 13-й карты
      cout << endl;
  }*/
  int userscore=0;
  int cnum=0;
  int i=0;
 
  for ( j = 0; j < 2; j++ ) //первая сдача карт игроку
  {
    deck [ j ].display ( );
    cnum= deck[j].number;
    
    if (  cnum >= 2 && cnum <= 10 )
        { 
        userscore= userscore+cnum;
        }
    else
        {
        if ( cnum == 14)
            {
                if (userscore>= 11) 
                {
                    userscore= userscore+1;
                } 
                else 
                {
                    userscore=userscore+11;
                }
            }
        else
        {
        userscore= userscore+10;
        }
        }
    cout << "  \n";
  }
 // тестовые строки
 /* cout << userscore;
  cout << "  \n";
  cout << i;*/
  char ansver[6];
  if (userscore==21) 
      cout << " Блэкджек!!!\n"; 
  else 
  {
      cout << userscore;
      cout << "\n";
      
 
      {
metka: cout << "Any or Stop?\n";
          cin >> ansver;
//        cout << ansver;
    do
      if (ansver[1]=='a' || ansver[1]=='A')
      {
          cout << "тестовое слово";
        j++;
       deck [ j ].display ( );
       cnum= deck[j].number;
    
     if (  cnum >= 2 && cnum <= 10 )
        { 
        userscore= userscore+cnum;
        }
    else
        {
        if ( cnum == 14)
            {
                if (userscore>= 11) 
                {
                    userscore= userscore+1;
                } 
                else 
                {
                    userscore=userscore+11;
                }
            }
        else
        {
        userscore= userscore+10;
        }
        }
    cout << "  \n";
    if (userscore==21) 
    {cout << " Блэкджек!!!\n";
    }
    else
    {if (userscore>21)
    cout << "вы проиграли";
    else {goto metka;}
    };
  }
      while (ansver[1]=='s' || ansver[1]=='S');
      }
      getch();
      return (0);
  }
  }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru