Пользователь |
Сообщение: Паскаль (Тема#46227) |
ROKO
белка-маньяк
Возраст: 36
: UA, Kiev
С нами с 21.03.06
Посты: 14763
|
Это паскаль, а не Делфи ,я уже не говорю про Си =))) Какое компилирование =)
эммм... а как ты себе представляешь работу программы БЕЗ компиляции?
Там чтобы сделать нормальный вид для игрушки нужен километровый код
Большого ума не надо чтобы скомпилировать в ехе... чтобы ежик по экрану пробежался. А вот меню, кнопки, стенки...
|
|
|
Franchesko
Пет Рарка
Возраст: 31
: Киев
С нами с 13.05.08
Посты: 15445
|
какое нафиг меню Еще скажи граф использовать)) Я учусь на первом курсе второй семестр - у меня пока что самый примитив
|
|
|
KillMachine UA
генералиссимус
Возраст: 43
: Київ
С нами с 10.12.07
Посты: 25376
|
Это паскаль, а не Делфи ,я уже не говорю про Си =))) Какое компилирование =)
эммм... а как ты себе представляешь работу программы БЕЗ компиляции?
Там чтобы сделать нормальный вид для игрушки нужен километровый код
Большого ума не надо чтобы скомпилировать в ехе... чтобы ежик по экрану пробежался. А вот меню, кнопки, стенки...
при чем тут программирование кнопочек к необходимости компиляции?
|
|
|
ROKO
белка-маньяк
Возраст: 36
: UA, Kiev
С нами с 21.03.06
Посты: 14763
|
Меня насиловали Паскалем с пятого класса =)) когда-то в нем норм соображал.
Делал какие-то гоночки в 2д с трассой на экран, а 3д стрелялка( как в первом думе) это вобще эпик задача ... обьекты рисовать и расстояния до них мерять векторами .
|
|
|
ROKO
белка-маньяк
Возраст: 36
: UA, Kiev
С нами с 21.03.06
Посты: 14763
|
при чем тут программирование кнопочек к необходимости компиляции?
я к тому, что компилирование там не больше как фича.
Никто проги под Винду на Паскале не пишет ибо маразм.
Паскаль - это азы для освоения программирования.
|
|
|
Nameless
Maximus - Lite Edition
: 404
С нами с 02.11.05
Посты: 21233
|
эммм... а как ты себе представляешь работу программы БЕЗ компиляции?
запросто, если это интерпретируемый язык. Впрочем, к Паскалю это отношения не имеет )
|
|
|
KillMachine UA
генералиссимус
Возраст: 43
: Київ
С нами с 10.12.07
Посты: 25376
|
при чем тут программирование кнопочек к необходимости компиляции?
я к тому, что компилирование там не больше как фича.
Никто проги под Винду на Паскале не пишет ибо маразм.
Паскаль - это азы для освоения программирования.
роко, я всё больше утверждаюсь во мнении, что ты имеешь весьма отдаленное понятие о том, что такое компиляция, и зачем она вообще нужна
|
|
|
ROKO
белка-маньяк
Возраст: 36
: UA, Kiev
С нами с 21.03.06
Посты: 14763
|
конечно не знаю =))) учил Турбо Паскал с 4ого по 10ый класс и семестр еще в Универе (как ни странно надоело программирование)
Паскаль реально нужен чтобы понять что такое переменные, условия, массивы, координаты, ввод\вывод данных. А не чтобы скомпилировать программу в которой пиксель по осям ездит =))
Отредактировано ROKO 10.02.11 18:55. Причина редактирования: Причина не указана.
|
|
|
Franchesko
Пет Рарка
Возраст: 31
: Киев
С нами с 13.05.08
Посты: 15445
|
Не получается нормально дописать... думаю проблема в том, что перед переписыванием массива нужно запоминать индексы "*"... но опять же не хочет...
Code:
Program game;
Uses crt;
Const
m=20;
n=10;
Wkey = #119;
Akey = #97;
Skey = #115;
Dkey = #100;
Esckey = #27;
Procedure output_mas(var mas:array [1..m,1..n] of char);
var
i,j:integer;
begin
for j:=1 to n do
begin
for i:=1 to m do
begin
write(mas[i,j]);
end;
writeln;
end;
end;
Procedure A_pressed(var mas:array [1..m,1..n] of char);
var
i,j:integer;
begin
clrscr;
for j:=1 to n do
begin
for i:=1 to m+1 do
begin
mas[i-1,j]:='*';
end;
writeln;
end;
end;
Procedure D_pressed(var mas:array [1..m,1..n] of char);
var
i,j:integer;
begin
clrscr;
for j:=1 to n do
begin
for i:=1 to m-1 do
begin
mas[i,j]:=' ';
mas[i+1,j]:='*';
end;
writeln;
end;
end;
Procedure W_pressed(var mas:array [1..m,1..n] of char);
var
i,j:integer;
begin
clrscr;
for j:=1 to n+1 do
begin
for i:=1 to m do
begin
mas[i,j-1]:='*';
end;
writeln;
end;
end;
Procedure S_pressed(var mas:array [1..m,1..n] of char);
var
i,j:integer;
begin
clrscr;
for j:=1 to n-1 do
begin
for i:=1 to m do
begin
mas[i,j+1]:='*';
end;
writeln;
end;
end;
var
mas:array [1..m,1..n] of char;
i,j:integer;
CH:char;
BEGIN
for j:=1 to n do
begin
for i:=1 to m do
begin
mas[i,j]:=' ';
mas[1,1]:='*';
mas[m,n]:='$';
write(mas[i,j]);
end;
writeln;
end;
begin
repeat
repeat until KeyPressed;
CH := Readkey;
if (CH = #97) then A_pressed(mas);
output_mas(mas);
if (CH = #100) then D_pressed(mas);
output_mas(mas);
if (CH = #119) then W_pressed(mas);
output_mas(mas);
if (CH = #115) then S_pressed(mas);
output_mas(mas);
until '*'=mas[m,n];
If '*'=mas[m,n] then
writeln('Congratulations!!!');
end;
end.
|
|
|
KillMachine UA
генералиссимус
Возраст: 43
: Київ
С нами с 10.12.07
Посты: 25376
|
|
|
Franchesko
Пет Рарка
Возраст: 31
: Киев
С нами с 13.05.08
Посты: 15445
|
неужели все настолько плохо?
|
|
|
KillMachine UA
генералиссимус
Возраст: 43
: Київ
С нами с 10.12.07
Посты: 25376
|
|
|
Franchesko
Пет Рарка
Возраст: 31
: Киев
С нами с 13.05.08
Посты: 15445
|
|
|
KillMachine UA
генералиссимус
Возраст: 43
: Київ
С нами с 10.12.07
Посты: 25376
|
если не нарисуй на бумажке, то хотя бы словами запиши логику алгоритма, писать с лёту, конечно, весело, но получается какая-то хрень
|
|
|
KillMachine UA
генералиссимус
Возраст: 43
: Київ
С нами с 10.12.07
Посты: 25376
|
из серии "что должно роисходить при нажатии кнопки движения?"
"должны изменяться на 1 текущие координаты ежа"
после проверки на возможность изменения, естественно, мож он до края дошел
|
|
|
Franchesko
Пет Рарка
Возраст: 31
: Киев
С нами с 13.05.08
Посты: 15445
|
Решил кардинально переделать принцип и пойду через классы писать.
|
|
|
KillMachine UA
генералиссимус
Возраст: 43
: Київ
С нами с 10.12.07
Посты: 25376
|
|
|
KillMachine UA
генералиссимус
Возраст: 43
: Київ
С нами с 10.12.07
Посты: 25376
|
тоже немного побаловался
Code:
program Yozh;
uses crt;
const
fx=20;
fy=10;
Wkey=#119;
Akey=#97;
Skey=#115;
Dkey=#100;
Esckey=#27;
type
fieldarray = array[1..fx, 1..fy] of integer;
var
yx, yy : integer;
ch : char;
field : fieldarray;
procedure SetField(var field : fieldarray);
var x,y : integer;
begin
for x := 1 to fx do
for y := 1 to fy do field [x,y] := 1;
field[15,8]:=5; {food}
end;
procedure Redraw(var ch : char);
var x,y : integer;
begin
ClrScr;
for y := 1 to fy do begin
for x := 1 to fx do begin
if (x=fx) and (y=fy) then begin
if (field[x,y] = 5) then ch:=Esckey;
Write('*');
end;
Write('o');
Writeln;
end
end
end;
procedure MoveUp(var yy : integer);
begin
if (yy > 1) then yy:=(yy-1);
end;
procedure MoveDown(var yy : integer);
begin
if (yy < fy) then yy:=(yy+1);
end;
procedure MoveLeft(var yx : integer);
begin
if (yx > 1) then yx:=(yx-1);
end;
procedure MoveRight(var yx : integer);
begin
if (yx < fx) then yx:=(yx+1);
end;
begin
SetField(field);
yx:=1;
yy:=1;
Redraw(ch);
repeat
repeat until Keypressed;
ch := Readkey;
case ch of
Wkey : MoveUp(yy);
Skey : MoveDown(yy);
Akey : MoveLeft(yx);
Dkey : MoveRight(yx);
end;
Redraw(ch);
until (ch = Esckey);
end.
но чотто оно тоже работать не хочет
|
|
|
Franchesko
Пет Рарка
Возраст: 31
: Киев
С нами с 13.05.08
Посты: 15445
|
завтра в универе поковыряю просто я вообще еще хочу потом сделать что то типа лабиринта) будем думать
З.Ы. у меня в паскале не захотело обьекты переваривать и пришлось делфи ставить...
|
|
|
Franchesko
Пет Рарка
Возраст: 31
: Киев
С нами с 13.05.08
Посты: 15445
|
Возвращаемся к теме Не могу удумать, как мне прописать изменение координаты. Вот собственно код(делфи):
жмакаем и получаем код
Code:
program game;
{$APPTYPE CONSOLE}
uses
crt32;
Type
Point2D = class
x, y : integer;
end;
Type
Jivotnoe = class
{peremennie}
private position : Point2D;
private face : char;
{procedury}
public procedure setFace( newFace : char );
public function getFace() : char;
public procedure setPosition( newPosition : Point2D );
public function getPosition() : integer;
public procedure MoveUp();
public procedure MoveDown();
public procedure MoveLeft();
public procedure MoveRight();
end; {end of Jivotnoe}
procedure Jivotnoe.setFace( newFace : char );
begin
face := newFace;
end; {End of setFace}
function Jivotnoe.getFace() : char;
begin
getFace := face;
end; {End of getFace}
procedure Jivotnoe.setPosition( newPosition : Point2D );
begin
position := newPosition;
end;
function Jivotnoe.getPosition() : integer;
begin
getPosition := p;
end;
Procedure Jivotnoe.MoveUp();
begin
ВОТ ЗДЕСЬ НУЖНО ПРОПИСАТЬ ИЗМЕНЕНИЕ "У(координаты)" На +1
end;
var
jogik : Jivotnoe;
begin
{jogik.face = '*';}
jogik.setFace( '*' );
writeln( jogik.getFace() );
readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.
Отредактировано Franchesko 18.02.11 18:17. Причина редактирования: Причина не указана.
|
|
|