Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Разработка приложения для Windows, моделирующего игру "Нечетный" и "Четный"

Тип Реферат
Предмет Информатика и программирование
Просмотров
937
Размер файла
114 б
Поделиться

Ознакомительный фрагмент работы:

Разработка приложения для Windows, моделирующего игру "Нечетный" и "Четный"

Введение

Delphi – это среда разработки программ, ориентированных на работу в Windows. В основе идеологии Delphi лежат методология объектно-ориентированного программирования и технология визуального проектирования.

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

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

1. Разработка эскизного и технического проектов программы

1.1 Задание

Тема: Разработка приложения для Windows, моделирующего игру«Нечетный» и «Четный».

Условие задачи:

Два игрока, «Нечетный» и «Четный», по очереди ставят единицы и нули в незанятые позиции поля NxN. Каждый из игроков может ставить 1 или 0 в произвольную свободную позицию, тем самым, занимая ее.

Игра продолжается до заполнения всех позиций. После этого суммируются числа вдоль каждой строки и каждого столбца и главных диагоналей.

Число ODD нечетных сумм сравнивается с числом четных сумм EVEN.

Если ODD>Even, то выигрывает Нечетный, если EVEN>ODD выигрывает Четный.Если ODD=EVEN, результат считается ничейным.

1.2 Назначение и область применения

Данный проект является игрой, и он применяется в развлекательных целях. Область применения досуг пользователя. Данная программа работает под управлением Windows 9x, WindowsXP.

1.3 Технические характеристики

Раздел «Технические характеристики» содержит следующие подразделы:

1. Постановка задачи.

2. Описание алгоритма.

3. Организация входных и выходных данных.

4. Выбор состава технических и программных средств.

Для решения поставленной задачи необходимо использовать структуру данных типа массив, так как по условии говорится о поле NxN. Для визуализации решения задачи использована среда программирования Delphi 6. Использованы конструкции структурного программирования, как IfThen, ForTo. Программа управляется через меню MainMenu.

1. Готовится поле NxN (6x6);

2. Если позиция не занята, 1- игрок ставит 0 или 1

3. Если позиция не занята, 2- игрок ставит 0 или 1

4. Проверяется не все позиции заняты, если «да» пункт 2, «нет» – пункт 3

5. Суммируются числа 1- игрока (Nechet) и 2 (Chet) – игрока по отдельности по строкам, по столбцам и главных диагоналей.

6. Если сумма Nechet>Chet, выигрывает 1-игрок

7. Если сумма Nechet<Chet, выигрывает 2-игрок

8. Если сумма Nechet=Chet, нечья

9. Конец игры

В моей разработке алгоритм решения задачи упрощен тем, что вместе с игральным полем ведется параллельно еще одно поле, где отмечаются позиции 1 игрока (Nechet) и 2 игрока (Chet) для суммирования потом числа соответствующих позициях 1 – поля. Игроки ставят свои числа с помощью датчика случайных чисел. Ниже в блок схеме показано алгоритм формирования поля1 и вспомогательного поля2. После чего суммируются числа как сума строк столбцов и диагоналей как обычной квадратной матрицы, с учетом символьных отметок позиции игроков. Позиция игрока 1 отмечена символом «*», а позиция игрока 2 – «@».

Входные данные 0 или 1 вырабатываются с помощью функции случайных чисел random(); 1- игрок ставит число нажатием мышкой в выбранную позицию, второй игрок(компьютер) ставит числа выбирая свободную позицию тоже с помощью случайных чисел. В качестве поля используется компонент TstringGrid.

Выходные данные: сумма чисел игроков и сообщение о выигравшем игроке отображаются в поле TEdit.

Эта программа разработана в Delphi 6, поскольку данная среда разработки предоставляет все необходимые инструменты для решения поставленной задачи. Delphi 6, как и всякая современная среда разработки приложений, основана на объектно-ориентированном программировании (ООП). Эта технология программирования является той основой, которая и позволяет реализовать все функциональные возможности Delphi 6. При создании приложений на основе готовых компонентов с использованием свойств, методов и заранее определенных обработчиков событий можно обходиться программным кодом небольшого объема. Для разработчика это означает, что при разработке пользовательского интерфейса своих приложений он может получить значительную экономию времени.

Для нормальной работы данного приложения требуется наличие следующего аппаратного и программного обеспечения:

Минимальные системные требования:

Процессор – Pentium400 MHz.

Оперативная память – 512 Mb.

Жесткий диск – 10 Gb.

Операционная система – WindowsXPProfessional

Программное обеспечение – BorlandDatabaseEngine.

2. Разработка рабочего проекта

2.1 Разработка программы

Программа, моделирующая игру «Нечет» и «Чет» разработана на языке ObjectPascal в визуальной среде Delphi 6. Проект содержит одно окно-Form1.

Компонент 1 Form1

Свойства:

Caption=’Игра Чет Нечет’

Menu=MainMenu1

Color=clGradientActiveCaption

Событие=MainMenu1

End

Компонент 2-MainMenu1.

Свойства:

object MainMenu1: TMainMenu

Left = 14

Top = 184

object N1: TMenuItem

Caption = ‘Игра’

object N2: TMenuItem

Caption = ‘Новаяигра’

OnClick = N2Click

end

object N3: TMenuItem

Caption = ‘Выход’

OnClick = N3Click

end

end

object N4: TMenuItem

Caption = ‘Настройка’

object N6: TMenuItem

Caption = ‘Второй игрок’

object N7: TMenuItem

Caption = ‘Компьютер’

end

end

end

object N5: TMenuItem

Caption = ‘Справка’

object N8: TMenuItem

Caption = ‘Правила игры’

OnClick = N8Click

end

object N9: TMenuItem

Caption = 'о программе'

OnClick = N9Click

end

end

end

Компонент 3 – TstringGrid.

Свойства:

object StringGrid2: TStringGrid

Left = 86

Top = 48

Width = 249

Height = 153

ColCount = 6

DefaultColWidth = 40

FixedCols = 0

RowCount = 6

FixedRows = 0

TabOrder = 3

Visible = False

end

Компонент 4 – TEdit

Свойства;

object Edit1: TEdit

Left = 0

Top = 208

Width = 377

Height = 28

Font. Charset = DEFAULT_CHARSET

Font. Color = clOlive

Font. Height = -16

Font. Name = 'MS Sans Serif'

Font. Style = [fsBold]

ParentFont = False

TabOrder = 2

end

Компонент 5-Tbutton.

Свойства:

object Button1: TButton

Left = 88

Top = 233

Width = 250

Height = 33

Caption = Показать

Font. Charset = DEFAULT_CHARSET

Font. Color = clNavy

Font. Height = -16

Font. Name = 'MS Sans Serif'

Font. Style = []

ParentFont = False

TabOrder = 1

OnClick = Button1Click

End

2.2 Написание программы

Программа написана в среде программирования Delphi6. Основной компонент – игральное поле StringGrid1. В моем проекте прграммы 1- игрок – пользователь, 2- игрок – компьютер. Для компьютера в данном проекте не предусмотрена выигрышная стратегия. Компьютер ставит числа в случайно выбранную свободную позицию с помощью функции случайных чисел.

Выигрышную стратегию можно построить предусматривая вариант максимального количества ставки числа 1. Для этого функцию случайных чисел для компьютера напишем как random(1)+1;

2.3 Спецификация программы

Загрузочный файл программы – Project1.exe.

Табл. 1. Спецификация программы

НаименованиеОбозначенияПримечание
Project1.dprФайл проектаСвязывает все файлы, из которых состоит приложение
Project1.cfgФайл конфигурации
Project1.dofФайл параметров проекта

Содержит текущие установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивы

Project1.dfmФайл формы №1Содержит список свойств всех компонентов, включенных в форму №1
Unit1.pasФайл программного модуля для формы №1Определят функциональность формы №1
Unit1.dcuОбъектный файл для Unit1.pasОткомпилированная версия Unit1.pas

2.4 Текст программы

// Программа

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Controls, Forms, Dialogs, Grids, StdCtrls, Menus;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

Button1: TButton;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N5: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

Edit1: TEdit;

StringGrid2: TStringGrid;

procedure StringGrid1MouseDown (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure N2Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure N8Click (Sender: TObject);

procedure N9Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var {Глобальные переменные}

Form1: TForm1;

q1, w1, q2, w2:array [0..6] of integer;

i, j, chet, nechet:integer;

implementation

{$R *.dfm}

// главная процедура, где вставляеются единицы и нули в позиции игроков

procedure TForm1. StringGrid1MouseDown (Sender: TObject;

Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

label 1,2;

var nk, z1, z2, a, b, k, l:integer;

begin

//StringGrid1 Поле игроков размещена

// StringGrid2 используется для фиксирования позиции игроков

randomize; {генератор случайных чисел}

nk:=stringgrid1. RowCount; {фиксируется количество строк (столбцов тоже).}

k:=stringgrid1. DefaultColWidth; {фиксируется ширина столбцов таблицы}

l:=stringgrid1. DefaultRowHeight; {фиксируется высота строк}

stringgrid1. Font. Color:=clblue;

z1:=trunc(x/k); z2:=trunc(y/l); {фикситруются координаты указателя мышки}

// Если позиция занята, то переход к на новый ход

if (stringgrid1. Cells [z1, z2]='1') or

(stringgrid1. Cells [z1, z2]='0') then goto 1

else begin stringgrid2. Cells [z1, z2]:='*';

stringgrid1. Cells [z1, z2]:=inttostr (random(2));

end;

// моделирование хода компьютера

// компьютер позицию занимает случайными числами в интервале от 0 до nk

// nk-количество строк

2: a:=random(nk);

b:=random(nk);

// Если позиция свободна ставит 0 или 1

// Иначе переход на другую позицию

if (stringgrid1. Cells [a, b]<>'1') and

(stringgrid1. Cells [a, b]<>'0') then begin

stringgrid2. Cells [a, b]:='@';

stringgrid1. Cells [a, b]:=inttostr (random(2)) end

elsegoto 2;

1: end;

// процедура Новая игра

procedure TForm1.N2Click (Sender: TObject);

begin

for i:=0 to stringgrid1. RowCount-1 do

for j:=0 to stringgrid1. RowCount-1 do

begin

stringgrid1. Cells [i, j]:='';

end;

edit1.text:=''; {Результат обнуляется}

end;

procedure TForm1.N3Click (Sender: TObject);

begin

showmessage('Досвидания');

form1. Close;

end;

// Процедура выводит сообщение о правиле игры

procedure TForm1.N8Click (Sender: TObject);

begin

showmessage('Два игрока, «нечетный» и «Четный», по очереди ставят'+#13+

' единицы и нули в незанятые позиции поля NxN'+#13+

'Каждый из игроков может ставить 1 или 0 в произольную'+#13+

' свободную позицию,тем самым занимая ее.'+#13+

' Игра продолжается до заполнения всех позиций.'+#13+

'После этого суммируются числа вдоль каждой строки'+#13+

' и каждого столбца и главных диагоналей. '+

#13+'Число ODD нечетных сумм сравнивается с числом четных сумм EVEN.'+#13+

'Если ODD>Even, то выигрывает, если EVEN>ODD выигрывает четный.'+#13+

'Если ODD=EVEN, результата считается ничейным');

end;

// Процедура выводит сообщение о программе

procedure TForm1.N9Click (Sender: TObject);

begin

showmessage ('Программу разработал студент группы УЗИН-709–01 КРУ г. Астана'+

#13+'Захарченко Егор'+

#13+'Программа написана для игры пользователя с компьютером'+

#13+'размерность поля – 6х6.'+#13+

'Выигрышную стратегию для компьютера можно '+#13+

'построить с помощью датчика случайных чисел random(1)+1'+#13+

'тем самым вставляя в позицию только единицы'+#13+

'или присваивая к позиции компьютера только единицы'+#13+

'Но в данной программе пользователь и компьютер играет'+

#13+' на равных правилах');

end;

procedure TForm1. Button1Click (Sender: TObject);

label 1;

begin

nechet:=0;

chet:=0;

for i:=0 to 5 do

for j:=0 to 5 do

if (stringgrid2. Cells [i, j]<>'*') and (stringgrid2. Cells [i, j]<>'@') then

beginshowmessage('Не все позиции заняты, '+#13+

'продолжайте заполнять поля'); goto 1;

end;

// В этом цикле определяются позиции игроков

// соответственные числа по строкам и по столбцам суммируются

for i:=0 to 5 do

for j:=0 to 5 do

if stringGrid1. Cells [i, j]='1' then begin

if stringgrid2. Cells [i, j]='*' then nechet:=nechet+1

else chet:=chet+1 end;

for j:=0 to 5 do

for i:=0 to 5 do

if stringGrid1. Cells [i, j]='1' then begin

if stringgrid2. Cells [i, j]='*' then nechet:=nechet+1

elsechet:=chet+1 end;

// Числа суммируются по главным диагоналям

for j:=0 to 5 do

if stringgrid1. Cells [j, j]='1' then begin

if stringgrid2. Cells [j, j]='*' then nechet:=nechet+1

else chet:=chet+1 end;

for j:=0 to 5 do

if stringgrid1. Cells [j, j]='1' then begin

if stringgrid2. Cells [j, j]='*' then nechet:=nechet+1

elsechet:=chet+1 end;

// Определяется победитель

if chet=nechet Then Edit1. Text:='Ничья, число'+inttostr(chet)

else begin

if nechet>chet then edit1.text:='Выиграл Нечет(пользователь), число '+inttostr(nechet)

else

edit1.text:='Выиграл Чет(компьютер), число '+inttostr(chet);

end;

1: end;

end.

2.5 Описание программы

Требуется компьютер, который поддерживает операционную систему Windows9x. Технические характеристики такого компьютера должны составлять: Pentium 100 и выше; объем оперативной памяти не менее 16 Мб; жесткий диск не менее 500 МБ. Дополнительные устройства для программы не требуются.

Программа управляется через главное меню. Через меню можно начать новую игру, закрыть игру, прочитать справки о программе, о разработчике. Числа игрока ставятся в позиции, соответственно указателю мышки. Компьютер выбирает из свободных позиции свою позицию и ставит число 0 или 1. Результат игры показывается при нажатии на кнопку «Показать». Если заполнены не все позиции, выдается соответствующее сообщение. Если заполнены все позиции, определяется выигравший и его число.

Программа загружается нажатием на загрузочный файл Project1.exe.

Входные данные: 0 или 1 в поле StringGrid1.

Выходные данные: сумма чисел игроков и сообщение о выигравшем игроке отображаются в поле TEdit.


Рис. 1. Тестирование -1

Рис. 1. Тестирование -2

Рис. 1. Тестирование -3


Рис. 1. Тестирование -4

Рис. 1. Тестирование -5

Рис. 1. Тестирование -6


Рис. 1. Тестирование -7

В таблице (таб. 2.) представлены результаты тестирования:

Таблица 1. Результаты тестирования

ВыигралЧисло
Нечет24
Чет24
Чет26
Нечет30
Нечет28
Нечет26
Ничья24

2.5 Внедрение

Данное приложение разработанное в Delphi, способно работать на персональных компьютерах с минимальными требованиями:

Процессор – Pentium 400 MHz.,

Оперативная память – 512 Mb,

Жесткий диск – 10 Gb,

Операционная система – WindowsXPProfessional

Программное обеспечение – BorlandDatabaseEngine.

Запустить приложение можно также как и любое другое с дискеты или с другого носителя.

Для управления программой используются кнопки меню. Выход из программы осуществляется по команде Файл-> Выход в главном меню или щелчку левой кнопкой мыши по крестику в правом верхнем углу экрана.

Сообщения оператору рисунки 8–10:

Сообщение когда не заполнены все клетки поля Рисунок 8.

Рис. 8. Сообщение игроку

Сообщение об условий игры открывается по команде Справка->Правила игры-Рисунок 9.

Рис. 9. Условие игры

Сообщение о разработчике открывается по команде Справка->о программе – Рисунок 10.


Рис. 10. Сообщение о разработчике

Список использованных источников

1. Культин Н. Программирование на ObjectPascal. Киев, 2005.

2. Чиртик, А.А. Delphi. Трюки и эффекты [Текст] / А.А. Чиртик, В.В. Борисок, Ю.И. Корвель. – СПб.: Питер, 2007.

3. Delphi: быстрый старт. – СПб.: БХВ – Петербург, 2002. – 288 с.: ил.

4. Turbo Pascal / С.А. Немнюгин. – СПб: Издательство «Питер», 2000. – 496 с.: ил.

5. Власов А.Я. Справочник по программированию на Object Pascal. Киев, 2001 г.

6. Александровский А.Д. Delphi 5.0. Разработка корпоративных приложений. – М.: ДМК, 2004. – 512 с.: ил. (Серия «Для программистов»).

7. Бобровский С. DEIPhI 7: Учебный курс СПб: Издательство «Питер», 2005.

8. Власов А.Я. Справочник по программированию на Object Pascal. Киев, 2003 г.

9. Изучаем Delphi. – СПб.: Питер, 2000. – 352 с.: ил.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно