Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2016, 16:17   #1
IvanNikulin
Новичок
Джуниор
 
Регистрация: 29.12.2016
Сообщений: 4
Сообщение PascalABC.net (эмуляция стрелочки в игре "Твистер")

Ничего конкретного просто может особо прокаченные подскажут что можно добавить в программу для повышения навыков
P.S.
Программа эмитирует работу стрелочки в "Твистере"

Код:
program Twister;

uses GraphABC;

type

  Body = (Leg, Arm);
  Side = (Left, Right);
  
const
  Rad : integer = 200; // радиус окружности
  PenWid : integer = 400; // толщина пера
  FontSz : integer = 30; //размер шрифта
  LetWid : integer = 25; //ширина буквы
  ind : integer = 22; // индекс смещения текста

var

  BodyPart : Body;
  BodySide : Side;
  Point : Color;
  ColorSet : array of Color = (clRed, clBlue, clGreen, clYellow);
  Players : array [1..6] of string;
  LetsPlay : string;
  i : integer = 1;
  play : integer;
  
procedure Game(x, y, b : integer);
begin
  
  Point := ColorSet[Low(ColorSet) + Random(Length(ColorSet))];
  
  BodyPart := Body(random(Integer(Leg), Integer(Arm)));
  BodySide := Side(random(Integer(Left), Integer(Right)));
  
  ClearWindow;
  
  SetPenColor(Point);
  Circle(WindowWidth div 2, WindowHeight div 2, Rad);
  
  play := random(1, i - 1);
  
  TextOut
  (
    WindowWidth div 2 - ((BodyPart.ToString.Length * LetWid) div 2 +
    (BodySide.ToString.Length * LetWid) div 2 + (ind * LetWid) + 
    Players[play].Length * LetWid) div 2, 0,
    Players[play] + ' must put his ' +
    BodySide.ToString + ' ' + BodyPart.ToString +
    ' on this point'
   );
  
end;

begin
  SetFontSize(15);
  SetPenWidth(PenWid);
  Window.Maximize;
  randomize;
  
  writeln('Now you can add players/ Maximum is 6.');
  writeln('To add player write his nick end press Enter');
  writeln('To stop additing write "go" and press Enter');
  writeln;
  
  repeat
    readln(LetsPlay);
    if LetsPlay <> 'go' then begin
      Players[i] := LetsPlay;
      Inc(i);
      Writeln(LetsPlay);
    end;
  until(LetsPlay = 'go');
  
  SetFontSize(FontSz);
  
  Game(0, 0, 0);
  OnMouseDown := Game;
end.

______________
1) Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.

2) Код нужно оформлять тегом [CODE]..[/СODE] (это кнопочка на панели форматирования с решёточкой #)

Учтите это на будущее.

Модератор.

Последний раз редактировалось Alex11223; 29.12.2016 в 16:29.
IvanNikulin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эмуляция клвиши в игре VSmile Общие вопросы Delphi 3 08.11.2016 11:03
Эмуляция WM_TOUCH в .Net Slippy Win Api 0 26.08.2011 10:04
PascalABC.net gogomon93 Помощь студентам 5 17.04.2011 18:48
Эмуляция нажатия клавиши в игре Quake3 Robin_ Общие вопросы Delphi 5 06.12.2010 09:10
PascalABC.net *stRong* Помощь студентам 2 10.06.2010 17:50