Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 29.11.2019
Сообщений: 28

Баллы при рандом - перемещении

05.01.2020, 15:15. Показов 1435. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Пишу игру на паскале, возникли некоторые сложности. Суть игры такая: круг, управляемый клавишами, собирает квадраты, за это даются баллы. Я сделала так чтобы квадраты при совмещении с кругом рандомно перемещаются и при этом перемещении выдается 100 баллов. Они то видны, но только в тот момент когда круг и квадрат находятся в одной точке, а когда квадрат перемещается, баллы исчезают. Помогите пожалуйста решить проблему. Вот мой код:

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
Uses graphABC;
 Const Image_1='4321.png';
Var
 p:picture;
 x,y,xsqr,ysqr,flag:integer;
 f:boolean;
 
procedure klavisha(key:integer);
 
Begin
 case key of
   VK_Up:y:=y-1;
   VK_Down:y:=y+1;
   VK_Left:x:=x-1;
   VK_Right:x:=x+1;
 end;
end;
 
procedure sharic;
 
Begin
SetBrushColor(clRed);
 If flag=1 then
  begin
   xsqr:=random(0,1292);
   ysqr:=random(0,500);
   flag:=0;
  end;
 If x=xsqr  then flag:=1;
 If y=ysqr then flag:=1;
SetBrushColor(clBlack);
Line(1292,0,1292,1000);
SetBrushColor(clRed);
Rectangle(xsqr-15,ysqr-15,xsqr+15,ysqr+15);
Circle(x,y,30);
FloodFill(0,0,clLightSkyBlue);
SetBrushColor(clWhite);
Rectangle(0,0,180,60);
SetPenColor(clBlack);
SetFontSize(30);
TextOut(25,10,'0 0 0 0');
 If x=xsqr then TextOut(25,10, '0 1 0 0');
 If y=ysqr then TextOut(25,10, '0 1 0 0');
p:=Picture.Create (Image_1);
p.Load(Image_1); 
p.Draw(1080,0);
SetBrushColor(clYellow);
Rectangle(100,150,600,200);
Rectangle(800,150,1100,200);
Rectangle(50,300,400,350);
Rectangle(600,300,1000,350);
Rectangle(200,450,650,500);
Rectangle(900,450,1250,500);
Rectangle(50,600,500,650);
Rectangle(700,600,1150,650);
Rectangle(100,750,600,800);
Rectangle(800,750,1100,800);
SetBrushColor(clGreen);
Rectangle(0,900,1600,1000);
Redraw;
end;
 
Begin
randomize;
flag:=1;
f:=true;
x:=WindowWidth div 2;
y:=WindowHeight div 2;
LockDrawing;
Repeat
ClearWindow;
OnKeyDown:=klavisha; sharic;
Sleep(50);
Redraw;
until not f;
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.01.2020, 15:15
Ответы с готовыми решениями:

Доработать программу: должны отниматься баллы при попадании в тебя бомбой)
Это код проги.... Такая прога ... Короче стреляешь объектом(охотником) в самолет , когда попадаешь получаешь балы , это работает , но когда...

Тест с тремя вариантами ответов: как прибавлять баллы при нажатии на RadioButton?
Есть тест и на каждый vopros три варианта ответов. Один из них - правильный. Отличается он от других по наличию значка "+" в...

ASUS d541n выключается при работе от аккумулятора и при перемещении
Здравствуйте. Купил ноут в декабре 2018...

2
58 / 42 / 21
Регистрация: 01.01.2018
Сообщений: 273
05.01.2020, 19:57
Лучший ответ Сообщение было отмечено Nassy_Mur как решение

Решение

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
Uses graphABC;
 
const
  Image_1 = '4321.png';
 
var
  p: picture;
  gamePoints, x, y, xsqr, ysqr: integer;
  (f, flag):= (true, true);
  
 
procedure klavisha(key: integer);
 
begin
  case key of
    VK_Up: y -= 1;
    VK_Down: y += 1;
    VK_Left: x -= 1;
    VK_Right: x += 1;
  end;
end;
 
function getTextPoints(p:Integer):String;
begin
  for var i:=1 to 4 do
    begin
    result+=p mod 10+' ';
    p:=p div 10;
    end;
    result:=result.Inverse;
end;
 
procedure sharic;
 
begin
  SetBrushColor(clRed);
  if (flag) then
  begin
    xsqr := random(0, 1292);
    ysqr := random(0, 500);
    flag := false;
  end;
  if (x = xsqr) or (y = ysqr)  then flag := true;
  SetBrushColor(clBlack);
  Line(1292, 0, 1292, 1000);
  SetBrushColor(clRed);
  Rectangle(xsqr - 15, ysqr - 15, xsqr + 15, ysqr + 15);
  Circle(x, y, 30);
  FloodFill(0, 0, clLightSkyBlue);
  SetBrushColor(clWhite);
  Rectangle(0, 0, 180, 60);
  SetPenColor(clBlack);
  SetFontSize(30);
  if (flag) then gamePoints+=100;
  TextOut(25, 10, getTextPoints(gamePoints));
  p := Picture.Create(Image_1);
  p.Load(Image_1); 
  p.Draw(1080, 0);
  SetBrushColor(clYellow);
  Rectangle(100, 150, 600, 200);
  Rectangle(800, 150, 1100, 200);
  Rectangle(50, 300, 400, 350);
  Rectangle(600, 300, 1000, 350);
  Rectangle(200, 450, 650, 500);
  Rectangle(900, 450, 1250, 500);
  Rectangle(50, 600, 500, 650);
  Rectangle(700, 600, 1150, 650);
  Rectangle(100, 750, 600, 800);
  Rectangle(800, 750, 1100, 800);
  SetBrushColor(clGreen);
  Rectangle(0, 900, 1600, 1000);
  Redraw;
end;
 
begin
  randomize;
  x := WindowWidth div 2;
  y := WindowHeight div 2;
  LockDrawing;
  repeat
    ClearWindow;
    OnKeyDown := klavisha; 
    sharic;
    Sleep(50);
    Redraw;
  until not f;
end.
Добавлено через 1 час 7 минут
И вот эту часть кода можно вынести из цикла перерисовки. Вам не нужно каждый раз загружать картинку в переменную. Только один раз - в самом начале.

Pascal
1
2
  p := Picture.Create(Image_1);
  p.Load(Image_1);
1
0 / 0 / 0
Регистрация: 29.11.2019
Сообщений: 28
05.01.2020, 20:15  [ТС]
Большое спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.01.2020, 20:15
Помогаю со студенческими работами здесь

Событие при при перемещении курсора мыши в уже выпавшем списке ComboBox
Всех с Наступившим Новым Годом! Счастья и удачи побольше в этом году! Не подскажите ли какое событие возникает при перемещении курсора...

При запуске винчестера гул как у реактивного самолёта, также скрежет при копировании и перемещении файлов
Привет форумчане, братья по железу! Такой трабл с винчестером: При запуске винчестера гул как у реактивного самолёта, также скрежет при...

При перемещении курсора слишком нагружается ЦП. При игре от 1 и 3 лица мышь не может(без фризов) повернуть перса
Здравствуйте. Столкнулся с интересной проблемой. При перемещении курсора по рабочему столу, самом диспетчере задач и в любом другом окне,...

Рандом с появлением групбоксов, рандом с расположением ответов в программе тестирования
Дали задание сделать тест с рандом выдачей вопросов(групбокс) и рандом расположения ответов(радиобаттон), вопросы будут находится в самой...

Рандом в пайтон (аппаратный рандом для генерации паролей)
суть такова есть такой скрипт на питоне wavBuf = dwParam1.contents if wavBuf.dwBytesRecorded > 0 : bits =...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru