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 байт ) Кол-во скачиваний: 675

Тока тут не звёздочка, а прямоугольник!!! 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

 





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