0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11

Танчики

15.03.2020, 18:11. Показов 7763. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста.
В данном языке не силен, так что некоторых тонкостей не знаю, поэтому не нужно ругаться на мои ошибки, если они есть.
Хочу написать небольшую игрушку по типу "Танчики" на двоих.
Пока в процессе, это пром. результат.
1-й игрок управляет клавишами W, A, S, D, 2-й - стрелки.
Возникла проблема, что перемещение 2-х "танков" одновременно не работает, перемещается только один из них. Как это можно решить и можно ли вообще?
Pascal
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
uses ABCObjects, GraphABC;
 
var
    tank,tank2:PictureABC;
    shag:=10;
    Rectangle:BoundedObjectABC;
 
procedure MoveTanks(key:integer);
begin
  case key of
    VK_Escape: window.Close;
    VK_Right:
      begin
        tank.Destroy;
        tank:=PictureABC.Create(tank.Left,tank.Top,'tankRight.jpg');
        if tank.Left+tank.Width-40<=windowWidth then
          tank.Left:=tank.Left+shag;
      end;
    VK_Down:
      begin
        tank.Destroy;
        tank:=PictureABC.Create(tank.Left,tank.Top,'tankDown.jpg');
        if tank.Top+tank.Height-40<=windowHeight then
          tank.Top:=tank.Top+shag;
      end;
    VK_Left:
      begin
        tank.Destroy;
        tank:=PictureABC.Create(tank.Left,tank.Top,'tankLeft.jpg');
        if tank.Left>=-40 then
          tank.Left:=tank.Left-shag
      end;
    VK_Up:
      begin
        tank.Destroy;
        tank:=PictureABC.Create(tank.Left,tank.Top,'tank.jpg');
        if tank.Top>=-40 then
          tank.Top:=tank.Top-shag;
      end;
    VK_D:
      begin
        tank2.Destroy;
        tank2:=PictureABC.Create(tank2.Left,tank2.Top,'tank2Right.jpg');
        if tank2.Left+tank2.Width-40<=windowWidth then
          tank2.Left:=tank2.Left+shag;
      end;
    VK_S:
      begin
        tank2.Destroy;
        tank2:=PictureABC.Create(tank2.Left,tank2.Top,'tank2Down.jpg');
        if tank2.Top+tank2.Height-40<=windowHeight then
          tank2.Top:=tank2.Top+shag;
      end;
    VK_A:
      begin
        tank2.Destroy;
        tank2:=PictureABC.Create(tank2.Left,tank2.Top,'tank2Left.jpg');
        if tank2.Left>=-40 then
          tank2.Left:=tank2.Left-shag
      end;
    VK_W:
      begin
        tank2.Destroy;
        tank2:=PictureABC.Create(tank2.Left,tank2.Top,'tank2.jpg');
        if tank2.Top>=-40 then
          tank2.Top:=tank2.Top-shag;
      end;
  end;
end;
 
procedure OutButton(x,y,mb:integer);
begin
  case mb of 
    1:
      begin
        if (x>=10) and (x<=Rectangle.Width+10) and (y>=10) and (y<=Rectangle.Height+10) then
          window.Close;
      end;
  end;
end;
 
begin
  window.Width:=736;
  window.Height:=736;
  window.Fill('font for tanks.jpg');
  window.Caption:='MyGame';
  tank:=PictureABC.Create(WindowWidth div 2 - 135,WindowHeight - 210,'tank.jpg');
  tank2:=PictureABC.Create(WindowWidth div 2 - 135,-60,'tank2Down.jpg');
  OnMouseDown:=OutButton;
  OnKeyDown:=MoveTanks;
  Rectangle:=RectangleABC.Create(10,10,50,20,clred);
  TextOut(26,12,'Out');
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2020, 18:11
Ответы с готовыми решениями:

Обработка столкновений в игре "Танчики"
Здравствуйте, ув. форумчане! Мне нужна помощь с обработкой столкновений (коллизией) в игре &quot;Танчики&quot;. Есть карта (13х13),...

Танчики на С++
Загорелся идеей реализовать стандартные тетрисовские танчики на с++. Но так как я только начал самообучение с++, то решил обратится за...

Танчики
Здравствуйте помогите сделать программу типа игры танчики только еще проще чтобы танк тупо катался ко карте без стрельбы и врагов буду...

15
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
16.03.2020, 09:38
приложите, пожалуйста, архив с картинками
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
16.03.2020, 11:28  [ТС]
Вот картинки.
Вложения
Тип файла: rar textures.rar (83.9 Кб, 35 просмотров)
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
16.03.2020, 14:01
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Цитата Сообщение от SqueeZee Посмотреть сообщение
Возникла проблема, что перемещение 2-х "танков" одновременно не работает, перемещается только один из них. Как это можно решить и можно ли вообще?
вот тут есть решение вашей проблемы - https://www.cyberforum.ru/post8879449.html
1
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
16.03.2020, 20:36  [ТС]
Благодарю. Пошел разбираться.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
17.03.2020, 09:36
Цитата Сообщение от SqueeZee Посмотреть сообщение
Благодарю. Пошел разбираться.
не за что. Если возникнут проблемы - возвращайся, будем все вместе разбираться
1
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,250
17.03.2020, 20:57
SqueeZee, Нашел маленький косяк в реализации вашей кнопки,если одним из танков проехаться по вашей "кнопке",то текст кнопки стирается
1
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
17.03.2020, 21:16  [ТС]
Да, действительно. А я и не заметил. Спасибо!
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,250
17.03.2020, 21:36
Если хотите,что бы была нормальная кнопка,используйте модуль ABCButtons -> класс Button ABC,или наоборот,удачи.
1
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
18.03.2020, 18:19  [ТС]
Хмм. Впервые слышу об этом модуле.
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
19.03.2020, 23:30  [ТС]
Уже не знаю, что делать. Не могу решить проблему. Пишу игру "Танчики" с менюшкой. В меню 3 кнопки: Старт, Настройки, и Выход. Если нажать на Настройки, то все кнопки уничтожаются и появляются новые 2 - Высокие текстуры танчика и Низкие. По идее, на этом этапе прога должна ждать нажатия на одну из этих кнопок, но у меня, как только нажимаю на Настройки, за одну секунду уничтожаются все кнопки, создаются 2 кнопки (Высокие и Низкие текстуры), они уничтожаются и создаются 3 кнопки из меню. Я даже не успеваю выбрать качество текстур танчика. Надеюсь, понятно объяснил. Нужна помощь.
Pascal
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
uses GraphABC, ABCObjects, ABCButtons;
 
var
  OutButton,StartButton,OptionButton,HighTextureButton,LowTextureButton:ButtonABC;
  flagForTexture:boolean;
  tank:PictureABC;
  shag:=10;
  
 
procedure Buttons;
begin
  StartButton:=ButtonABC.Create(WindowWidth div 2 - 100,WindowHeight div 2 - 150,200,50,'Start',clred);
  OptionButton:=ButtonABC.Create(WindowWidth div 2 - 100,WindowHeight div 2 - 50,200,50,'Options',clred);
  OutButton:=ButtonABC.Create(WindowWidth div 2 - 100,WindowHeight div 2 + 50,200,50,'Out',clred);
end;
 
procedure MoveTanks(key:integer);
begin
  tank.Destroy;
  case key of
    VK_Right: 
      begin
        if flagForTexture then
          begin
            tank:=PictureABC.Create(tank.Left,tank.Top,'HighTextures/tankRight.jpg');
            if tank.Left+tank.Width-40<=windowWidth then
              tank.Left:=tank.Left+shag;
          end else
            begin
              tank:=PictureABC.Create(tank.Left,tank.Top,'LowTextures/tankLowRight.png');
              if tank.Left+tank.Width-40<=windowWidth then
                tank.Left:=tank.Left+shag;
            end;
      end;
    VK_Down: 
      begin
        if flagForTexture then
          begin
            tank:=PictureABC.Create(tank.Left,tank.Top,'HighTextures/tankDown.jpg');
            if tank.Top+tank.Height-40<=windowHeight then
              tank.Top:=tank.Top+shag;
          end else
            begin
              tank:=PictureABC.Create(tank.Left,tank.Top,'LowTextures/tankLowDown.png');
              if tank.Top+tank.Height-40<=windowHeight then
                tank.Top:=tank.Top+shag;
            end;
      end;
    VK_Left: 
      begin
        if flagForTexture then
          begin
            tank:=PictureABC.Create(tank.Left,tank.Top,'HighTextures/tankLeft.jpg');
            if tank.Left>=-40 then
              tank.Left:=tank.Left-shag;
          end else
            begin
              tank:=PictureABC.Create(tank.Left,tank.Top,'LowTextures/tankLowLeft.png');
              if tank.Left>=-40 then
                tank.Left:=tank.Left-shag;
            end;
      end;
    VK_Up: 
      begin
        if flagForTexture then
          begin
            tank:=PictureABC.Create(tank.Left,tank.Top,'HighTextures/tank.jpg');
            if tank.Top>=-40 then
              tank.Top:=tank.Top-shag;
          end else
            begin
              tank:=PictureABC.Create(tank.Left,tank.Top,'LowTextures/tankLow.png');
              if tank.Top>=-40 then
                tank.Top:=tank.Top-shag;
            end;
      end;
    VK_Escape:
      begin
        CloseWindow;
      end;
  end;
end;
 
procedure DestroyButtons;
begin
  StartButton.Destroy;
  OptionButton.Destroy;
  OutButton.Destroy;
end;
 
procedure StartGame;
begin
  Window.Width:=736;
  Window.Height:=736;
  Window.Caption:='Tanks';
  DestroyButtons;
  Window.Fill('font for tanks.jpg');
  if flagForTexture then
    tank:=PictureABC.Create(WindowWidth div 2 - 135,WindowHeight div 2 - 200,'HighTextures/tank.jpg')
    else
      tank:=PictureABC.Create(WindowWidth div 2 - 135,WindowHeight div 2 - 200,'LowTextures/tankLow.png');
  OnKeyDown:=MoveTanks;
end;
 
procedure Out := CloseWindow;
 
procedure High := flagForTexture:=true;
 
procedure Low := flagForTexture:=false;
 
procedure TextureButtons;
begin
  HighTextureButton:=ButtonABC.Create((WindowWidth div 2) div 2 - 100,WindowHeight div 2 - 25,200,50,'High Textures',clred);
  LowTextureButton:=ButtonABC.Create(WindowWidth div 2 + (WindowWidth div 2) div 2 - 100,WindowHeight div 2 - 25,200,50,'Low Textures',clred);
  HighTextureButton.OnClick:=High;
  LowTextureButton.OnClick:=Low;
end;
 
procedure Options;
begin
  Window.Caption:='Options';
  DestroyButtons;
  TextureButtons;
  HighTextureButton.Destroy;
  LowTextureButton.Destroy;
  Buttons;
  StartButton.OnClick:=StartGame;
  OptionButton.OnClick:=Options;
  OutButton.OnClick:=Out;
  Window.Caption:='Menu';
end;
 
begin
  window.Width:=900;
  window.Height:=600;
  Window.Caption:='Menu';
  window.Fill('fontMenu.jpg');
  Buttons;
  StartButton.OnClick:=StartGame;
  OptionButton.OnClick:=Options;
  OutButton.OnClick:=Out;
end.
Вложения
Тип файла: rar Tanks.rar (165.3 Кб, 41 просмотров)
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,250
20.03.2020, 15:24
Лучший ответ Сообщение было отмечено SqueeZee как решение

Решение

SqueeZee, Держите,исправил кое-что
Pascal
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
uses GraphABC, ABCObjects, ABCButtons;
 
var
  OutButton, StartButton, OptionButton, HighTextureButton, LowTextureButton: ButtonABC;
  flagForTexture: boolean;
  tank: PictureABC;
  shag := 10;
 
 
procedure Buttons;
begin
  StartButton := ButtonABC.Create(WindowWidth div 2 - 100, WindowHeight div 2 - 150, 200, 50, 'Start', clred);
  OptionButton := ButtonABC.Create(WindowWidth div 2 - 100, WindowHeight div 2 - 50, 200, 50, 'Options', clred);
  OutButton := ButtonABC.Create(WindowWidth div 2 - 100, WindowHeight div 2 + 50, 200, 50, 'Out', clred);
end;
 
procedure MoveTanks(key: integer);
begin
  tank.Destroy;
  case key of
    VK_Right: 
      begin
        if flagForTexture then
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'HighTextures/tankRight.jpg');
          if tank.Left + tank.Width - 40 <= windowWidth then
            tank.Left := tank.Left + shag;
        end else
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'LowTextures/tankLowRight.png');
          if tank.Left + tank.Width - 40 <= windowWidth then
            tank.Left := tank.Left + shag;
        end;
      end;
    VK_Down: 
      begin
        if flagForTexture then
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'HighTextures/tankDown.jpg');
          if tank.Top + tank.Height - 40 <= windowHeight then
            tank.Top := tank.Top + shag;
        end else
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'LowTextures/tankLowDown.png');
          if tank.Top + tank.Height - 40 <= windowHeight then
            tank.Top := tank.Top + shag;
        end;
      end;
    VK_Left: 
      begin
        if flagForTexture then
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'HighTextures/tankLeft.jpg');
          if tank.Left >= -40 then
            tank.Left := tank.Left - shag;
        end else
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'LowTextures/tankLowLeft.png');
          if tank.Left >= -40 then
            tank.Left := tank.Left - shag;
        end;
      end;
    VK_Up: 
      begin
        if flagForTexture then
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'HighTextures/tank.jpg');
          if tank.Top >= -40 then
            tank.Top := tank.Top - shag;
        end else
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'LowTextures/tankLow.png');
          if tank.Top >= -40 then
            tank.Top := tank.Top - shag;
        end;
      end;
    VK_Escape:
      begin
        CloseWindow;
      end;
  end;
end;
 
procedure ButtonsConfig(Vis: boolean);
begin
  StartButton.Visible := Vis;
  OptionButton.Visible := Vis;
  OutButton.Visible := Vis;
end;
 
procedure StartGame;
begin
  Window.Width := 736;
  Window.Height := 736;
  Window.Caption := 'Tanks';
  ButtonsConfig(false);
  Window.Fill('font for tanks.jpg');
  if flagForTexture then
    tank := PictureABC.Create(WindowWidth div 2 - 135, WindowHeight div 2 - 200, 'HighTextures/tank.jpg')
  else
    tank := PictureABC.Create(WindowWidth div 2 - 135, WindowHeight div 2 - 200, 'LowTextures/tankLow.png');
  OnKeyDown := MoveTanks;
end;
 
procedure Out := CloseWindow;
 
procedure High;
begin
  flagForTexture := true;
  HighTextureButton.Visible := false;
  LowTextureButton.Visible := false;
  ButtonsConfig(true);
end;
 
procedure Low;
begin
  flagForTexture := false;
  LowTextureButton.Visible := false;
  HighTextureButton.Visible := false;
  ButtonsConfig(true);
end;
 
procedure TextureButtons;
begin
  HighTextureButton := ButtonABC.Create((WindowWidth div 2) div 2 - 100, WindowHeight div 2 - 25, 200, 50, 'High Textures', clred);
  LowTextureButton := ButtonABC.Create(WindowWidth div 2 + (WindowWidth div 2) div 2 - 100, WindowHeight div 2 - 25, 200, 50, 'Low Textures', clred);
  HighTextureButton.OnClick += High;
  LowTextureButton.OnClick += Low;
end;
 
procedure Options;
begin
  Window.Caption := 'Options';
  ButtonsConfig(false);
  TextureButtons;
  Window.Caption := 'Menu';
end;
 
begin
  window.Width := 900;
  window.Height := 600;
  Window.Caption := 'Menu';
  window.Fill('fontMenu.jpg');
  Buttons;
  StartButton.OnClick += StartGame;
  OptionButton.OnClick += Options;
  OutButton.OnClick += Out;
end.
Добавлено через 1 минуту
Если что-то не понятно,спрашивайте
1
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
20.03.2020, 20:53  [ТС]
Большое спасибо! Гуглил, в справочнике лазал - ничего не было про этот модуль. Ну как не было, в справке было, только я оттуда ничего не понял.
1 вопрос: почему, когда вы вызываете процедуру -
Pascal
1
ExampleButton.OnClick += Example;
- пишите "+=", а не ":=" ?
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,250
20.03.2020, 21:13
Если честно,не знаю,как-то раз Sun Serega сказал,с тех пор и использую.Но,когда использую System.Windows.Forms,тут нельязя писать так.Например,этот код должен вызвать ошибку:
Pascal
1
2
3
4
5
6
7
{$reference System.Windows.Forms}
uses System.Windows.Forms;
begin
 var f := new Form;
 var b := new Button:
 b.Click:=()->begin end;
end.
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
21.03.2020, 07:30
Это должно вызывать ошибку ещё и потому, что обработчик Button.Click, как обработчик любого другого ивента в .Net, должен принимать 2 параметра. Правильно b.Click += (o,e)->begin end;.

А := не должно применяться к ивентам потому, что := удаляет предыдущее значение, а += добавляет ещё 1 обработчик к тому что есть. В больших программах легко забыться и написать в 2 местах :=. А поймать потом такой баг - будет очень сложно. Ну и в маленьких программах привыкать не стоит.

Ну и да, поля-ивенты (как Button.Click) полностью запрещают применять к ним :=, то есть код с := даже не откомпилируется.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,250
21.03.2020, 07:36
Sun Serega, на счет Buttons.Click+=()->begin end;
Да,я забыл про это,с телефона пилсал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2020, 07:36
Помогаю со студенческими работами здесь

Танчики C++
Здравствуйте! Пишу курсовую. Сроки уже горят. Нужно завтра сдать, а я так и не успел ничего. :cry:Поделитесь, пожалуйста, исходным кодом...

танчики
здравствуйте, решил попробовать сделать подобие денди-танчиков. Ну и только начал - сразу грабли)) Вопрос: Как лучше оформить движение...

Игрушка Танчики
у меня есть 1 свой танк, 2 вражеских. и сейчас если один вражеский попадет в другого вражеского, то подстреленный исчезает и выходит конец...

Игра танчики
Нужно приложение танчики в программном продукте Lazarus... Задали курсовую на эту тему, а я пропустил весь курс ...

Игра Танчики
всем доброго дня суток)не могли бы кто подсказать может кто сталкивался уже надо исходник игры танчики на плюсах чёт порылся в нете не...


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru