50196 (Создание мини-игры "Магический квадрат"), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Создание мини-игры "Магический квадрат"", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "50196"

Текст 2 страницы из документа "50196"

1.1.5 TBitBtn – кнопка с изображением (Кнопка Close для закрытия окна); Name – BitBtn1. Кнопка Close размещается на панели. Свойство Kind – bkClose. Значение bkClose определяет типовой значок, надпись Close на кнопке, а также типовую функцию закрытия окна, которая будет связана с этой кнопкой.

1.1.6 TMaskEdit – поле с маской ввода (9 полей с маской ввода только цифровой информации). Устанавливаем ниже перечисленные значения свойств для всех девяти полей. Name – MEd1 .. MEd9. Раскрываем диалоговое окно свойства EditMask. В поле Input Mask вводим следующую последовательность символов: 9999;1;. В поле Character for Blanks вместо умалчиваемого символа-заполнителя, которым является символ подчеркивания (_), указываем пробел и закрываем окно.

1.2 Процедура обработки события OnPaint (для того, чтобы сделать рисунок с расширением .bmp фоновым). Свойство Bitmap содержит ссылку на объект класса TBitmap. Перед загрузкой объекта Bitmap его надо создать. Метод StretchDraw() растягивает или сжимает картинку так, чтобы она заполнила всю форму.

1.3 Процедура обработки события OnCanResize (запрещающая изменение размеров формы).

1.4 Процедура обработки события OnActivate (программно задаем заголовок формы, обеспечиваем показ кнопки «Начать», скрываем кнопку «Проверить»).

2. Заполнение полей-клеток магического квадрата

2.1 Процедура обработки события OnClick кнопки Button2 («Начать»).

2.1.1 Процедура zapolnenie(x,y:integer) (По входящему параметру х заполняет клетки квадрата, по входящему параметру у одним из четырех способов очищает некоторые клетки, выводит в метке соответственную надпись, показывает кнопку «Проверить», прячет кнопку «Начать»).

2.1.2 В теле главной процедуры проверяем, была ли ситуации «Попробуй еще раз» (z=true). Если была, то вызываем процедуру zapolnenie(x,y:integer) со старыми значениями х и у; если нет (z=false), генерируем у – способ удаления клеток, х – начальное число х. Заполняем матрицу.

3. Проверка квадратной матрицы на предмет, является ли она магическим квадратом

Процедура обработки события OnClick кнопки Button1 («Проверить»). Пробуем преобразовать к числовому виду значения полей TMaskEdit. Если получилось (не осталось пустых полей), находим суммы по строкам, по столбцам, по диагоналям. Если полученные суммы равны, то выводим в метке надпись «Молодец! Все верно!», прячем кнопку «Проверить», показываем кнопку «Начать», z:=false (следующее заполнение будет сгенерировано). Если полученные суммы не равны, то выводим в метке надпись «Попробуй еще раз», прячем кнопку «Проверить», показываем кнопку «Начать», z:=true (следующее заполнение будет тем же, х и у не изменятся). Если не получилось преобразовать к числовому виду значения полей TMaskEdit, подаем звуковой сигнал, выводим сообщение «Не все клетки заполнены», выходим из процедуры.

4. Оформление диалогового окна «Магический квадрат», вызываемого одноименной командой главного меню

Caption – Магический квадрат, Name – OKBottomDlg. Размещаем компонент TMemo – многострочное редактируемое текстовое поле, вкладки Standart. Щелкаем мышью справа от свойства Lines. В окне String List Editor вводим текст о магическом квадрате. Размещаем компонент TStringGrid – текстовая таблица, вкладки Additional. Процедура обработки события OnPaint (для того, чтобы сделать рисунок с расширением .bmp фоновым) содержит процедуру пользователя для заполнения таблицы числами.

В процедуре создаем объект Bitmap, загружаем его из файла. Методом StretchDraw() заполняем всю форму рисунком Bitmap.

5. Оформление диалогового окна «Правила игры», вызываемого одноименной командой главного меню

Caption – Правила игры, Name – OKBottomDlg1. Размещаем компонент TMemo – многострочное редактируемое текстовое поле, вкладки Standart. Щелкаем мышью справа от свойства Lines. В окне String List Editor вводим текст с правилами игры. Процедура обработки события OnPaint (для того, чтобы сделать рисунок с расширением .bmp фоновым).

Кодирование

После того как определены требования к программе и составлен алгоритм решения, алгоритм записывается на выбранном языке программирования. В результате получается исходная программа. На этом этапе я выбрала язык программирования Delphi и записала алгоритм, листинг которого приводится в приложении.

Анализ и тестирование

Программа запускается с помощью файла Magic_sqr.exe. После запуска открывается окно, в котором необходимо заполнить матрицу нажатием кнопки «Начать» или покинуть программу.

Рис. 6. ПРОГРАММА ПОСЛЕ ЗАПУСКА

Рис. 7. ПРОГРАММА ПОСЛЕ ЩЕЛЧКА МЫШИ ПО КНОПКЕ «НАЧАТЬ»

После заполнения матрицы нажимаем на кнопку «Проверить», и на экране выводится сообщение (рисунок 8 или 9).

 

Рис. 8. ПРОГРАММА ПОСЛЕ ЩЕЛЧКА МЫШИ ПО КНОПКЕ «ПРОВЕРИТЬ»

Рис. 9. ПРОГРАММА ПОСЛЕ ЩЕЛЧКА МЫШИ ПО КНОПКЕ «ПРОВЕРИТЬ» 

На этом этапе программа была неоднократно протестирована, ошибок не выявлено. 

Создание справочной системы

Программа имеет меню «Help», которое содержит два пункта: «Магический квадрат» и «Правила игры».

Рис. 10. ПРОГРАММА ПОСЛЕ ЩЕЛЧКА МЫШИ ПО МЕНЮ «HELP»

Рис. 11. ПРОГРАММА ПОСЛЕ ВЫБОРА ПУНКТА МЕНЮ «МАГИЧЕСКИЙ КВАДРАТ»

Рис. 12. ПРОГРАММА ПОСЛЕ ВЫБОРА ПУНКТА МЕНЮ «ПРАВИЛА ИГРЫ»

Создание установочного диска

Из-за невысокой сложности программы, создание установочного диска нецелесообразно.


Заключение

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

Постоянно растет объем и сложность обрабатываемой информации, требуются все новые и новые виды ее представления. Как показывает практика, большинство пользователей уже не представляют себе, как бы они выполняли свою работу, с которой прекрасно справлялись еще 5 – 10 лет назад, без помощи компьютера.

В ходе исследовательской работы разработана тестирующая программа. Проектирование выполнено в системе Delphi. В работе:

  • представлена информация о магическом квадрате и используемом методе заполнения магического квадрата;

  • приведен теоретический материал о компонентах, используемых в программе;

  • представлен листинг программы;

  • приведен анализ и тестирование программы с подробным описанием.

В ходе работы я познакомилась с более широкими возможностями языка программирования Delphi, по сравнению с языком Pascal. Постараюсь применить полученные знания при участии в олимпиадном движении по программированию. А также очень хотелось бы создать серию математических мини-игр.


Библиографический список

1. Архангельский А.Я. Delphi 6. Справочное пособие – М.: ЗАО «Издательство БИНОМ», 2001.

2. Болл У., Коксетер Г. «Математические эссе и развлечения» - М.: Мир, 1986.

3. Культин Н.Б. Основы программирования в Delphi 7 – СПб.: БХВ-Петербург, 2003.

4. Постников М.М. «Магические квадраты» - М.: Наука, 1964.

5. Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов – СПб.: Питер, 2008. -640 с.


Приложение


Листинг программы создания главного окна

unit mag2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, StdCtrls, Mask, ExtCtrls, Menus;

type

TForm1 = class(TForm)

Panel1: TPanel; //Панель, на которой размещены кнопки

Lb1: TLabel; //Метка, для вывода комментариев к программе

MEd1: TMaskEdit; //Поля с маской ввода - для заполнения квадрата

MEd2: TMaskEdit;

MEd3: TMaskEdit;

MEd4: TMaskEdit;

MEd5: TMaskEdit;

MEd6: TMaskEdit;

MEd7: TMaskEdit;

MEd8: TMaskEdit;

MEd9: TMaskEdit;

Button1: TButton; //Кнопка "Проверить"

BitBtn1: TBitBtn; //Кнопка "Close"

Button2: TButton; //Кнопка "Начать"

MainMenu1: TMainMenu; //Главное меню формы

Help1: TMenuItem; //Один пункт меню "Help"

N1: TMenuItem; //Пункт подменю "Магический квадрат"

N2: TMenuItem; //Пункт подменю "Правила игры"

procedure FormActivate(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCanResize(Sender: TObject; var NewWidth,

NewHeight: Integer; var Resize: Boolean);

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure FormPaint(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Bitmap:TBitmap; //фоновая картинка

implementation

uses dialog_mag, dialog_pravila;

var

x,y:integer; //х - начальное число, с которого заполняем таблицу,

//у - номер способа очистки клеток

z:boolean; //Индикатор правильности заполнения пользователем пустых клеток

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject); //Процедура рисования фона формы

begin

Bitmap:=TBitmap.Create; //Создание объекта-битового образа

Bitmap.LoadFromFile('ris.bmp'); //Загрузка битового изображения из файла

Canvas.StretchDraw(Rect(0, 0, Form1.clientWidth, Form1.clientHeight),Bitmap);

//Рисование и заполнение формы рисунком Bitmap

end;

procedure TForm1.FormCanResize(Sender: TObject; var NewWidth, //Процедура,

NewHeight: Integer; var Resize: Boolean); //запрещающая изменение размеров формы

begin

Resize:=false;

end;

procedure TForm1.FormActivate(Sender: TObject); //Активизация формы

begin

Caption:='Магический квадрат'; //Установить заголовок формы "Магический квадрат"

Button2.Show; //Показать кнопку "Начать"

Button1.Hide; //Спрятать кнопку "Проверить"

end;

procedure TForm1.Button2Click(Sender: TObject); //Обработка нажатия кнопки "Начать"

procedure zapolnenie(x,y:integer);//Процедура заполнения

begin

MEd1.ReadOnly:=false; //Очищаем поля ввода

MEd2.ReadOnly:=false;

MEd3.ReadOnly:=false;

MEd4.ReadOnly:=false;

MEd5.ReadOnly:=false;

MEd6.ReadOnly:=false;

MEd7.ReadOnly:=false;

MEd8.ReadOnly:=false;

MEd9.ReadOnly:=false;

MEd2.Text:=IntToStr(x); //Заполняем поля ввода числами,

MEd9.Text:=IntToStr(x+1); //которые преобразовываем

MEd4.Text:=IntToStr(x+2); //к строковому представлению

MEd7.Text:=IntToStr(x+3);

MEd5.Text:=IntToStr(x+4);

MEd3.Text:=IntToStr(x+5);

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее