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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
виталий22.01
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 4
#1

Быки и коровы. Комментарии к коду. - C++

26.12.2012, 19:58. Просмотров 2184. Ответов 15
Метки нет (Все метки)

Нужно прокомментировать программу на языке с++ Игра Быки и Коровы. Чем подробнее тем лучше. Заранее спасибо!

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
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <time.h>
#include < iostream > 
 
using namespace std;
class Bik
{
public:
    char my[4];
    int b;
    int k;
    bool is_valid(char a[4],int size,char c)
    {
        int no=size;
        for (int i=0;i<size;i++)
            if (a[i]!=c)
                no--;
        if (!no)
            a[size]=c;
        return !no;
    }
public: void PravilaandPrevetstvie()
    {
        cout<<"Вас приветствует игра Бики и Коровы!\n";
        cout<<"Правила:\n"<<"Вам необходимо угадать четырёхзначное число загаданное компьютером, совершив как можно меньше попыток\n"<<"Цифры в числе не повторяются.\n\n";
        cout<<"Вводите цифры последовательно без пробелов. При каждой попытке вам будет выдано сообщение об угаданных цифрах:\n\n";
        cout<<"- Если цифры заданного вами числа встречаются в загаданном, но стоят не на свойх местах, их колличество будет указанно, как колличество Коров.\n\n";
        cout<<"- Если цифры заданного вами числа встречаются в загаданном, и стоят не на свойх местах, их колличество будет указанно, как колличество Быков.\n\n";
        cout<<"Игра длиться до тех пор, пока колличество быков не станет 4, т.е. введённое вами число полностью не совпадёт с загаданным.\n\n";
        cout<<"Желаем удачи!\n";
        cout<<"\n";
    }
public: void getBik() 
        {int digits=0;
        char numbers[11]="0123456789";
        srand( (unsigned)time( NULL ) );
        while (digits<4)
            if (is_valid(my,digits,numbers[rand()%9+1]))
                digits++;
        PravilaandPrevetstvie();
        printf("загаданное число %c%c%c%c\n",my[0],my[1],my[2],my[3]);
 
        char enter[4],c(' '); int w=1;
        b=k=digits=0;
        printf("Введите число\n");
        while (c != 'q' && c != 'Q')
            if (isdigit(c=_getch()))
                if (is_valid(enter,digits,c))
                {
                    printf("%c",c);
                    for (int i=0;i<4;i++)
                        if (my[i]==c) 
                            if (i==digits)
                            { b++; }
                            else
                            { k++;}
                            digits++; 
 
 
                            if (digits==4)
                            {
                                printf("\t\tКол-во быков - %d\n \t\tКол-во коров - %d\n\n",b,k);
                                if(b!=4){w++;}
                                if (b==4){
                                    printf("Поздравляем! Вы угадали!\n");
                                    cout<<"Кол-во попыток - "<<w;
                                    break;
                                }
                                b=k=digits=0;
                            }
                }
                printf("\nНажмите любую клавишу\n");
                _getch();
        }
};
Bik pr;
 
 
int main()
{setlocale (LC_ALL, "Russian");
 
pr.getBik();
 
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2012, 19:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Быки и коровы. Комментарии к коду. (C++):

Быки и коровы - C++
Есть такая задача быки о коровы. Условие: http://********/?main=task&amp;id_task=13. Код моего решения: #include &lt;fstream&gt; #include...

Быки и коровы - C++
1. В чём разница между структурой и классом, зачем использовать структуру? 2. Зачем нужны структуры pair и four? 3. Что такое inline и...

Быки и коровы - C++
Решил написать игру Быки и коровы, но уже в самом начале появились проблемы. я сделал функцию, которая считает количество быков, т.е....

Игра: Быки и Коровы - C++
Всем привет! Нужно написать игру &quot;Быки и коровы&quot;, но без массива :) Я справился с поставленной задачей, но есть баг... Если компьютер...

Игра быки и коровы - C++
Условия игры: компьютер генерирует целое четырехзначное число, в котором все цифры раз-личны. Играющий пытается угадать это число, делая...

Быки и коровы, не правильно считает их - C++
Не правильно считает быков и коров, помогите пожалуйста #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;cstdlib&gt; // rand() ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.12.2012, 20:12 #2
Кто теги будет расставлять? Билл?
1
Foksmen
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 6
26.12.2012, 20:13 #3
#include < iostream >// старая функция сечас неиспользуют
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
26.12.2012, 20:15 #4
Цитата Сообщение от Foksmen Посмотреть сообщение
#include < iostream >// старая функция сечас неиспользуют
Да ладно. Кто сказал?
0
HighPredator
5542 / 1848 / 345
Регистрация: 10.12.2010
Сообщений: 5,455
Записей в блоге: 2
26.12.2012, 20:15 #5
Цитата Сообщение от Foksmen Посмотреть сообщение
#include < iostream >// старая функция сечас неиспользуют
Что за глупость?
0
Foksmen
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 6
26.12.2012, 20:16 #6
Цитата Сообщение от David Sylva Посмотреть сообщение
Да ладно. Кто сказал?
наш програмист говорил чтоб ее неиспользували
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.12.2012, 20:17 #7
Цитата Сообщение от David Sylva Посмотреть сообщение
Кто сказал?
глупец.
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
26.12.2012, 20:18 #8
Цитата Сообщение от Foksmen Посмотреть сообщение
наш програмист говорил чтоб ее неиспользували
Это возмутительная ложь.
0
виталий22.01
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 4
26.12.2012, 20:20  [ТС] #9
Друзья мне нужно закоментить программу.(т.е. написать подробнее, что как работает, по шагам) Заранее спасибо!
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.12.2012, 20:23 #10
Закоментить - это заблокировать путём превращения в комментарий, то есть
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
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <time.h>
#include < iostream > 
 
using namespace std;
class Bik
{
public:
    char my[4];
    int b;
    int k;
    bool is_valid(char a[4],int size,char c)
    {
        int no=size;
        for (int i=0;i<size;i++)
            if (a[i]!=c)
                no--;
        if (!no)
            a[size]=c;
        return !no;
    }
public: void PravilaandPrevetstvie()
    {
        cout<<"Вас приветствует игра Бики и Коровы!\n";
        cout<<"Правила:\n"<<"Вам необходимо угадать четырёхзначное число загаданное компьютером, совершив как можно меньше попыток\n"<<"Цифры в числе не повторяются.\n\n";
        cout<<"Вводите цифры последовательно без пробелов. При каждой попытке вам будет выдано сообщение об угаданных цифрах:\n\n";
        cout<<"- Если цифры заданного вами числа встречаются в загаданном, но стоят не на свойх местах, их колличество будет указанно, как колличество Коров.\n\n";
        cout<<"- Если цифры заданного вами числа встречаются в загаданном, и стоят не на свойх местах, их колличество будет указанно, как колличество Быков.\n\n";
        cout<<"Игра длиться до тех пор, пока колличество быков не станет 4, т.е. введённое вами число полностью не совпадёт с загаданным.\n\n";
        cout<<"Желаем удачи!\n";
        cout<<"\n";
    }
public: void getBik() 
        {int digits=0;
        char numbers[11]="0123456789";
        srand( (unsigned)time( NULL ) );
        while (digits<4)
            if (is_valid(my,digits,numbers[rand()%9+1]))
                digits++;
        PravilaandPrevetstvie();
        printf("загаданное число %c%c%c%c\n",my[0],my[1],my[2],my[3]);
 
        char enter[4],c(' '); int w=1;
        b=k=digits=0;
        printf("Введите число\n");
        while (c != 'q' && c != 'Q')
            if (isdigit(c=_getch()))
                if (is_valid(enter,digits,c))
                {
                    printf("%c",c);
                    for (int i=0;i<4;i++)
                        if (my[i]==c) 
                            if (i==digits)
                            { b++; }
                            else
                            { k++;}
                            digits++; 
 
 
                            if (digits==4)
                            {
                                printf("\t\tКол-во быков - %d\n \t\tКол-во коров - %d\n\n",b,k);
                                if(b!=4){w++;}
                                if (b==4){
                                    printf("Поздравляем! Вы угадали!\n");
                                    cout<<"Кол-во попыток - "<<w;
                                    break;
                                }
                                b=k=digits=0;
                            }
                }
                printf("\nНажмите любую клавишу\n");
                _getch();
        }
};
Bik pr;
 
 
int main()
{setlocale (LC_ALL, "Russian");
 
pr.getBik();
 
return 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
/*#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <time.h>
#include < iostream > 
 
using namespace std;
class Bik
{
public:
    char my[4];
    int b;
    int k;
    bool is_valid(char a[4],int size,char c)
    {
        int no=size;
        for (int i=0;i<size;i++)
            if (a[i]!=c)
                no--;
        if (!no)
            a[size]=c;
        return !no;
    }
public: void PravilaandPrevetstvie()
    {
        cout<<"Вас приветствует игра Бики и Коровы!\n";
        cout<<"Правила:\n"<<"Вам необходимо угадать четырёхзначное число загаданное компьютером, совершив как можно меньше попыток\n"<<"Цифры в числе не повторяются.\n\n";
        cout<<"Вводите цифры последовательно без пробелов. При каждой попытке вам будет выдано сообщение об угаданных цифрах:\n\n";
        cout<<"- Если цифры заданного вами числа встречаются в загаданном, но стоят не на свойх местах, их колличество будет указанно, как колличество Коров.\n\n";
        cout<<"- Если цифры заданного вами числа встречаются в загаданном, и стоят не на свойх местах, их колличество будет указанно, как колличество Быков.\n\n";
        cout<<"Игра длиться до тех пор, пока колличество быков не станет 4, т.е. введённое вами число полностью не совпадёт с загаданным.\n\n";
        cout<<"Желаем удачи!\n";
        cout<<"\n";
    }
public: void getBik() 
        {int digits=0;
        char numbers[11]="0123456789";
        srand( (unsigned)time( NULL ) );
        while (digits<4)
            if (is_valid(my,digits,numbers[rand()%9+1]))
                digits++;
        PravilaandPrevetstvie();
        printf("загаданное число %c%c%c%c\n",my[0],my[1],my[2],my[3]);
 
        char enter[4],c(' '); int w=1;
        b=k=digits=0;
        printf("Введите число\n");
        while (c != 'q' && c != 'Q')
            if (isdigit(c=_getch()))
                if (is_valid(enter,digits,c))
                {
                    printf("%c",c);
                    for (int i=0;i<4;i++)
                        if (my[i]==c) 
                            if (i==digits)
                            { b++; }
                            else
                            { k++;}
                            digits++; 
 
 
                            if (digits==4)
                            {
                                printf("\t\tКол-во быков - %d\n \t\tКол-во коров - %d\n\n",b,k);
                                if(b!=4){w++;}
                                if (b==4){
                                    printf("Поздравляем! Вы угадали!\n");
                                    cout<<"Кол-во попыток - "<<w;
                                    break;
                                }
                                b=k=digits=0;
                            }
                }
                printf("\nНажмите любую клавишу\n");
                _getch();
        }
};
Bik pr;
 
 
int main()
{setlocale (LC_ALL, "Russian");
 
pr.getBik();
 
return 0;
}*/
.
1
Agent Smith
40 / 40 / 9
Регистрация: 24.11.2012
Сообщений: 200
26.12.2012, 20:24 #11
Цитата Сообщение от виталий22.01 Посмотреть сообщение
Если цифры заданного вами числа встречаются в загаданном, но стоят не на свойх местах, их колличество будет указанно, как колличество Коров
Если цифры заданного вами числа встречаются в загаданном, и стоят не на свойх местах, их колличество будет указанно, как колличество Быков
так в чем разница?
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
26.12.2012, 20:25 #12
taras atavin я думаю, ты не совсем понял суть вопроса. Имеется ввиду за комментировать каждую строчку, объяснить, что к чему.
1
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.12.2012, 20:26 #13
А
Цитата Сообщение от виталий22.01 Посмотреть сообщение
(т.е. написать подробнее, что как работает, по шагам)
- это прокомментировать. Закомментировать - это превратить то, что есть в коменнтарий, прокомментировать - это добавить комментарии к тому, что есть. Вся разница в приставке, а какой эффект.
1
виталий22.01
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 4
26.12.2012, 20:29  [ТС] #14
мне нужны Коментарии, к строчкам программы, в частности (// и комментарий) чтоб было понятно, как работают, циклы, какие условия выполняются и т.д. Заранее спасибо!
0
HighPredator
5542 / 1848 / 345
Регистрация: 10.12.2010
Сообщений: 5,455
Записей в блоге: 2
26.12.2012, 20:30 #15
Товарищи, прекращаем оффтоп.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2012, 20:30
Привет! Вот еще темы с ответами:

Задача про вектор для игры "Быки и коровы" - C++
Задача из книги Страуструпа, вот условие : программа должна хранить вектор из четырех различных чисел в диапазоне от 0 до 9 (т.е.,...

Ошибка в коде игры "Быки и коровы" - C++
#include &lt;iostream&gt; #include &quot;Game.h&quot; using namespace std; Game::Game() { com; per; } Game:: ~Game() { delete per; ...

Функция для игры "быки и коровы" - C++
Помогите составить код для С++, для раздела Функции. сама задача Компьютер задумывает четырехзначное число, не содержащее двух...

Алгоритм игры "Быки и коровы" - C++
Игра &quot;Быки и коровы&quot;. Вы загадываете пятизначное число. Программа дает Вам другое четырехзначное число. Вы отвечаете, сколько цифр в числах...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.12.2012, 20:30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru