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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2016, 22:16   #1
leonix12
Пользователь
 
Регистрация: 09.04.2016
Сообщений: 11
По умолчанию Программа-конструктор - Free Pascal

Программа-конструктор должна работать так. Пользователь нажимает любую алфавитную клавишу.
В результате в левом верхнем углу консольного окна появляется соответствующий символ.
С помощью клавиш-стрелок пользователь перемещает этот символ куда захочет.
Повторное нажатие алфавитной клавиши приводит к повторению процесса.
Так пользователь размещает символы и слова в консольном окне.
Выход - по нажатию специальной клавиши, например, [Esc].
leonix12 вне форума Ответить с цитированием
Старый 10.04.2016, 10:22   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,792
По умолчанию

тут, уж скорее через графику и массивы надо заполнять экран.
весь экран разбивается на N x M ячеек. по нажатию клавиши в ячейке с координами (N=1, М=1) возникает символ.
нажимая клавиши-стрелки, меняем координаты N и M и отображаем рисунками на экране.
а вообще, если вы первокурсник и вам дали такое задание, трудное, но выполнимое, то от вас хотят избавиться на факультете. либо, в случае успеха, вы станете любимчиком у препода.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 10.04.2016, 13:40   #3
leonix12
Пользователь
 
Регистрация: 09.04.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от NetSpace Посмотреть сообщение
тут, уж скорее через графику и массивы надо заполнять экран.
весь экран разбивается на N x M ячеек. по нажатию клавиши в ячейке с координами (N=1, М=1) возникает символ.
нажимая клавиши-стрелки, меняем координаты N и M и отображаем рисунками на экране.
а вообще, если вы первокурсник и вам дали такое задание, трудное, но выполнимое, то от вас хотят избавиться на факультете. либо, в случае успеха, вы станете любимчиком у препода.
Мне нужен код(
leonix12 вне форума Ответить с цитированием
Старый 10.04.2016, 13:52   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Если вы не хотите пытаться делать что-то самостоятельно, то вряд ли кто-то поможет вам.

Для поиска исполнителя за вознаграждение есть раздел Фриланс.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.04.2016, 15:14   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Разбирайся
Код:
uses crt;
var ch,c2,cch: char;
x,y:byte;
mas:array[1..80,1..80]of char;
begin
clrscr;
x:=1;y:=1;
repeat
      ch:=readkey;
      case ch of
       #0:begin
               c2:=readkey;
               case c2 of
                    #75: begin
                           textcolor(black);
                           gotoxy(x,y);
                           if (mas[x,y]<>'+') then write(cch);
                           if x>1 then dec(x) else x:=80;
                           textcolor(12);
                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                              write(cch);
                           end;

                     #77: begin
                           textcolor(black);
                           gotoxy(x,y);
                           if (mas[x,y]<>'+') then write(cch);

                           if x<80 then inc(x) else x:=1;
                           textcolor(12);
                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                           write(cch);

                     end;
                     #72: begin
                           textcolor(black);
                           gotoxy(x,y);

                           if (mas[x,y]<>'+')  then write(cch);

                           if y>1 then dec(y) else y:=25;
                           textcolor(12);
                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                           write(cch);

                           end;
                     #80: begin
                           textcolor(black);

                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                             write(cch);

                           if y<25 then inc(y) else y:=1;
                           textcolor(12);
                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                              write(cch);

                           end;
                     end
       end
       else
         begin
           if (y>25) or (x>80) or (x<1) or (y<1) then
             continue
           else
           begin
             cch:=ch;
             mas[x,y]:='+';
             mas[1,1]:=' ';
             x:=1;y:=1;
             textcolor(12);
             gotoxy(x,y);
             write(cch)
           end;
         end;
      end;
until ch=#27
end.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 10.04.2016, 15:37   #6
leonix12
Пользователь
 
Регистрация: 09.04.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Разбирайся
Код:
uses crt;
var ch,c2,cch: char;
x,y:byte;
mas:array[1..80,1..80]of char;
begin
clrscr;
x:=1;y:=1;
repeat
      ch:=readkey;
      case ch of
       #0:begin
               c2:=readkey;
               case c2 of
                    #75: begin
                           textcolor(black);
                           gotoxy(x,y);
                           if (mas[x,y]<>'+') then write(cch);
                           if x>1 then dec(x) else x:=80;
                           textcolor(12);
                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                              write(cch);
                           end;

                     #77: begin
                           textcolor(black);
                           gotoxy(x,y);
                           if (mas[x,y]<>'+') then write(cch);

                           if x<80 then inc(x) else x:=1;
                           textcolor(12);
                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                           write(cch);

                     end;
                     #72: begin
                           textcolor(black);
                           gotoxy(x,y);

                           if (mas[x,y]<>'+')  then write(cch);

                           if y>1 then dec(y) else y:=25;
                           textcolor(12);
                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                           write(cch);

                           end;
                     #80: begin
                           textcolor(black);

                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                             write(cch);

                           if y<25 then inc(y) else y:=1;
                           textcolor(12);
                           gotoxy(x,y);
                           if mas[x,y]<>'+' then
                              write(cch);

                           end;
                     end
       end
       else
         begin
           if (y>25) or (x>80) or (x<1) or (y<1) then
             continue
           else
           begin
             cch:=ch;
             mas[x,y]:='+';
             mas[1,1]:=' ';
             x:=1;y:=1;
             textcolor(12);
             gotoxy(x,y);
             write(cch)
           end;
         end;
      end;
until ch=#27
end.
Спасибо огромное)
leonix12 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа расчета зависимости / free pascal Shyrick Паскаль, Turbo Pascal, PascalABC.NET 1 20.09.2014 21:00
программа редактирования тектового файла. free pascal kudzey Общие вопросы Delphi 3 15.08.2014 13:15
Программа на Free Pascal alex4824 Помощь студентам 5 21.05.2012 19:28
программа в Free Pascal 2.4.4 Dgus23 Помощь студентам 0 08.11.2011 20:40
Free Pascal. Программа создает файл, но не записывает в него нужную переменную. Slap Паскаль, Turbo Pascal, PascalABC.NET 0 23.06.2011 12:43