Разработка программы, моделирующей игру "Скачки" - Программирование, компьютеры и кибернетика курсовая работа

Разработка программы, моделирующей игру "Скачки" - Программирование, компьютеры и кибернетика курсовая работа




































Главная

Программирование, компьютеры и кибернетика
Разработка программы, моделирующей игру "Скачки"

Область применения данной программы. Распределение ставок средствами визуального программирования. Сообщения оператору. Текст программы. Графическое отображение передвижения наездников на экране. Возможность случайного распределения номеров наездников.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Разработать программу, моделирующую игру «Скачки». В игре участвует 10 наездников; за каждый тур игры каждый из них продвигается вперед на расстояние от одного до 5 км случайным образом. Длина дистанции - 50 км. Всего проводится 5 заездов, победителю каждого заезда начисляется 5 очков. Победителем считается наездник, набравший наибольшее количество очков во всех заездах. Перед началом заездов участник игры выбирает номер наездника, с которым он будет идентифицироваться во время игры. Количество участников игры не превышает 10. в каждом туре с вероятностью 0.1 каждый наездник может упасть, то есть продвинуться за этот тур на 0 км. Передвижение наездников отобразить графически на экране. Предусмотреть возможность случайного распределения номеров наездников.
1.2 Назначение и область применения
Область применения данной программы - досуг программиста. Поскольку программа разрабатывается под Windows, то использоваться программа может только под управлением Windows 9x.
В данной задаче используется совокупность генераторов простых чисел. Для определения текущей скорости лошади используется два генератора случайных чисел - один определяет, не упала ли лошадь, второй в противном случае генерирует скорость в пределах от 1 до 5. В подзадаче случайного распределения ставок также используется генератор случайных чисел. Задача слегка изменена от оригинального условия, количество заездов не ограничено, и за каждую победу дается только по одному очку, так как очки получает только победитель, нет существенной разницы, сколько он получит, 1 или 5. победа лошадью достигается тогда, когда она проскочит больше 50 км.
Также используется набор массивов для записи промежуточных результатов и итогов.
Данная задача разбивается на несколько подзадач.
1. Задача распределения ставок сделана полностью средствами визуального программирования. При выборе лошади игроком в массив игроков записывается номер выбранной лошади.
2. Задача случайного распределения номеров представляет собой два вложенных цикла - в первом последовательно берутся игроки, во втором с постусловием генерируется случайное число - номер лошади, и сравнивается со временным массивом Boolean, в который записываются лошади, уже распределенные по игрокам.
3. Основная задача - собственно скачки. Используется компонент таймер, который каждую секунду запускает набор генераторов случайных чисел - для скорости и для определения падения лошади. Одновременно проверяется условие победы - пройдено больше 50 км. Прорисовка изображения осуществляется средствами canvas - очистка экрана заполненным квадратом и прорисовка лошадей, загруженных из файла bmp.
1.3.3 Организация входных и выходных данных
Программа создана с помощью визуальной среды программирования, соответственно, внешние данные полностью вводятся в интерактивном режиме - отмечая нужных лошадей, и т.д.
Внешние данные - результаты заездов, статус лошадей - падение, победа - выводятся на экран с помощью компонентов memo и имитации статусной строки (так как возможности этого компонента в данной программе не нужны, просто имитируется привычный интерфейс windows).
1.3.4 Выбор состава технических и программных средств
Данная программа написана в среде Delphi, поэтому она требует наличия операционной системы Windows. Среда Delphi удобна для более быстрой разработки приложений для Windows. Системные требования: Windows 9х, Pentium 100 или выше, объем оперативной памяти от 8 МБ; Жесткий диск объемом не менее 500 Мб. Дополнительные средства не требуются.
Программа создана в визуальной среде программирования, поэтому основным ее компонентом является форма, на которой расположены элементы игры. Проект главного окна представлен на рис 1.
Рис. 2. Главное окно программы-Form1
Главные компоненты и описание их свойств.
FormCreat - инициализирует внутренние массивы, загружает из внешнего файла картинку,
Выводит начальные данные о статусе побед игроков.
Checkbox1 -10 - служат для выбора игроками лошадей. В программе при выборе лошади свойство enabled меняется на false, и дважды выбрать одну лошадь невозможно.
При событии onclick записывается номер лошади в массив игроков и меняется свойство enabled.
MEMO1 - компонент выводит данные о текущем распределении очков за победы, а также данные о случайном распределении номеров лошадей между игроками.
Timer1 - служит для генерации ходов лошадей.
Событие onTimer используется для генерации положения лошадей, их прорисовки и проверки условий победы.
Button1 - «Новая ставка» выводится окно ввода данных о количестве игроков, после этого можно распределять лошадей между игроками.
Button2 - «Начать скачку» - запускается таймер.
Button3 - «Случайное распределение» - запускается подпрограмма случайного распределения лошадей между игроками.
Основной алгоритм программы запускается после нажатия кнопки «Начать скачку»
Запускается таймер, который каждую секунду генерирует событие, в котором обрабатывается с помощью генератора случайных чисел положение лошади в гонке, обсчитывается условие победы. В случае победы таймер выключается, а в массив результатов заносятся очки игроку, поставившему на победившую лошадь. В случае отсутствия ставки очки теряются.
Содержит установки проекта используется для трансляции
Содержит настройки компилятора, имена служебных каталогов и т.п.
Наименование программы - race, программа представляет собой игру, главной целью которой является угадать лошадь, которая придет первой. Игра многопользовательская, то есть одновременно могут участвовать до 10 человек.
Программа предназначена для развлечения.
Данная программа основана на событийном управлении. Главное событие - генерация компонентом таймером каждую секунду события, в котором и происходит вычисление по заданным правилам с помощью генератора случайных чисел положения лошади. Постоянно используются простые циклы с фиксированным числом шагов для обработки каждой лошади. С помощью ветвлений определяется условия победы лошади. В случае победы цикл прерывается.
Дополнительной подзадачей является случайное распределение номеров лошадей между игроками, организованная в виде двух вложенных циклов - с фиксированным количеством циклов для игрока и с постусловием для лошадей. Используется ветвление для определения уже использованных номеров лошадей. Данная программа выполняется ЭВМ на архитектуре X86, с конфигурацией, достаточной для запуска Windows 9x.
Для вызова программы нужно запустить исполняемый файл Project1.exe
Входные данные вводятся интерактивно - выбором лошадей с помощью checkbox, случайным распределением с помощью соответствующей кнопки.
Выходными данными являются: изображение текущего положения лошадей; статусная строка с сообщениями о падениях и победе в забеге; информация о текущем распределении очков между игроками; иформация о распределении лошадей между игроками - при случайном распределении.
После нескольких тестовых запусков программы выяснилось, что во-первых, предсказать заранее победу лошади невозможно, а во вторых, в условии задачи вероятность падения слишком высока, так как практически каждый ход какая-либо лошадь падает, что отличается от реальности и здравого смысла.
Для выполнения программы требуется операционная система Windows 9x и соответствующие технические характеристики ЭВМ.
Для запуска программы требуется запустить исполняемый файл Project1.exe. Далее необходимо нажать кнопку «новая ставка» - ввести в поле требуемое количество игроков. После этого мышью в любом порядке - по желанию игроков - отметить лошадей, на которые делаются ставки. Номер текущего игрока отображается внизу окна программы. Если ставки сделаны неправильно, можно заново нажать кнопку «новая ставка», тогда checkbox-ы очистятся. Можно также случайно распределить ставки с помощью соответствующей кнопки. Когда ставки полностью распределены, станет возможным нажать кнопку «начать скачку». После скачки общие результаты всех заездов отображаются в окне справа, а номер победившей лошади - внизу окна приложения.
Сообщения оператору не предусмотрены.
Возможно сообщение об ошибке при отсутствии файла 1.bmp. Для исправления можно или восстановить его, или создать в любом редакторе новый файл с таким же именем, размером 20*20.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, ExtCtrls, Buttons, math;
procedure BitBtn1Click (Sender: TObject);
procedure CheckBox1Click (Sender: TObject);
procedure CheckBox2Click (Sender: TObject);
procedure CheckBox3Click (Sender: TObject);
procedure CheckBox4Click (Sender: TObject);
procedure CheckBox5Click (Sender: TObject);
procedure CheckBox6Click (Sender: TObject);
procedure CheckBox7Click (Sender: TObject);
procedure CheckBox8Click (Sender: TObject);
procedure CheckBox9Click (Sender: TObject);
procedure CheckBox10Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure Timer1Timer (Sender: TObject);
procedure Button2Click (Sender: TObject);
procedure TForm1. BitBtn1Click (Sender: TObject);
paintbox1. Canvas. FillRect (paintbox1. Canvas. ClipRect);
paintbox1. Canvas.draw (horse[i]*10, i*32-30, horseimage);
numer:=strtoint (inputbox(' ', ' Введите количество игроков', '10'));
statictext1. Caption:=' Игрок'+ inttostr(numer);
procedure TForm1. CheckBox1Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. CheckBox2Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. CheckBox3Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. CheckBox4Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. CheckBox5Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. CheckBox6Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. CheckBox7Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. CheckBox8Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. CheckBox9Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. CheckBox10Click (Sender: TObject);
statictext1. Caption:='игрок ' +inttostr(numer);
procedure TForm1. Button1Click (Sender: TObject);
procedure TForm1. FormCreate (Sender: TObject);
horseimage. LoadFromFile ('1.bmp');
horseimage. TransparentColor:=clWhite;
for i:=1 to 10 do memo1. Lines.add ('игрок ' + inttostr(i)+' - '+inttostr (winners[i])+' побед');
procedure TForm1. Timer1Timer (Sender: TObject);
paintbox1. Canvas. FillRect (paintbox1. Canvas. ClipRect);
paintbox1. Canvas. Lineto (500,400);
paintbox1. Canvas.draw (horse[i]*10, i*32-30, horseimage);
statictext1. Caption:=inttostr(i)+ ' лошадь упала'
if fall[i]=false then horse[i]:=horse[i]+random(5)+1;
if arr[winner]<>0 then inc (winners[arr[winner]]);
statictext1. Caption:='Выиграла лошадь №' + inttostr(winner);
memo1. Lines.add ('количесиво побед');
for i:=1 to 10 do memo1. Lines.add ('игрок ' +inttostr(i)+' - '+inttostr (winners[i])+' побед');
paintbox1. Canvas. FillRect (paintbox1. Canvas. ClipRect);
for i:=1 to 10 do paintbox1. Canvas.draw (horse[i]*10, i*32-30, horseimage);
procedure TForm1. Button2Click (Sender: TObject);
var i: integer; k:integer; temp:array [1..10] of boolean;
memo1.lines.add ('игрок '+ inttostr(i)+ ' поставил на ' + inttostr(k));
Программирование при помощи языков высокого уровня, а тем более в средах программирования является полезным не только в разрезе создания конкретных программных продуктов. Изучение даже основ дисциплины настраивает подход человека к осмыслению деятельности в разных сферах, порой далеких от компьютеров.
Ведь написание программы для компьютера, в общепринятом понимании «писания кода каким-либо языком», не ограничивается введением набора команд. Этот «общепонятный» процесс лишь малая и не самая сложная часть создания программы. Более важным и сложным этапом является разработка алгоритма. Ведь от решений в алгоритме напрямую зависят большинство показателей качества будущей программы: быстродействие, экономичность ресурсов, простота и удобство использования. А чтобы создать алгоритм не обязательно быть профессиональным программистом. Так абсолютно любой человек ежедневно либо придумывает новые алгоритмы, либо пользуется уже созданными им или другими людьми. Взять тот же рецепт приготовления какого-либо блюда. Какой-либо повар придумывает рецепт, а окружающие после постоянно используют. Чем не программист, программа и операторы. Хорошая программа будет жить долго, плохую может вообще использовать не будут.
А чтобы программа была полезна надо создать оптимальный алгоритм, предусмотреть различные варианты входных / выходных данных, продумать схему общения с оператором и лишь после решения этих вопросов можно переложить эту систему на какой-либо язык программирования, чтобы течение мыслей программиста было понятно машине.
И машина возьмет на себя часть труда использующего её человека.
1 Дарахвелидзе П., Марков Е. Программирование на Object Pascal. Киев, 1998.
2 С. Симонович, Г. Евсеев Занимательное программирование Delphi М,: АСТ-пресс книга» 2001.
3 Фаронов В.В. Delphi 4. Учебный курс.-М.:Издательство «Нолидж», 1998.
4 Федоров А.Г. Delphi 3.0 для всех. М., 1998.
5 Емелина, Е.И. Основы программирования на языке Паскаль. [Текст] М.: 2007.
6 Фаронов В.В. Турбо Паскаль. Книга 1. Основы Турбо Паскаля. М., 2007
7 Культин Н.Б. Delphi в задачах и примерах. - СПб.: БХВ - Петербург, 2005.
8 Delphi: быстрый старт. [Текст] - СПб.: БХВ - Петербург, 2009.
9 Turbo Pascal / С.А. Немнюгин. [Текст] - СПб: Издательство «Питер», 2010.
10 Мануйлов, В.Г. Разработка программного обеспечения на Паскале. [Текст] М.: 2008.
Разработка эскизного и технического проектов компьютерной игры "Скачки". Назначение и область применения программы. Выбор состава технических и программных средств. Составление текста программы, ее спецификация, тестирование и условия выполнения. курсовая работа [681,4 K], добавлен 18.10.2014
Разработка эскизного и технического проектов программы, моделирующей игру "Кости". Постановка задачи, описание алгоритма; написание программы, организация входных и выходных данных; выбор программных средств; спецификация, текст, условия выполнения. курсовая работа [93,8 K], добавлен 11.02.2012
Разработка программы, моделирующей игру "Кости". Использование в программе генератора псевдослучайных чисел. Схема иерархии модулей. Описание работы программы. Регистрация игрока, окно программы. Определение языка программирования, основные операторы. курсовая работа [3,2 M], добавлен 29.07.2010
Ознакомление с возможностями языка Си как средой программирования высокого уровня. Циклы программирования параметрического оператора for и функции форматированного ввода. Разработка программы средствами Си: блок-схема, текст и тестирование программы. контрольная работа [204,4 K], добавлен 26.01.2013
Изучение основ программирования и создание полноценного приложения в среде программирования Delphi. Разработка эскизного и технического проектов программы. Внедрение выполнения программы. Разработка рабочего проекта, спецификация и текст программы. курсовая работа [560,1 K], добавлен 18.07.2012
Разработка эскизного и технического проектов программы, ее назначение и область применения, технические характеристики. Организация входных и выходных данных, выбор состава технических и программных средств. Текст программы, ее описание и тестирование. курсовая работа [1,3 M], добавлен 15.11.2009
Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору. курсовая работа [1,5 M], добавлен 08.02.2011
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Разработка программы, моделирующей игру "Скачки" курсовая работа. Программирование, компьютеры и кибернетика.
Сочинение Про Интернет Друга
Реферат по теме Неопределенный интеграл
Использование Служебно Розыскных Собак В Орд Реферат
Реферат: 1. Современное использование и архитектурно-планировочная организация территории 3
Реферат: Увеселительные сады и вокзалы в России до середины XIX века
Курсовая Работа На Тему Орфографические Словари На Уроках Русского Языка В Начальной Школе
Курсовая работа по теме Механизм исчисления и уплаты НДС в Российской Федерации
Курсовая Работа На Тему Аналіз Ефективності Використання Основних Засобів
Реферат: Agriculture To Industry Essay Research Paper Agriculture
Курсовая работа по теме Привлечение в качестве обвиняемого
Дипломная работа: Финансовая стратегия предприятия и проект ее совершенствования на примере колхоза "Большевик" Калачеевского района Воронежской области
Дипломная работа по теме Проектирование системы автоматизированного управления технологическими процессами котельной 'Заводская' в г. Покровск Республики Саха (Якутия)
Эссе По Обществознании По Праву
Дипломная работа по теме Использование методов педагогического исследования как необходимое условие профессиональной деятельности педагога в ДОУ
Дипломная работа по теме Использование дымковской игрушки на занятиях по лепке, как средство развития творческих способностей старших дошкольников
Дипломная работа по теме Миграция в Россию из стран Африки и Латинской Америки
Реферат: Dead Poets Society Keating
Скачать Реферат Распределительные Ктп Без Трансформаторов
Контрольная работа по теме Организационное устройство войска в Новгороде в Средневековье
Сочинение На Тему Любви Олеся
Образование комиссий по трудовым спорам, ее компетенция - Государство и право контрольная работа
История отечественной педагогики - Педагогика курсовая работа
Прибалтика - угроза для безопасности России - Политология курсовая работа


Report Page