0 / 0 / 3
Регистрация: 17.12.2014
Сообщений: 111
1

Отобразить взрыв мины в сапере определенным символом

21.01.2015, 15:47. Показов 495. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть вот такой код (урезанная версия сапера на 3 мины.)
Необходимо вставить условие при котором взрыв на мине будет обозначаться
C++
1
cout << char(0x23);
а код вот.
не могу понять куда влепить.((

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
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void main()
{
    srand((int)time(0));
    int a[5][5] = { 0 };
    int mines = 0, x, y, count;
    do
    {
        x = rand() % 5;
        y = rand() % 5;
        if (a[y][x] == 0)
        {
            a[y][x] = 1;
            ++mines;
        }
 
    } while (mines<3);
    do
    {
        count = 0;
        system("cls");
        for (int i = 0; i < 5; ++i)
        {
 
            for (int j = 0; j < 5; ++j)
            {
                if (a[i][j] == 2)
                {
                    cout << char(0xDB);
                    ++count;
                }
                else
                    cout << char(0xB1);
 
            }
 
            cout << '\n';
        }
        if (count == 22)
            break;
        cout << "input x :";
        cin >> x;
        cout << "input y :";
        cin >> y;
        if (x >= 0 && y >= 0 && x<5 && y<5)
            if (a[y][x] == 1)
                break;
            else
                a[y][x] = 2;
 
    } while (1);
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2015, 15:47
Ответы с готовыми решениями:

Определить текст, находящийся за определенным символом
например: есть текст 'сегодня будет холодно!' надо определить, какой текст находится после слова...

Нахождение слов с определённым символом в строке
Уже не первый раз задаю вопрос с таким заданием, но уже вторую неделю ничего не выходит....

Перемешать значения в строке, разделенные определенным символом
Здравствуйте. Есть код такого плана: var test = (Таня|Оля|Катя|Даша) Мне надо перемешать эти...

Можно ли производить Clear над определенным символом, строкой ?
Люди, вот к примеру есть консольное приложение, там я поставил часы и отдельно определенные...

6
26 / 25 / 8
Регистрация: 19.01.2015
Сообщений: 84
21.01.2015, 16:32 2
объявить глобальный флажок bool fl=false;
C++
1
2
3
4
5
6
7
if (a[y][x] == 1)
            {
                fl=true;
                cout << char(0x23)<<"boomba";
                getch ();
                break;// последний break в проге
            }
...а дальше вопрос. решётка должна появляться на месте взрыва? или вся область становиться такая?

Добавлено через 1 минуту
игра заканчивается или продолжается?
0
SatanaXIII
21.01.2015, 16:39
  #3
 Комментарий модератора 
paradox_1326, называйте темы как-то осмысленно. Чтобы из заголовка было понятно о чем пойдет речь в ней.
0
0 / 0 / 3
Регистрация: 17.12.2014
Сообщений: 111
21.01.2015, 16:39  [ТС] 4
на месте взрыва решётка появляется и игра останавливается...
0
26 / 25 / 8
Регистрация: 19.01.2015
Сообщений: 84
21.01.2015, 17:53 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
 
using namespace std;
 
bool fl=false;
int q=-1,w=-1; 
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void main()
{
    srand((int)time(0));
    int a[5][5] = { 0 };
    int mines = 0, x, y, count;
    do
    {
        x = rand() % 5;
        y = rand() % 5;
        if (a[y][x] == 0)
        {
            a[y][x] = 1;
            ++mines;
            
        }
 
    } while (mines<3);
    do
    {
        count = 0;
        system("cls");
        for (int i = 0; i < 5; ++i)
        {
 
            for (int j = 0; j < 5; ++j)
            {
                
                if (a[i][j]==1&&fl==true)
                {
                    cout << char(0x23);
                } else
                {
                    if (a[i][j] == 2)
                    {                   
                        cout << char(0xDB);
                        ++count;
                    }               
                    else                
                        cout << char(0xB1);
                }
 
            }
 
            cout << '\n';
        }
        if (count == 22)
        {           
            break;
        }
        if(fl==false)
        {
            cout << "input x :";
            cin >> x;
            cout << "input y :";
            cin >> y;
        }
        else 
        {
            cout<< "you loser =)";
            getch();
        }
            
        if (x >= 0 && y >= 0 && x<5 && y<5)
            if (a[y][x] == 1)
            {
                fl=true;
            }
            else
                a[y][x] = 2;
            
    } while (1);
 
}
Добавлено через 3 минуты
доработать немого,и я б глобальные переменные чутка залокалил. а так вроде то что ты хотел.
0
0 / 0 / 3
Регистрация: 17.12.2014
Сообщений: 111
22.01.2015, 14:44  [ТС] 6
немного подправил но все равно не выдает....
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
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void main()
{
    bool fl = false;
    srand((int)time(0));
    int a[5][5] = { 0 };
    int mines = 0, x, y, count;
    do
    {
        x = rand() % 5;
        y = rand() % 5;
        if (a[y][x] == 0)
        {
            a[y][x] = 1;
            ++mines;
        }
 
    } while (mines<3);
    do
    {
        count = 0;
        system("cls");
        for (int i = 0; i < 5; ++i)
        {
 
            for (int j = 0; j < 5; ++j)
            {
                if (a[i][j] == 1 && fl == true)
                    cout << char(0x23);
                else if (a[i][j] == 2)
                {
                    cout << char(0xDB);
                    ++count;
                }
                else
                    cout << char(0xB1);
 
            }
 
            cout << '\n';
        }
        if (count == 22)
            break;
        if (fl == false)
        {
            cout << "input x :";
            cin >> x;
            cout << "input y :";
            cin >> y;
        }
        else
            cout << "you loser =)";
 
        if (x >= 0 && y >= 0 && x<5 && y<5)
            if (a[y][x] == 1)
                break;
            else
                a[y][x] = 2;
 
    } while (1);
 
}
Добавлено через 4 часа 32 минуты
значение подорванной мины не видно..(((
0
26 / 25 / 8
Регистрация: 19.01.2015
Сообщений: 84
22.01.2015, 18:20 7
вот то что поправил - исправь обратно))
0
22.01.2015, 18:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2015, 18:20
Помогаю со студенческими работами здесь

Найти в заданном предложении первое слово, начинающееся определенным символом
Вопрос первый. Найти в заданном предложении первое слово, начинающееся символом ‘о’ string name =...

Вывод текста, заменяя в заданом слове гласные буквы определенным символом
Здравствуйте. Прошу пожалуйста мне помочь с написанием это программы. Всем заранее спасибо) ...

Регулярные выражения: из текста получить слова, которые заканчиваются определенным символом
Доброго времени суток! Помогите пожалуйста сформулировать до конца регулярное выражение, а то я...

Как можно проверить все символы строки на совпадение с определенным символом
Как можно проверить все символы строки на совпадение с определенным символом заданным заранее и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru