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

Быки и коровы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
sancho1996
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 55
25.07.2013, 21:51     Быки и коровы #1
1. В чём разница между структурой и классом, зачем использовать структуру?
2. Зачем нужны структуры pair и four?
3. Что такое inline и зачем их использовать?
4. Что значит строчка game(): m_attempts( 0 ) ?

помогите ответить на вопросы пожжжж быстреее!!!

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
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <conio.h>
using namespace std;
 
namespace bullscows
{
        struct pair
        {
                int  bulls;
                int  cows;
        };
 
        struct four
        {
                int  a;
                int  b;
                int  c;
                int  d;
        };
 
        class game
        {
        private:
 
                four  m_f;
                mutable int  m_attempts;
 
                inline bool  isExist( int  x ) const
                {
                  return  ( x == m_f.a || x == m_f.b || x == m_f.c || x == m_f.d );
                }
 
        public:
 
                game(): m_attempts( 0 )
                {
                }
 
                int  getAttempts() const
                {
                  return  m_attempts;
                }
 
                pair  guess( const four  & f ) const
                {
                  ++m_attempts;
                  pair p;
                  p.bulls = int( f.a == m_f.a ) + int( f.b == m_f.b ) + int( f.c == m_f.c ) + int( f.d == m_f.d );
                  p.cows  = isExist( f.a ) + isExist( f.b ) + isExist( f.c ) + isExist( f.d );
                  return  p;
                }
 
                game &  newGame()
                {
                  m_f.a = rand()%9, m_f.b = rand()%9, m_f.c = rand()%9, m_f.d = rand()%9;
                  m_attempts = 0;
                  return  ( * this );
                }
 
        };
 
}
 
void  run( const bullscows::game  & game )
{
  bullscows::pair  p;
  bullscows::four  f;
 
  do
  {
    cout << "Enter a, b, c, d:" << endl;
    cin >> f.a;
    if( static_cast< int >( log10( static_cast< double >( f.a ) ) ) == 3 )
    {
      f.d = f.a % 10, f.c = f.a / 10 % 10, f.b = f.a / 100 % 10, f.a /= 1000;
    } else
    {
      cin >> f.b >> f.c >> f.d;
    }
    p = game.guess( f );
    cout << "bulls: " << p.bulls << ", cows: " << p.cows << endl;
  } while( p.bulls != 4 );
  cout << "congratulation you win! you use " << game.getAttempts() << " attempts." << endl;
}
 
 
int  main()
{
 srand(time(0));
 cout << "Bulls & Cows" <<endl;
  int key = 0;
 
  bullscows::game  bc;
  do
  {
    run( bc.newGame() );
    cout << "Press any key to continue or Esc to Exit..." << endl;
 
    if( (key = getch()) == 0 )key = getch();
  } while( key != 27 );
  getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2013, 21:51     Быки и коровы
Посмотрите здесь:

C++ [C++] подскажите Алгоритм игры "быки и коровы"
C++ Быки и коровы
C (СИ) Быки и коровы
Быки и коровы C++
Быки и коровы, не правильно считает их C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
25.07.2013, 21:59     Быки и коровы #2
Цитата Сообщение от sancho1996 Посмотреть сообщение
4. Что значит строчка game(): m_attempts( 0 ) ?
переменная m_attempts инициализируется значением 0.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
25.07.2013, 22:01     Быки и коровы #3
Цитата Сообщение от sancho1996 Посмотреть сообщение
1. В чём разница между структурой и классом, зачем использовать структуру?
2. Зачем нужны структуры pair и four?
3. Что такое inline и зачем их использовать?
4. Что значит строчка game(): m_attempts( 0 ) ?
1. Принципиальной разницы нет. В структуре все поля по умолчанию публичные, в классе - приватные.
Структуры были оставлены для совместимости с кодом написанным на Си.
2. Можно заменить ими некоторые структуры.
3. Inline подставляет всё тело функции в код, тем самым избегая затрат на вызов функции.
Подходит для небольших и не рекурсивных функций.
4. Конструктор со списком инициализации.
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
25.07.2013, 23:31     Быки и коровы #4
Цитата Сообщение от SummerRain Посмотреть сообщение
1. Принципиальной разницы нет. В структуре все поля по умолчанию публичные, в классе - приватные.
Извените поправлю в классах по умолчанию protected)) тоесть доступ ограничен всем кроме наследников и дружевственных
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.07.2013, 23:33     Быки и коровы #5
Цитата Сообщение от alex1392 Посмотреть сообщение
Извените поправлю в классах по умолчанию protected))
уверен?
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
25.07.2013, 23:36     Быки и коровы #6
Цитата Сообщение от Jupiter Посмотреть сообщение
уверен?
неа сори ((( прогнал ) удалите мой флуд ___)))
Yandex
Объявления
25.07.2013, 23:36     Быки и коровы
Ответ Создать тему
Опции темы

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