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

Игра Морской Бой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Упростить условие http://www.cyberforum.ru/cpp-beginners/thread1101542.html
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip> #include<conio.h> #include<iomanip> #define n 2 using namespace std; struct champ
C++ Метод одноалфавитного шифрования с заданным смещением Доброго времени суток. У меня в институте начался курс криптографии и как полагается первая лаба зашифровать строку шифрома Цезаря (знаю что сто раз было). Задание звучит так: Составить программу, шифрующую сообщения, состоящие из строчных букв кириллицы другими буквами того же самого алфавита. Для получения строки использовать генератор случайных чисел. Полученную последовательность... http://www.cyberforum.ru/cpp-beginners/thread1101537.html
Сравнение строк без нескольких символов C++
Здравствуйте, у меня вопрос по сабжу. Есть задание на написание парсера, всё бы хорошо, только не знаю как оптимально сравнивать строки за исключением некоторых символов. В общем так: есть строка, к примеру, name и есть входная строка str. В строке str: "%" соответствует 0 или более любым символов "-" соответствует 1 любому символу Например: Iv%
Какие 2 сортировки надо знать, чтобы на все случаи жизни быть застрахованным? C++
Всем добрый вечер! Форум уже давно читаю на правах гостя. Сегодня всерьез решил заняться темой сортировок. Форум очень интересный, уверен, не зря зарегистрировался. Собственно, сабж: Прочитал кучу статей о сортировках, о скорости, памяти, но разобраться оказалось трудновато. Раньше я думал, что достаточно знать QuickSort, что можно применять ее всюду и сортить абсолютно любые массивы за...
C++ Неправильно считается произведение, начиная с n=5 http://www.cyberforum.ru/cpp-beginners/thread1101493.html
Составить программу вычисления и выдачи на печать суммы и произведения N элементов бесконечного числового ряда. Здесь и далее следует пользоваться операторами цикла for или while y=1(-3)9(-27)81 # include <stdio.h> void main () {int n, i=1, y=1, k=0, x=0; printf ("n\ Vvedite N"); scanf ("%d", &n);
C++ Даны натуральные числа N и M Даны натуральные числа N и M.вывести на экран все числители числа N, которые одновременно являются делителем M. подробнее

Показать сообщение отдельно
wizunchik
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 8

Игра Морской Бой - C++

20.02.2014, 19:50. Просмотров 690. Ответов 7
Метки (Все метки)

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
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <dos.h>Kletka 
{:Pustaya_kletka, Vistrel, X, Y;:(int x, int y) 
{Vistrel = 0; Pustaya_kletka = 0; X = x; Y = y;}
Vistrel_v_kletku(int vistrel = 1) {Vistrel = vistrel;}
Vistrel_ili_net() {return Vistrel;}Korabl_v_kletku(int pustaya_kletka) {Pustaya_kletka = pustaya_kletka;}Pustaya_ili_net() {return Pustaya_kletka;}
Prorisovka(int sdvX, int sdvY) {(3*(sdvX+X), 2*(sdvY+Y), 3*(sdvX+X)+2, 2*(sdvY+Y)+1);color;(Pustaya_kletka == 2) {(Vistrel) color = RED;color = GREEN;
}if (Vistrel) color = BLUE;color = BLUE;(color);();(color == CYAN) {(2, 2);
}(Vistrel) {<<"*";(WHITE);
}
}
};Base_Korabl {:Color;:_Korabl() {Color = 0;}Prorisovka(short x, short y) {(3*x, 2*y, 3*x+2, 2*y+1);(Color);();
}
};
Kor_potomok: Base_Korabl { short Razmer, X, Y, Polojenie, KOL_RANENIY;:_potomok(short razmer, short x, short y, short polojenie) {= razmer; X = x; Y = y; Polojenie = polojenie; KOL_RANENIY = 0;
}
Prorisovka(int sdvX, int sdvY) {(Polojenie) for (int a = X; a < X + Razmer; a++) Base_Korabl::Prorisovka(sdvX+a, sdvY+Y);for (int a = Y; a < Y + Razmer; a++) Base_Korabl::Prorisovka(sdvX+X, sdvY+a);
}
Vistrel(int x, int y) {(Polojenie) for (int a = X; a < X + Razmer; a++) {((x == a) && (Y == y)) return 1;
}
for (int a = Y; a < Y + Razmer; a++) {((x == X) && (y == a)) return 1;
}0;
}
Ranenie() {KOL_RANENIY++; if (KOL_RANENIY == Razmer) return 1; else return 0;}
Vistrel_v_kletkus(Kletka *kletka[10][10]) {xm, ym;(Polojenie) {xm = X + Razmer; ym = Y + 1;}{xm = X + 1; ym = Y + Razmer;}(int i = X - 1; i <= xm; i++) if ((i <= 10) && (i > 0))(int j = Y - 1; j <= ym; j++) if ((j <= 10) && (j > 0))[i-1][j-1]->Vistrel_v_kletku(1);
}
Rasstanovka(Kletka *kletka[10][10]) {xm, ym;(Polojenie) {xm = X + Razmer; ym = Y + 1;}{xm = X + 1; ym = Y + Razmer;}(int i = X - 1; i <= xm; i++)(int j = Y -1; j <= ym; j++) {(!((i < 1) || (i > 10) || (j < 1) || (j > 10))) {((X <= i) && (i <= xm-1) && (Y <= j) && (j <= ym-1))[i-1][j-1]->Korabl_v_kletku(2);kletka[i-1][j-1]->Korabl_v_kletku(1);
}
}
}
};
New_Korabl(Kor_potomok *ship[10], Kletka *kletka[10][10], int kol_raneniy);shoting(Kletka *kletka[10][10], Kor_potomok *ship[10], int &xn, int &yn, int &kol_raneniy, int &a, int m);
main() {(BLACK);(WHITE);();csdvX = 14, csdvY = 2;(int i = 1; i <= 10; i++) {(3*csdvX + 3*i + 1, 2*csdvY + 1); cout<<i;(3*csdvX + 1, 2*csdvY + 2*i + 1); cout<<i;
}*
 kletka[10][10];(i = 0; i < 10; i++)(int j = 0; j < 10; j++) 
kletka[i][j] = new Kletka(i+1, j+1);(i = 0; i < 5; i++) random(45);msdvX = 1, msdvY = 2;(i = 1; i <= 10; i++) 
{(3*msdvX + 3*i + 1, 2*msdvY + 1); cout<<i;(3*msdvX + 1, 2*msdvY + 2*i + 1); cout<<i;
}* 
mkletka[10][10];(i = 0; i < 10; i++)(int j = 0; j < 10; j++) 
mkletka[i][j] = new Kletka(i+1, j+1);();_potomok *mship[10], *Base_Korabl[10];_Korabl(Base_Korabl, kletka, 0);
_Korabl(mship, mkletka, 1);ch;ckol = 10, cxn, cyn, cr = 0, ma, ca;mkol = 10, px = 0, py= 0;
(i = 0; i < 10; i++) for (int j = 0; j < 10; j++)[i][j]->Prorisovka(csdvX, csdvY);(i = 0; i < 10; i++) for (int j = 0; j < 10; j++)[i][j]->Prorisovka(msdvX, msdvY);(msdvX+3, 2, msdvY + 33, 3);(BLACK);
clrscr();<<"Кол-во кораблей игрока: "<<mkol;
do {sh;{ // Выстрел игрока(3*csdvX + 1, 2, 3*csdvX + 32, 3);(BLACK);();<<"Кол-во кораблей компьютера: "<<ckol;(!ckol) break;= shoting(kletka, Base_Korabl, px, py, csdvX, csdvY, 1);(i = 0; i < 10; i++) for (int j = 0; j < 10; j++) kletka[i][j]->Prorisovka(csdvX, csdvY);(!sh) ckol--;(sh == 2) break;
} while (1);(!ckol) break;{ // Выстрел компьютера(msdvX + 3, 2, msdvY + 33, 3);(BLACK);();<<"Кол-во кораблей игрока: "<<mkol;(!mkol) break;= shoting(mkletka, mship, cxn, cyn, cr, ca, 0);(i = 0; i < 10; i++) for (int j = 0; j < 10; j++) mkletka[i][j]->Prorisovka(msdvX, msdvY);(!sh) mkol--;(sh == 2) break;(500);
} while (1);
} while (ckol && mkol);(18, 12, 62, 16);(GREEN);();
(mkol)? cout<<"Поздравляем! Вы выйграли." : cout<<"Увы! Вы проиграли.";
getch();kletka;mkletka;
return;
}
/* функция обстрела кораблей(матрица обетов поле,
координаты последнего выстрела, количество ранений)
возвращает 0 - убит, 1 - ранен, 2 - мимо
*/shoting(Kletka *kletka[10][10], Kor_potomok *ship[10], int &x, int &y, int &kol_raneniy, int &a, int m) {
int xn, yn;(m) // Выстрел игрока{ // пока не введено небитое поле
char ch;{(3*(kol_raneniy+x+1), 2*(a+y+1), 3*(kol_raneniy+x+1)+2, 2*(a+y+1)+1);(WHITE);();= getch();(ch) {77: if (x < 9) {kletka[x][y]->Prorisovka(kol_raneniy, a); x++;} break;75: if (x > 0) {kletka[x][y]->Prorisovka(kol_raneniy, a); x--;} break;80: if (y < 9) {kletka[x][y]->Prorisovka(kol_raneniy, a); y++;} break;72: if (y > 0) {kletka[x][y]->Prorisovka(kol_raneniy, a); y--;} break;
}
} while (ch != 13);= x; yn = y;(!kletka[x][y]->Vistrel_ili_net()) break;
} while (1);switch (kol_raneniy) { // Выстрел компьютера
case 0:{ //корабль не был ранен
x = random(10);= random(10);(!kletka[x][y]->Vistrel_ili_net()) break;
} while (1);;1: // корабль был ранен один раз
xn = x; yn = y;((x < 9) && (!kletka[x+1][y]->Vistrel_ili_net())) {a = 0; x++;}if ((x > 0) && (!kletka[x-1][y]->Vistrel_ili_net())) {a = 1; x--;}if ((y < 9) && (!kletka[x][y+1]->Vistrel_ili_net())) {a = 2; y++;}if ((y > 0) && (!kletka[x][y-1]->Vistrel_ili_net())) {a = 3; y--;};:= x; yn = y;
switch (a) { //коробль был ранен более одного раза
case 0: if ((x < 9) && (!kletka[x+1][y]->Vistrel_ili_net())) x++;{x = x - kol_raneniy; a = 1;} break;1: if ((x > 0) && (!kletka[x-1][y]->Vistrel_ili_net())) x--;{x = x + kol_raneniy; a = 0;} break;2: if ((y < 9) && (!kletka[x][y+1]->Vistrel_ili_net())) y++;{y = y - kol_raneniy; a = 3;} break;3: if ((y > 0) && (!kletka[x][y-1]->Vistrel_ili_net())) y--;{y = y + kol_raneniy; a = 2;} break;
}
}[x][y]->Vistrel_v_kletku(1);(int i = 0; i < 10; i++) if (ship[i]->Vistrel(x+1, y+1)) {(ship[i]->Ranenie()) { // убит[i]->Rasstanovka(kletka);[i]->Vistrel_v_kletkus(kletka);_raneniy = 0;0;
}{kletka[x][y]->Korabl_v_kletku(2); kol_raneniy++; return 1;} // ранен
}(kol_raneniy) {x = xn; y = yn;}
return 2; // мимо
}
/* Создает корабли и размещает их на поле */
void New_Korabl(Kor_potomok *ship[10], Kletka *kletka[10][10], int kol_raneniy) {(int k = 0; k < 10; k++) {Razmer, x, y, Polojenie, b;(0 == k) Razmer = 4;if ((1 == k) || (2 == k)) Razmer = 3;if ((3 <= k) && (5 >= k)) Razmer = 2;Razmer = 1;{= random(10) + 1; y = random(10) + 1; Polojenie = random(2);xm, ym; b = 0;(Polojenie) {xm = x + Razmer; ym = y;}{xm = x; ym = y + Razmer;}(int i = x; i <= xm; i++) {(int j = y; j <= ym; j++) {((i > 10) || (j > 10)) {b = 1; break;}(!((i < 1) || (i > 10) || (j < 1) || (j > 10))) {(b = kletka[i-1][j-1]->Pustaya_ili_net()) break; }
}(b) break;
}
} while (b);[k] = new Kor_potomok(Razmer, x, y, Polojenie);[k]->Rasstanovka(kletka);
}(!kol_raneniy) for (int i = 0; i <= 9; i++)(int j = 0; j <= 9; j++) kletka[i][j]->Korabl_v_kletku(0);
return;
}
Добавлено через 44 секунды
Помогите найти ошибку (((
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru