Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Правильно вывести массив


Автор: RinOSpro 8.5.2008, 13:45
в общем есть большой массив из него считываю значения по 4 то есть: 

0 0
0 0 

значения могут бать разными. 0, 1, 2, 8, 9

вот в зависимости что в массиве вывожу изображение

к примеру в куске массива

0 0
2 2  

тогда дорисовываю на image http://ipicture.ru/

и в сумме у меня получается футбольное поле
 http://ipicture.ru/

конечно это не лучший алгоритм... если не сказать хуже... 

Подскажите какие нибудь еще способы?

p.s. В заключение приведу ссылку http://forum.vingrad.ru/forum/topic-179008.html про что этот вопрос...

Автор: RinOSpro 12.5.2008, 11:29
Людииии! Ну не ужели нет ни одного мнения! 

Автор: HEyMEXA 12.5.2008, 14:20
у мну есть) выложи картинки а то париться неохото)

Автор: RinOSpro 12.5.2008, 14:54
HEyMEXA какие картинки? )) я их нарисовал всего 12 штук, а комбинаций их может быть гиганское количество поэтому и задаю вопрос как можно рациональнее это сделать.

Ну если кому картинки нужны которые уже нарисованы то вот:

Автор: RinOSpro 20.5.2008, 15:28
Люди проект горит!!! Попал в ступор помагите!!!

Автор: Rodman 20.5.2008, 15:36
ты не модешь элементы выделить или картинку вставить?

Автор: RinOSpro 20.5.2008, 15:54
Rodman  - в каком смысле? Имеешь в виду вместо того чтобы рисовать поле из массива  просто вставить картинку?

Могу но ходы всеравно придется как то выводить... а вот вывод по
0 0
0 0 
хоть какое то решение, хотя я не сомневаюсь что есть лучше споссоб.

Автор: Bitter 20.5.2008, 21:39
Я, например, вообще не понял в чём проблема. Ну работает, значит всё хорошо.... 

Автор: RinOSpro 21.5.2008, 08:44
Bitter - ты наверно не внимательно прочитал smile работать то работает. но есть одно но вот этих комбинаций

0 0   1 5    2 5
0 0   3 2    3 2

их же может быть тысячи!  Поэтому мой вариант это не выход. Ищу другой споссоб

Автор: Bitter 21.5.2008, 13:09
То есть размер поля большой... Почему тогда сделано 4-мя значениями? Почему не одним?

Автор: RinOSpro 22.5.2008, 12:05
Bitter как ты предлагаешь вывести вот такой массив?

  0  0  0  0  2  2  2  0  0  0  0
  2  2  2  2  2  0  2  2  2  2  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  8  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  2  2  2  2  0  2  2  2  2  2
  0  0  0  0  2  2  2  0  0  0  0

Это он в начальном состоянии и его вывести моим алгоритмом не проблема а когда в нем значения изменяться как тогда?...

Вот мой алгоритм вывода

Код

procedure TForm1.DrawGame;
var
  i, j : integer;
  bmpName : string;
  PartGnd : TBitmap;
begin
  PartGnd := TBitmap.Create;
  PartGnd.Canvas.Brush.Color := clWhite;

  for i := 0 to GrdWidht+1 do     // âûâîä ìàññèâà
  begin
    for j := 0 to GrdHeight-1 do
    begin
      bmpName := inttostr(FtbGround[i,j])+inttostr(FtbGround[i,j+1])+
                 inttostr(FtbGround[i+1,j])+inttostr(FtbGround[i+1,j+1]);
      if FileExists(FimagePath+bmpName+'.bmp') then
      PartGnd.LoadFromFile(FimagePath+bmpName+'.bmp');
      Image1.Canvas.Draw(j*16,i*16,PartGnd);
    end;
  end;

end;

Автор: RinOSpro 28.5.2008, 08:58
топик заглох.... видимо за отсутствием идей

Автор: Bitter 29.5.2008, 13:26
топик заглох, потому, что никому не понято чё надо-то. 


Цитата(RinOSpro @  22.5.2008,  12:05 Найти цитируемый пост)
Bitter как ты предлагаешь вывести вот такой массив?

  0  0  0  0  2  2  2  0  0  0  0
  2  2  2  2  2  0  2  2  2  2  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  8  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  2  2  2  2  0  2  2  2  2  2
  0  0  0  0  2  2  2  0  0  0  0


очень просто. замени угловые 2-ки на другие значения, например так:

  0  0  0  0  5  2  6  0  0  0  0
  5  2  2  2  7  0  8  2  2  2  6
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  2  0  0  0  0  0  0  0  0  0  2
  8  2  2  2  6  0  5  2  2  2  7
  0  0  0  0  8  2  7  0  0  0  0

а теперь рисуй рисунок, который соответствует цифре. одной цифрой ты можешь закодировать 256 рисунков.

Автор: RinOSpro 3.6.2008, 17:54
ничего не понял.

Добавлено через 32 секунды
и как вообще можно вывести массив который ты мне предложил

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)