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

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

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

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

06.03.2014, 11:40. Просмотров 442. Ответов 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";
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2014, 11:40     Расставить корабли в игре Морской Бой
Посмотрите здесь:

C++ Морской Бой
C++ морской бой
Морской Бой C++
C++ Морской бой в С
C++ Морской бой=)
C++ Морской бой
C++ Морской бой
Случайное распределение кораблей по полю в игре "морской бой" C++
C++ Морской бой C++
C++ Морской бой С++
C++ Как реализовать AI в игре "Морской бой"

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

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

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