Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Карточная игра [Delphi, Windows]


Страницы:   1 2

Филипок:) ©   (2006-07-30 17:44:00) 

Привет всем,я решил написать карточную игру, и у меня возникли проблемы. У меня есть 54 фотографии карт и 54 image и мне нужно что бы в них загружались картинки карт, причем при каждом запуске игры должны появляться разные карты.
P.S. Наверно вопрос дурацкий но я ещё учусь, так что не обежайтесь :)


Rial   (2006-07-30 17:55:00) [21]

Я не ошибся, именно 54 TImage ??

Const MaxCards = 54;

Type

       TCardId = 0..MaxCards - 1;
       TCards = Array[TCardsId] of TBitmap;

Var
    Cards : TCards;

...
OnCreate:

For I:=Low(TCardId) to High(TCardId) do begin
Cards[I]:=TBitmap.Create;
Cards[I].LoadFromFile('Cards\'+IntToHex(I,2)+'.bmp');
end;

...
OnDestroy:
For I:=Low(TCardId) to High(TCardId) do
Cards[I].Free;

Про Image забудь.
Испрользуй BitBlt или на крайний случай Cards[I].Draw(..);
Все это дело рисуй в OnPaint формы.

Про разные карты что то не понял.
В смысле, тебе эх перемешать надо ?

Type
       TCardsRihe = Array[TCardId] of TCardId;
Здесь у нас колода, где указывается, на каком месте какая карта лежит

Var
    CardRihe : TCardRihe;
...

Мешаем колоду

procedure Swap(Const A, B : TCardId);
Var Buf : TCardId;
begin
Buf:=CardTihe[A];
CardRihe[A]:=CardRihe[B];
CardRihe[B]:=Buf;
end;

For I:=Low(TCardId) to High(TCardId) do
CardRihe[I]:=I;
For I:=Low(TCardId) to High(TCardId) do
For J:=I+1 to High(TCardId) do
 If (Random(2) = 0)then Swap(I, J);

Тупо, но потом пооптимизируешь на досуге.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо