Форум программистов, компьютерный форум 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
20.02.2014, 21:05  [ТС]
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
#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 = 
 
                 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;
Добавлено через 47 секунд
Почему ?

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