Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 19.11.2006, 18:01   #16
DarkKnight
Знающий
 
Регистрация: 09.11.2006
Сообщений: 256
Написано 2 полезных сообщений
(для 2 пользователей)
Re: Нахождение пути

я сделал.тоько вот он красит квадратики только по диагонали (
завтра попробую разобраться почему.если кто-то знает почему,выкладывайте тут.
(Offline)
 
Ответить с цитированием
Старый 20.11.2006, 13:36   #17
DarkKnight
Знающий
 
Регистрация: 09.11.2006
Сообщений: 256
Написано 2 полезных сообщений
(для 2 пользователей)
Re: Нахождение пути

Warez_Men,смотри такой код вроде должен работать?Функция MouseDown,проверка,если щелкнул по постому квадрату,то рисуется препятсявие,иначе на рисуется.
код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;

type
TForm1 = class(TForm)
procedure FormDblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormPaint(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
a:array[1..10,1..30] of integer;
i,x,y,n,l,g:integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
l:=20;//ширина и высота кубика
//Присваиваем X и У начальные значения
x:=-20;
y:=-20;
//Забиваем в массив Х и Y-координаты
for i:=1 to 30 do
begin
x:=x+l;
y:=y+l;
a[1,i]:=x;
a[2,i]:=y;
a[3,i]:=0; //Первоначально присваиваем всем кубикам значение 0,т.е. кубик пустой.
end;
a[3,2]:=3; //Втророй кубик по оси Y и 10-й
a[4,2]:=180; //по оси X будет конечной точкой,т.е. зеленым.
end;

procedure TForm1.FormDblClick(Sender: TObject);
begin
//Берём координаты из массива
//и рисуем квадратики с синей штриховкой
for n:=1 to 30 do
begin
for i:=1 to 30 do
begin
Canvas.Brush.Color := clblue;
Canvas.Brush.Style := bsFDiagonal;
Canvas.Rectangle(a[1,n],a[2,i],a[1,n]+l,a[2,i]+l);
end;
end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
For n:=1 to 30 do
begin
For i:=1 to 30 do
begin
if(X>=a[1,n]) and (X<=(a[1,n]+l)) and (Y>=a[2,i]) and (Y<=(a[2,i]+l))
and (a[3,i]=0)and(a[4,i]<a[1,n])and(a[4,i]>(a[1,n])+l)
then
begin
a[3,i]:=1;
a[4,i]:=a[1,n];
Canvas.Brush.Color := clblue;
Canvas.Brush.Style := bsSolid;
Canvas.Rectangle(a[1,n],a[2,i],a[1,n]+l,a[2,i]+l);
end;
end;
end;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
//Берём координаты из массива
//и рисуем пустые квадратики
for n:=1 to 30 do
begin
for i:=1 to 30 do
begin
case a[3,i] of
0:begin //клетка пуста
//Canvas.Brush.Color := clred;
Canvas.Brush.Style := bsClear;
Canvas.Rectangle(a[1,n],a[2,i],a[1,n]+l,a[2,i]+l);
end;
2:begin //начальная точка
if (a[4,i])=(a[1,n]) then
begin
Canvas.Brush.Color := clred;
Canvas.Brush.Style := bsSolid;
Canvas.Rectangle(a[1,n],a[2,i],a[1,n]+l,a[2,i]+l);
end
else
begin
Canvas.Brush.Style := bsClear;
Canvas.Rectangle(a[1,n],a[2,i],a[1,n]+l,a[2,i]+l);
end;
end;
3:begin //конечная точка
if (a[4,i])=(a[1,n]) then
begin
Canvas.Brush.Color := clGreen;
Canvas.Brush.Style := bsSolid;
Canvas.Rectangle(a[1,n],a[2,i],a[1,n]+l,a[2,i]+l);
end
else
begin
Canvas.Brush.Style := bsClear;
Canvas.Rectangle(a[1,n],a[2,i],a[1,n]+l,a[2,i]+l);
end;
end;
1:begin //препятствие
if (a[4,i])=(a[1,n]) then
begin
Canvas.Brush.Color := clblue;
Canvas.Brush.Style := bsSolid;
Canvas.Rectangle(a[1,n],a[2,i],a[1,n]+l,a[2,i]+l);
end
else
begin
Canvas.Brush.Color := clgreen;
Canvas.Brush.Style := bsClear;
Canvas.Rectangle(a[1,n],a[2,i],a[1,n]+l,a[2,i]+l);
end;
end;
end;
end;
end;
end;

end.
(Offline)
 
Ответить с цитированием
Старый 02.12.2006, 15:53   #18
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Re: Нахождение пути

DarkKnight тебе еще это нужно?
(Offline)
 
Ответить с цитированием
Старый 02.12.2006, 19:46   #19
DarkKnight
Знающий
 
Регистрация: 09.11.2006
Сообщений: 256
Написано 2 полезных сообщений
(для 2 пользователей)
Re: Нахождение пути

я пока простановил проект )
если знаешь как исправить ошибку,говори,буду дальше кодить.
(Offline)
 
Ответить с цитированием
Старый 03.12.2006, 14:29   #20
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Re: Нахождение пути

Касяк у тебя в and (a[3,i]=0)and(a[4,i]<a[1,n])and(a[4,i]>(a[1,n])+l)
что это вообще я не понимаю (для чего это?) Вообще такие вещи лучше делать кслассами или хотябы с помощью типов...
(Offline)
 
Ответить с цитированием
Старый 03.12.2006, 15:35   #21
DarkKnight
Знающий
 
Регистрация: 09.11.2006
Сообщений: 256
Написано 2 полезных сообщений
(для 2 пользователей)
Re: Нахождение пути

я делфи знаю,но с классами не работал,и типами тоже ((((
надо наверно весь код переписывать?
(Offline)
 
Ответить с цитированием
Старый 04.12.2006, 02:01   #22
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Re: Нахождение пути

Похорошему нужно а то у тебя в коде вообще сложно разобратся.... а с классами и типами все просто... могу помочь.... стучи в аску раскажу...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
алгоритм поиска пути ии mifos JAVA Micro Edition 10 12.07.2011 17:34
Нахождение точки удовл. правилу Делоне SBJoker Математика 8 12.12.2007 01:11
Пути elmortem 2D-программирование 11 30.08.2007 12:18
Поиск пути Fant 3D-программирование 21 20.07.2007 19:21
Поиск пути WaReZ_MEN 3D-программирование 10 27.04.2007 02:24


Часовой пояс GMT +4, время: 21:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com