"Эверест" - Центр Практической
Информатики
представляет вводный курс
"Delphi для чайников"
Урок 22.
"Создаем игру 21-продолжение".
Располагаем карты.
Как расположить карты в процессе игры? В Image1, это понятно. Туда пойдет
первая карта. Во второй Image- 2-ая. Но как это сделать? Можно поступить
следующим образом: ввести дополнительную переменную и сопоставлять ей
значение Image. А можно поступить следующим образом: у каждого элемента
в Delphi есть свойство Tag. Это свойство в процессе работы не используется,
его разработчики ввели специально для программиста. В этом свойстве можно
хранить целое число. Что мы и сделаем:
Если карта уже находится в Image, то его свойство Tag присвоим равным
1.
1. Откройте двойным щелчком обработчик события кнопки Дать
карту.
2. Допишите следующие строки:
if image1.Tag=0 then
begin
image1.Picture:=image8.Picture;
image1.Tag:=1;
end
3. Аналогично и для других рисунков:
else if image2.Tag=0 then
begin
image2.Picture:=image8.Picture;
image2.Tag:=1;
end
else if image3.Tag=0 then
begin
image3.Picture:=image8.Picture;
image3.Tag:=1;
end
else if image4.Tag=0 then
begin
image4.Picture:=image8.Picture;
image4.Tag:=1;
end
else if image5.Tag=0 then
begin
image5.Picture:=image8.Picture;
image5.Tag:=1;
end
else if image6.Tag=0 then
begin
image6.Picture:=image8.Picture;
image6.Tag:=1;
end
else if image7.Tag=0 then
begin
image7.Picture:=image8.Picture;
image7.Tag:=1;
end;
4. Теперь необходимо прописать условия окончания игры:
bitbtn1.Caption:='Дать еще карту';
if s=21 then
begin
label2.Caption:='Ты победил';
button3.Enabled:=false;
bitbtn1.Enabled:=false;
end;
if s>21 then
begin
label2.Caption:= 'Извини, Ты проиграл';
button3.Enabled:=false;
bitbtn1.Enabled:=false;
end;
Самостоятельно: пропишите подобные
механизмы и для компьютера (щелчок по кнопке Себе)
Далее, необходимо подумать, каким образом закончится игра и как компьютер
будет действовать в разных случаях.
Вот как это сделал я, по-моему, тут все ясно:
while s1<s do
begin
bitbtn2.Click;
sleep(500);
application.ProcessMessages();
end;
if s1=s then label3.Caption:= 'Я выиграл!';
if (s1>s) and (s1<22) then label3.Caption:= 'Я выиграл!';
if s1>21 then label3.Caption:= 'Ты выиграл!'
Все. Запускайте игру, наслаждайтесь.
Безусловно, у нашей игры еще куча недостатков: сам код громоздкий, карты
при раздаче могут повторяться и т.д.. Но в рамках тех знаний, которыми
мы обладаем, это невозможно.
Рисунки к игре Вы можете скачать с нашего сайта.. http://umnik.rikt.ru/projectgame/learn.html
Примечание :
Обращаю ваше внимание на то, что данный курс ознакомительный. Если Вы
желаете действительно научиться программированию и получить в руки мощный
инструмент для профессиональной работы, то приглашаем Вас на наш основной
курс по Delphi.
Вся информация находится по адресу: http://umnik.rikt.ru/everest/distant/delphi_os.htm
Учиться у нас выгодно. Не
верите?
Посмотреть архив данной рассылки Вы сможете на нашем сайте по адресу:
http://umnik.rikt.ru/projectgame/learn.html
Автор рассылки: Ишмуратов Р.К.
|