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

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

Войти
Регистрация
Восстановить пароль
 
БагерОк
0 / 0 / 0
Регистрация: 06.03.2014
Сообщений: 4
#1

Расставить корабли в игре Морской Бой - C++

06.03.2014, 11:40. Просмотров 489. Ответов 2
Метки нет (Все метки)

вот сделал игру морсой бой не могу раставить корабли помогите за рание спасибо

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
#include <iostream>
#include <iomanip>
#include <ctime>
#include <conio.h>
#include <windows.h>
 
using namespace std;
enum ConsoleColor {Black, Blue, Green, Cyan, Red, Magenta, Brown, LightGray, DarkGray, 
    LightBlue, LightGreen, LightCyan, LightRed, LightMagenta, Yellow, White };
void SetColor(int text, int background)
{
     HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
     SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
void gotoxy(short x, short y)
{
    COORD coord = {x, y};
    HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(h, coord);
}
 
struct Ship 
    {
        char board;
        char cond;
        char NumShip;
    } PlaySh[10],CompSh[10];
struct Map 
    {
        char Cell;
        bool Shout;
        int CoordCol;
        int CoordRow;
    } PlayM[10][10], CompM[10][10];
 
void draw(int, int, char*) ;
 
 
void main()
{
    srand(time(NULL));
    int i,j;
    char CoordColumn[10]={'a','b','c','d','e','f','g','h','i','j'},z=0;
    char* ShipNum[10]={"41","31","32","21","22","23","11","12","13","14"};
    for(i=0;i<10;i++)
        for(j=0;j<10;j++) 
        {
            PlayM[i][j].Cell=0;
            PlayM[i][j].Shout=0;
            
            CompM[i][j].Cell=0;
            CompM[i][j].Shout=0;
            //CompM[i][j].CoordRow=i; After set comp‘s ships
            //CompM[i][j].CoordCol=j; 
        }
        i=rand()%10; j=rand()%10; 
        
        while (z!=32)
        {
            draw(5,3,CoordColumn);
            draw(43,3,CoordColumn);
            if(z==72) {j--;
                if(j==-1) j=9;
                    }
            if(z==80){j++;
                if(j==10) j=0;
                    }
            if (z==75){i--;
                if (i==-1) i==9;
                    }
            if (z==77){i++;
                if (i==10) i=0;
                    }
            gotoxy(i*3+6,j*2+5); SetColor(15,1); cout<<" "<<char(193)<<" "; SetColor(15,9);
            gotoxy(i*3+6,j*2+6); SetColor(15,1); cout<<" "<<char(194)<<" "; SetColor(15,9);
            z=getch();
            
            /*if(z==13)
                PlayM[i][j].CoordRow=i; After choise number of ship
                PlayM[i][j].CoordCol=j; */
            
            SetColor(7,0);gotoxy(0,48); cout<<" ";
            system("cls");
        } 
}
 
void draw(int x, int y, char* CoorColumn) 
{ 
    int i,j;
    gotoxy(x,y);
        for(j=0;j<10;j++) 
        {
            
            cout<<" "<<CoorColumn[j]<<" ";
            
        }
 
        cout<<"\n";
        gotoxy(x,y+1);
        for(j=0;j<10;j++) 
        {
            SetColor(15,9);
            if(!j)
                cout<<char(218)<<char(196)<<char(196);
            if(j==9)
                cout<<char(196)<<char(196)<<char(191);
            else
                cout<<char(196)<<char(196)<<char(196);
            SetColor(7,0);
        }
        cout<<"\n";
        for(i=0;i<10;i++) 
        {
            gotoxy(x-5,y+i*2+2);
            cout<<setw(2)<<i+1<<"   ";
            for(j=0;j<10;j++)
            {
                SetColor(15,9);
            if(!j)
                cout<<char(179)<<char(32)<<char(32);
            if(j==9)
                cout<<char(32)<<char(32)<<char(179);
            else
                cout<<char(32)<<char(32)<<char(32);
            SetColor(7,0);
            }
            cout<<"\n";
            gotoxy(x-5,y+i*2+3);
            cout<<"     ";
            for(j=0;j<10;j++)
            {
                SetColor(15,9);
            if(!j)
                cout<<char(179)<<char(32)<<char(32);
            if(j==9)
                cout<<char(32)<<char(32)<<char(179);
            else
                cout<<char(32)<<char(32)<<char(32);
            SetColor(7,0);
            }
            cout<<"\n";
        }
        gotoxy(x,y+22);
        for(j=0;j<10;j++) 
        {
            SetColor(15,9);
            if(!j)
                cout<<char(192)<<char(196)<<char(196);
            if(j==9)
                cout<<char(196)<<char(196)<<char(217);
            else
                cout<<char(196)<<char(196)<<char(196);
            SetColor(7,0);
        }
        cout<<"\n";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2014, 11:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расставить корабли в игре Морской Бой (C++):

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

Как реализовать AI в игре "Морской бой" - C++
Подскажите пожалуйста как лучше реализовать умную игру компьютера

Морской Бой - C++
прошу в помощи написания этой игры ,спасибо

C++ Морской бой - C++
Недавно начал изучать c++ и вот решил написать консольный морской бой, но вот в чём возникли проблемы: 1.Как сделать стрельбу для игрока...

Морской бой - C++
народ помогите нарисовать решётку (поле боя ) для морского боя никак не выходит через двухмерный массив

Морской бой=) - C++
Создать игру &quot; Морской бой&quot;

2
БагерОк
0 / 0 / 0
Регистрация: 06.03.2014
Сообщений: 4
03.04.2014, 09:56  [ТС] #2
ребят реально кто может помочь?
0
Archi0
28 / 14 / 4
Регистрация: 18.07.2013
Сообщений: 170
03.04.2014, 10:23 #3
Есть поле 10х10 и N кораблей. Цикл пока остались корабли, второй цикл проходит по полю на проверку возможности разместить корабль так, чтобы хотя бы 1 поле корабля было расположено на данном поле (фиксируешь поля которые доступны для данного корабля (это отдельный объект) логика проверки следует из правил игры и учёта уже размещенных кораблей) из доступных полей выбираешь поле случайно (после можно подумать над интеллектом и регистрируешь этот корабль помечая какие поля больше недоступны), если невозможно разместить корабль попробовать сначала (если есть доказательство того, что такого не может случиться то этот блок кода не нужен).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 10:23
Привет! Вот еще темы с ответами:

Морской бой С++ - C++
Помогите пожалуйста.Нужно сделать так,чтобы обрисовало выстрелами все(вокруг убитого корабля) #include &lt;iostream&gt; #include...

Морской бой в С - C++
Прошу,что-бы он был максимально упрощенным .А то я ток начинающий программист)

Морской Бой - C++
Люди прошу помогите....курсовую надо сдавать, а как решить задачу я не знаю... Вот такое условие: Дан двумерный массив размером 8х8,...

Морской бой C++ - C++
имеется следующий класс Text,в котором два метода drawText(...) который отвечает за прорисовку текста на экране i renderingText() - за...


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

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

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