IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> пытаюсь кое чего написать...., не представляю себе, как написать...вообще
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Михаил

Репутация: -  0  +


нужно, чтоб символ, например '*' перемещался по экрану при управлении с клавиатуры(не двигался постоянно, как в змейке, а делал шаг при нажатии и удержании клавиши) подскажите с чего начать

Сообщение отредактировано: maklir -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


считываешь нажатый символ.
определяешь, какая это стрелка
затираешь старую *
выводишь новую * в месте в соответствии с тем, какую стрелку нажали

что из этого вызывает затруднения?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Михаил

Репутация: -  0  +


какого типа переменная, имеющаяя значение клавиши?
и можно ли попробовать оформить через 'case'

Сообщение отредактировано: maklir -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Не "имеющая значение клавиши", а хранящая ее код. Char, разумеется. И обрабатывать ее удобнее именно через Case. Посмотри в поиске по поводу совместного использования Case и ReadKey, я думаю ты найдешь много примеров, которые тебе помогут решить задачу...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Михаил

Репутация: -  0  +


большое спасибо, когда закончу, поделюсь творчеством)))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


The matrix has me!!!
**

Группа: Пользователи
Сообщений: 74
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Ты спрашивал с чего начать, но это тебе уже подсказали... Я похожую задачу решал, и если нужно, то вот прикреплённый файл:
Прикрепленный файл  KR_kv.PAS ( 857 байт ) Кол-во скачиваний: 850

Тока тут не звёздочка, а прямоугольник!!! smile.gif


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Михаил

Репутация: -  0  +



uses crt;

  type har=record
 sila:integer;
 zawnog:integer;
 zawgol:integer;
 zawjiv:integer;
 zawpoyas:integer;
 end;
  const
   hero=#1;
  zombie=#2;
  zdr=#3;
  gold=#36;
    var  udar,spase,snap:char;zx,zy,Y,ud,X,n:integer;s,hero_damage,zombie_healse,zombie_d
amage,hero_healse:integer;
  i,j,hx,hy,mx,my,money:integer;Fh, Fz:file of har; rec:har ;
  {-----------------------------------------------------------------------}
   { procedure sozdanie;
     begin
     assign(fz,'zombie');
     rewrite(fz);
     with rec do
     begin
     write('sila');
     readln(sila);
     write(fz,rec);
     write('zawnog');
     readln(zawnog);
     write(fz,rec);
     write('zawgol');
     readln(zawgol);
     write(fz,rec);
     write('zawjiv');
     readln(zawjiv);
     write(fz,rec);
     write('zawpoyas');
     readln(zawpoyas);
     write(fz,rec);
     end;
     end;}


     procedure life;
     begin
      gotoxy(hx,hy);
      write(zdr);
     if(x=hx) and (y=hy) then
     begin
     write('healse');
     hero_healse:=hero_healse+15;
     hx:=random(10)+1;
     hy:=random(10)+1;
     end;
     mx:=hx+10;
     my:=hy+10;
          begin
      gotoxy(mx,my);
      write(gold);
     if(x=mx) and (y=my) then
     begin
     write('gold');
     money:=money+random(10)+1;
     hx:=random(10)+1;
     hy:=random(10)+1;
     end;
     end;
     end;
{----------------------------------------------------}
     procedure fight;
     begin

     repeat udar:= readkey;
     clrscr;
     writeln('udary: w-golova,s-nogi,a-jivot.d-poyas');
     write('zombie healse',zombie_healse,'/',hero_healse,'hero_healse');
     ud:=0;
     case udar of
     #119: ud:=1;
     #115: ud:=2;
     #97: ud:=3;
     #100: ud:=4;
     end;
     if (ud=1)or(ud=2)or(ud=3)or(ud=4) then
      begin
      hero_healse:=hero_healse-random(zombie_damage);
      zombie_healse:=zombie_healse-random(hero_damage);
      ud:=0;
      end;
      until(hero_healse<=0) or (zombie_healse<=0);
      if hero_healse>0 then
       begin
       clrscr;
       gotoxy(2,40);
       write('you win');
       n:=n+1;
       zx:=random(70)+1;
       zy:=random(20)+1;
        zombie_healse:=30;
       zombie_damage:=10;
       s:=0;
       end;
       if hero_healse<=0 then
       begin
       clrscr;
       gotoxy(40,10);
       write('game over   press enter');
       readln;
       snap:=#27;
       s:=2;
       end;
      end;
     procedure map;
     begin
     if (x=zx) and (y=zy) then
     begin
     gotoxy(10,40);
     writeln;
     writeln('est zombie press spase to fight');
     spase:=readkey;
     case spase of
     #32: s:=2
     end;
     if s=2 then
     begin
     clrscr;
     fight;
     end;
     end;
     end;

{---------------------------------------------------------}

  begin
{  sozdanie;}
  clrscr;
  money:=0;
  n:=0;
   hero_healse:=55;
    zombie_healse:=30;
    zombie_damage:=10;
    hero_damage:=15;
    my:=10;
    my:=15;
    zx:=10;
    zy:=20;
    hx:=10;
    hy:=10;
   y:=5;
   x:=5;
   textbackground(2);
  GoToXY(X,Y);
  textcolor(1);
  writeln(hero);
  snap:=readkey;
  Repeat snap:=readkey;

  textbackground(2);
   clrscr;
    gotoxy(60,1);
   write('chislo pobed=',n);
   gotoxy(1,1);
   write('health=',hero_healse);
   gotoxy(15,1);
   write('gold=',money);
    gotoxy(Zx,Zy);
  write(zombie);
   case snap of
  #72: y:=y-1;
  #80: y:=y+1;
  #75: x:=x-1;
  #77: x:=x+1;
  #102: s:=1;
   end;
  life;
  map;
  GoToXY(X,Y);
  writeln(hero);


  Until snap=#27;
  clrscr;

  end.
.

минусов много, но в перспективе создание и использование файлов с характеристиками юнитов, возможность игры на разных модулях(картах), может даже возможност выполнения квестов.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


The matrix has me!!!
**

Группа: Пользователи
Сообщений: 74
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Может для начала лучше заняться созданием движущихся zombie? да и не одного, и чтоб они тоже нападали, возможно даже плодились чтоб, а то так не интересно играть, проиграть неподдаваясь невозможно! smile.gif
Тогда и необходимость в картах отпадёт, просто играть будет интересней!!!


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Михаил

Репутация: -  0  +


приму к сведению, хорошая идея)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.01.2025 17:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name