form1.Canvas. LineTo(325,form1.Height); - рисуем линию из точки (325,0) в точку с координатами (325, form1.Width). form1.Heigth – высота формы, то есть получим вертикальную линию во всю высоту формы.

10.  Поместите данные операторы в код кнопки Button1.

11.  Запустите программу, проверьте. После щелчка по любой из кнопок, должна появиться вертикальная черта (рис)

9-1

Рис.34. Форма приложения

12.  Самостоятельно сделайте так, чтобы слева появилась еще одна черта - линия Старта (как на рис).

А как сделать игру для двоих? Это уже не трудно. Для этого нужно:

Поместить еще 5 кнопок справа у самого края формы, отключить их - свойство Enabled.

Изменить обработчик события 1-ой кнопки, чтобы при достижении всех пяти кнопок финиша, включались другие пять кнопок.

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

При достижении всех кнопок финиша сравниваем количество ходов 1-го и второго игрока (соответствующие переменные) и Выводим информацию о победителе.

13.  Необходимо сделать это самим. Всей информацией для этого Вы обладаете.

Самостоятельно: придумайте сами какую-либо подобную игру и воплотите ее в жизнь.

Задание 4. Создать приложение «Игровой автомат»

На нынешнем уроке мы создадим игру, имитирующую игровой автомат.

Создание игры мы опишем так, как ее создавал один из наших учеников.

Итак, для игры нам необходимо: 3 label-а (для вывода информации о том, какие фишки выпали), кнопка для начала игры, информация о выигрыше, информация о моем счете.

НЕ нашли? Не то? Что вы ищете?

1. Создайте форму, как показано на рисунке:

pic1

Рис.36. Форма приложения

Логика программы:

В начале игры пользователю выдаем сумму, равную 1000р.

При нажатии на кнопку Играем в label1, label2 в label3 заносятся разные случайные цифры. При совпадении всех трех чисел - выводим надпись о победе, а сумму ставки увеличиваем в 5 раз. В случае проигрыша сумму игрока уменьшаем на 100р - это наша ставка.

Начинаем прописывать код кнопки Играем:

1.  Сделайте двойной щелчок по кнопке Играем.

2.  В обработчике события напишем (то, что выделено цветом):

randomize; - запускаем генератор случайных чисел

x:= random(3)+1; - вводим переменную, отвечающую за первое число - x. Этой переменной присваиваем любое число от 1 до 3. (Напомню, что random(3) использовать нельзя, т. к. компьютер в этом случае генерирует число в промежутке от 0 до 2, поэтому независимо от результата я прибавил число 1).

label1.Caption:=IntToStr(x);- выводим число на экран.

3.  Добавляем операторы для других чисел:

y:= random(3)+1;

label2.Caption:=IntToStr(y);

z:= random(3)+1;

label3.Caption:=IntToStr(z);

Что теперь? Сравниваем их, if ((x=y) and (x=z) and (y=z))

и если они равны, то увеличиваем сумму на 500р (за выигрыш) then sum:= sum+ 100*5;

иначе – уменьшаем сумму на 100 руб (за проигрыш) else sum:= sum-100;

4.  Продолжаем программировать кнопку:

Выводим на экран сведения о деньгах: label5.Caption:='У вас на счету: ' + IntToStr (Sum);

Вводим переменную для счета сыгранных игр, и, поскольку один раз уже сыграли, то n:=n+1;

Выводим на экран сведения о количестве сыгранных игр label6.Caption:='Количество игр: ' + IntToStr (n);

Заканчиваем игру, когда пользователь сыграет 10 раз:

if n=10 then

begin

showMessage ('Игра закончена! У вас ' + IntToStr (Sum)+' руб');

form1.Close;

end;

5.  Описываем переменные.

6.  В нашей программе участвуют 5 переменных. 3 из них внутренние - это x, y,z. Внутренние - это значит используются только внутри данной процедуры. Есть и другое название - локальные. Их описывают внутри процедуры, сразу после названия. Посмотрите, сделайте так же у себя:

procedure TForm1.Button1Click(Sender: TObject);

var x, y,z:integer;

begin

7.  Две другие будут участвовать еще и в процедуре создания формы: OnCreate. Поэтому в раздел implementations запишите их, как у меня:

implementation

var n, sum:integer;

{$R *.DFM}

8.  И последнее. Надо задать начальные значение для счетчика n= 0 и для Sum= 1000.

Это производится в процедуре создания формы OnCreate.

Если не вспомнили, посмотрите приведенный ниже код, сверьте его со своим:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

var n, sum:integer;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var x, y,z:integer;

begin

randomize;

x:= random(3)+1;

label1.Caption:=IntToStr(x);

y:= random(3)+1;

label2.Caption:=IntToStr(y);

z:= random(3)+1;

label3.Caption:=IntToStr(z);

if ((x=y) and (x=z) and (y=z))

then

sum:= sum+ 100*5;

else

sum:= sum-100;

label5.Caption:='У вас на счету: ' + IntToStr (Sum);

n:=n+1;

label6.Caption:='Количество игр: ' + IntToStr (n);

if n=10 then

begin

showMessage ('Игра закончена! У вас ' + IntToStr (Sum)+' руб');

form1.Close;

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

n:=0;

sum:=1000;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

end.

Компонент Image

Далее мы изменим нашу игру, сделаем ее более похожей на настоящую. Для этого используем графические объекты.

Предварительная подготовка:

1.  Создайте новый проект и сохраните его в папке automation.

2.  Скачайте с нашего сайта файл forGame, распакуйте ее, и все рисунки поместите в папку automation.

Итак начнем:

3.  Размер формы измените на 335*465 (помните свойства Width и Height).

4.  На форму поместите компонент Image. Он находится на вкладке Additional (дополнительные) и имеет вид:

5.  Рисунок растянем на всю форму, для этого свойству Align присвойте значение alClient.

В рисунок поместим изображение игрового автомата. Для этого:

6.  нажмите кнопку … справа от свойства Picture. Откроется окно Picture Editor – редактора изображений.

7.  Нажмите в этом окне кнопку Load… и выберите файл fon1.jpg. из той папки, куда Вы переписали рисунки.

pic2

Рис.37. Форма приложения

8.  Нажмите кнопку ОК и рисунок заполнит всю область формы.

9.  На данный рисунок сверху поместите еще 3 рисунка (image2 , image3, image4).

10.  Размер этих компонентов сделайте равным: 105*73 и расположите их так, чтобы они располагались на как у меня (выделены красным цветом)….

Рис.38. Форма приложения

11.  У всех этих Image-ей свойство Strech поставьте равным True (загружаемая картинка будет точно походить под размеры компонента).

Добавляем кнопки с рисунками

12.  Поставьте на форму 2 кнопки с рисунками. За это отвечает компонент ВitBtn - он находится на вкладке Additional.

13.  Свойство Caption у этих кнопок очистите.

14.  У первой кнопки выберите свойство Glyph и загрузите в него файл btn1. Так же как мы делали с компонентом Image.

15.  У второй кнопки в Glyph поместите файл btn2.

Без%20Имени-2

Рис.39. Форма приложения

Начинаем программирование.

Что мы будем делать? При нажатии на кнопку Играем программа запускает генератор чисел, случайным образом выбирает 3 числа и помещает их в память ПК или в label-ы…В общем все так же как в программе, написанной нами на предыдущем уроке... Единственное, что нового, так это 3 контейнера для изображений. Я предлагаю такой ход:

Если выпадает цифра 1, то в Image я помещаю картинку pic1, если выпадает цифра 2, то помещаю pic2, иначе – pic3.

Код для этого выражения выглядит так:

Для переменной х:

If x=1 then image2.picture. loadFromFile (‘pic1.jpg’);

Но учтите, что если Вы будет использовать Label-ы, то их необходимо сначала поставить на форму.

Самостоятельно сделайте игру.

Задание 5. Создать игру «Поймай кнопку»

Знакомство с компонентом Таймер

Все компоненты, которые мы использовали ранее в своих программах, были визуальные. Что это значит? А то, что любой компонент, который мы помещали на форму, был виден и выполнял какую-либо видимую роль.

Однако, есть еще и компоненты, которые выполняют свою работу не будучи видными для постороннего глаза. Одним из таких компонентов является Таймер. В его задачу входит обрабатывать какое-либо сообщение через определенные интервалы времени.

Хотя этот компонент и невидим в процессе работы программы, у него тоже есть свои события и свойства. Вернее, событие одно - OnTimer, которое определяет, что должна делать программа, когда истечет заданный интервал.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Основные порталы (построено редакторами)

Домашний очаг

ДомДачаСадоводствоДетиАктивность ребенкаИгрыКрасотаЖенщины(Беременность)СемьяХобби
Здоровье: • АнатомияБолезниВредные привычкиДиагностикаНародная медицинаПервая помощьПитаниеФармацевтика
История: СССРИстория РоссииРоссийская Империя
Окружающий мир: Животный мирДомашние животныеНасекомыеРастенияПриродаКатаклизмыКосмосКлиматСтихийные бедствия

Справочная информация

ДокументыЗаконыИзвещенияУтверждения документовДоговораЗапросы предложенийТехнические заданияПланы развитияДокументоведениеАналитикаМероприятияКонкурсыИтогиАдминистрации городовПриказыКонтрактыВыполнение работПротоколы рассмотрения заявокАукционыПроектыПротоколыБюджетные организации
МуниципалитетыРайоныОбразованияПрограммы
Отчеты: • по упоминаниямДокументная базаЦенные бумаги
Положения: • Финансовые документы
Постановления: • Рубрикатор по темамФинансыгорода Российской Федерациирегионыпо точным датам
Регламенты
Термины: • Научная терминологияФинансоваяЭкономическая
Время: • Даты2015 год2016 год
Документы в финансовой сферев инвестиционнойФинансовые документы - программы

Техника

АвиацияАвтоВычислительная техникаОборудование(Электрооборудование)РадиоТехнологии(Аудио-видео)(Компьютеры)

Общество

БезопасностьГражданские права и свободыИскусство(Музыка)Культура(Этика)Мировые именаПолитика(Геополитика)(Идеологические конфликты)ВластьЗаговоры и переворотыГражданская позицияМиграцияРелигии и верования(Конфессии)ХристианствоМифологияРазвлеченияМасс МедиаСпорт (Боевые искусства)ТранспортТуризм
Войны и конфликты: АрмияВоенная техникаЗвания и награды

Образование и наука

Наука: Контрольные работыНаучно-технический прогрессПедагогикаРабочие программыФакультетыМетодические рекомендацииШколаПрофессиональное образованиеМотивация учащихся
Предметы: БиологияГеографияГеологияИсторияЛитератураЛитературные жанрыЛитературные героиМатематикаМедицинаМузыкаПравоЖилищное правоЗемельное правоУголовное правоКодексыПсихология (Логика) • Русский языкСоциологияФизикаФилологияФилософияХимияЮриспруденция

Мир

Регионы: АзияАмерикаАфрикаЕвропаПрибалтикаЕвропейская политикаОкеанияГорода мира
Россия: • МоскваКавказ
Регионы РоссииПрограммы регионовЭкономика

Бизнес и финансы

Бизнес: • БанкиБогатство и благосостояниеКоррупция(Преступность)МаркетингМенеджментИнвестицииЦенные бумаги: • УправлениеОткрытые акционерные обществаПроектыДокументыЦенные бумаги - контрольЦенные бумаги - оценкиОблигацииДолгиВалютаНедвижимость(Аренда)ПрофессииРаботаТорговляУслугиФинансыСтрахованиеБюджетФинансовые услугиКредитыКомпанииГосударственные предприятияЭкономикаМакроэкономикаМикроэкономикаНалогиАудит
Промышленность: • МеталлургияНефтьСельское хозяйствоЭнергетика
СтроительствоАрхитектураИнтерьерПолы и перекрытияПроцесс строительстваСтроительные материалыТеплоизоляцияЭкстерьерОрганизация и управление производством