Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Pascal ABC Из элементов массива A сформировать массив N того же размера по правилу https://www.cyberforum.ru/ pascalabc/ thread1414858.html
Очень срочно нужна ваша помощь в решении. Из элементов массива A сформировать массив N того же размера по правилу: элементы, стоящие на четных местах массива M уменьшить в 2 раза, а остальные...
Программа не выводит данные при том, что успешно компилируется Pascal ABC
вот собственно код самой программы: program fdggf; var a,b,e,c,fa,fb,fc,: real; begin write ('Введите a: '); readln (a); write ('Введите b: '); readln (b); e:=0.001;
Сформировать одномерный массив из двумерного по правилу Pascal ABC
дан двумерный массив А размерность 5x5. Заполнить одномерный массив B по следующему правилу: если сумма очередной строки массива кратна 3, то соответствующий элемент массива равен 3, иначе-элемент...
Pascal ABC Переписать приведенный код с использованием множеств Var s,s1:string; i,m:byte; Begin write('Введите строку: '); readln(s); m:=0;s1:=''; For i:=Length(s) downto 1 do if not(s in ) then s1:=s1+s else break; For i:=1 to Length(s1) do https://www.cyberforum.ru/ pascalabc/ thread1414702.html
Pascal ABC Вычислить выражение, используя функцию https://www.cyberforum.ru/ pascalabc/ thread1414644.html
y=max(a+b,b+c,c+a)+max(a,b,c)/min(a*b,b*c,c*a)
Pascal ABC Закрыть пароль звездочками
Помогите пожалуста сделать проверку логина и пароля так чтобы пароль закрывался звездочками и была проверка логина
Pascal ABC Движение цветного треугольника по диагоналям
В паскале, в графическом режиме написать программу, которая демонстрирует движение цветного треугольника по диагоналям: из левого верхнего угла - в правый нижний, а затем из правого верхнего угла - в...
Pascal ABC Найти такое число, при умножение которой получится целое число Дано число. Требуется найти такое число, при умножение которой получится целое число Например дано 0.333333 число которое нужно найти будет 3 т.к. при умножении получится почти целое число https://www.cyberforum.ru/ pascalabc/ thread1414586.html
Pascal ABC Определение макс и мин элементов в массивах в виде подпрограммы https://www.cyberforum.ru/ pascalabc/ thread1414571.html
Здравствуйте! Помогите, пожалуйста, вот с такой задачей: Дано: массивы А1(N1,M1), A2(N2,M2), A3(N3,M3). Вычислить Х=Х1+Х2+Х3 и Y=Y1+Y2+Y3, где Х1,Х2,Х3 - минимальные элементы среди нечетных строк...
Pascal ABC Составить блок схему к готовому коду const b=2.15; var y,x,a:real; begin a:=Exp(-b); x:=-sqrt(1+Power(ln(a)+ln(b),2)); y:=sin(0.5*x); Writeln('y:=',y) end. https://www.cyberforum.ru/ pascalabc/ thread1414485.html
Эксперт Pascal/Delphi
2359 / 1278 / 1484
Регистрация: 29.08.2014
Сообщений: 4,602
08.04.2015, 11:39 0

Битва танков

08.04.2015, 11:39. Просмотров 2193. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено Gomagaba как решение

Решение


Если есть желание можете и дуло дорисовать. Проверял на PascalABC.Net
управление:
стрелки вверх/вниз - сила выстрела
вправо/влево - угол
пробел выстрел
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
uses GraphABC;
var
  p,a,cp,ca,x1,y1,x2,y2:integer;
  ok:boolean;
procedure drawtank(x,y,n:integer);
begin
if not ok then begin
  LockDrawing;
   SetPenColor(clwhite);
   SetBrushColor(clwhite);
   FillRectangle(10,10,WindowWidth,40);
   SetPenColor(clBlack);
   SetBrushColor(clwhite);
  TextOut(10,10,'Юзер: Power:'+inttostr(p)+' Angle:'+inttostr(a)); 
  TextOut(WindowWidth div 2,10,'Тупой бот: Power:'+inttostr(cp)+' Angle:'+inttostr(ca)); 
  if n=1 then begin Setpencolor(clBlue);SetBrushColor(clBlue);end
  else begin setpencolor(clRed);SetBrushColor(clred);end;
  fillpie(x,y,20,0,180);
  UnlockDrawing;
end;  
end;  
 
procedure drawshoot(x0,y0,aa,pp,n:integer);
var
  i:integer;
  Vx0,Vy0,t,x,y,tc:real;
begin
  Vx0:=pp*cos(aa*pi/180);
  Vy0:=pp*sin(aa*pi/180);
  t:=2*Vy0/9.81/50;
  tc:=0;
  for i:=1 to 50 do begin
     x:=x0+vx0*tc;
     y:=y0+vy0*tc-9.81*tc*tc/2;
  if n=1 then begin Setpencolor(clBlue);SetBrushColor(clBlue);end
  else begin setpencolor(clRed);SetBrushColor(clred);end;
     circle(round(x),2*y0-round(y),1);
     tc:=tc+t;
   end;
   SetBrushColor(clwhite);
   SetPenColor(clwhite);
   circle(round(x),round(y),20);
   if ((x-10<x1+10) and (x+10>x1+10)) or ((x-10<x1-10) and (x+10>x1-10)) or (x=x1) then begin 
     textout(100,100,'Тупой бот победил');
     SetBrushColor(clyellow);
     SetPenColor(clred);
     for i:=1 to 40 do begin circle(x1,y1,i);Sleep(100);end;
ok:=true;
   end;  
   if ((x-10<x2+10) and (x+10>x2+10)) or ((x-10<x2-10) and (x+10>x2-10))or (x=x2) then begin 
     textout(100,100,'Юзер победил');
     SetBrushColor(clyellow);
     SetPenColor(clred);
     for i:=1 to 40 do begin circle(x2,y2,i);Sleep(100);end;
ok:=true;
   end;  
end;  
 
procedure MoveT(Key:Integer);
begin
  if Key=VK_Escape then halt; 
  if not ok then 
 case Key of
    VK_Down: if p>0 then p:=p-1;
    VK_Up: if p<100 then p:=p+1;
    VK_Left: if a>0 then a:=a-1;
    VK_Right: if a<180 then a:=a+1;
    VK_Space: begin
      drawshoot(x1,y1,a,p,1);
      ca:=random(180+1);
      cp:=random(100+40);
      if not ok then drawshoot(x2,y2,ca,cp,0);
    end;
 end; 
 drawtank(x1,y1,1);
 drawtank(x2,y2,0);
end;
 
begin
  randomize;
  SetWindowWidth(640);
  SetWindowHeight(480);
  a:=0;p:=0;ca:=0;cp:=0;
  x1:=50;y1:=WindowHeight-5;
  x2:=WindowWidth-40;y2:=WindowHeight-5;
  setpencolor(clgreen);
  SetBrushColor(clgreen);
  FillRectangle(0,WindowHeight-5,WindowWidth,WindowHeight);
  drawtank(x1,y1,1);
  drawtank(x2,y2,0);
  OnKeyDown:=MoveT; 
  repeat
  until ok;
end.


Вернуться к обсуждению:
Битва танков
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2015, 11:39
Готовые ответы и решения:

Битва начинается
ограничение по времени на тест: 2 seconds ограничение по памяти на тест: 64 megabytes Наконец...

Битва между офисами в морской бой
Само условие Битва между офисами Время: 1000ms, Память: 128MB, Сложность: 30%; Попытка: 11,...

Реализация примитивных танков
У меня есть много танков вражеских и один мой. Я сам задаю их координаты. Мне нужно узнать какой...

Игры на подобие танков онлайн
Ищу браузерную игру на подобие танков онлайн главное чтоб игра была динамичной и интересной и...

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