49574 (Генерирование псевдослучайных чисел на примере создания игры "Сапер"), страница 2

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

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

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

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

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

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

Для преобразования программ были разработаны программы-трансляторы, называемые ассемблерами. С появлением языков ассемблера использование компьютеров значительно расширилось, однако всё ещё требовалось написание большого количества инструкций даже для реализации решений простейших задач.

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

На практике программисту-одиночке или небольшой рабочей группе придется использовать какие-то мощные средства, вроде визуальных систем программирования (Visual Basic, C++Builder, С#, Delphi) или же универсальную среду разработки типа Borland C++ в сочетании с библиотекой классов, такой, как OWL или MFC. [3]

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi , Microsoft Visual Basic. С появлением Visual Basic программирование в Windows не становится более эффективным, но оно становится более простым (в большинстве случаев).

Если говорить о создании программ с интерфейсом Windows, то нельзя, конечно, не обойти вниманием визуальные средства программирования C++Builder. Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом. C++ Builder буквально навязывает программисту свой собственный стиль программирования, при котором, даже при особом желании, перейти с C++ Builder на что-то другое уже не предоставляется возможным. С++ не поддерживает других языков программирования.

Delphi — это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal. Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. Delphi- не поддерживает других языков программирования, но способен поддерживать различные платформы.

Однако, при всем этом выбор падает на язык С#, входящий в Visual Studio .Net , так как он имеет ряд преимуществ, которые упрощают процесс создания приложений.

C# создавался Microsoft, как основной язык для .NET Framework. Microsoft спроектировала C# таким образом, что бы С, С++ и Java-программисты смогли легко перейти на него. C# имеет корни в языках С, С++ и Java, поэтому такой переход не должен вызвать затруднений.

Синтаксис у C# не такой сложный как у С++, поэтому его изучение намного легче. Большинство операций, которые вы можете делать на С++, можно сделать и на C#, за исключением операций доступа к низкоуровневым функциям (это все-таки можно сделать с помощью неуправляемого кода).

С# - первый язык, поддерживаемый версиями .NET Framework для других платформ.

C# имеет схожий с C стиль синтаксиса (для управляющих конструкций, блоков кода, описания сигнатуры методов и др.), много общего с Java (отсутствие множественного наследования и шаблонов, наличие сборщика мусора) и Delphi (ориентированность на создание компонент), в то же время имеет и свой колорит.

C# объектно-ориентированный язык, как и вся платформа .NET[7].

В C# представлена концепция пространств имен, аналогичная пакетам в Java. Это позволяет иерархически структурировать систему типов, делая код намного более понятным и позволяя избежать проблем с именованием. Реализация структур как типов, работа с которыми идет по значению, вместе с возможностью использовать не только вложенные массивы (как в Java), но и многомерные позволяет оптимизировать производительность приложений.

Ввиду очень удобного объектно-ориентированного дизайна, C# является хорошим выбором для быстрого конструирования различных компонентов.

Платформа .Net содержит множество важных служб:

  1. .Net предоставляет средства для исполнения инструкций, содержащихся в программе, написанной на C#. Эта часть .Net называется средой исполнения.

  2. .Net помогает реализовать так называемую среду, безопасную к несоответствию типов данных.

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

  4. .Net предоставляет безопасную среду исполнения.

  5. В состав .Net входят библиотека, содержащая массу готовых программных компонентов, которые можно использовать в собственных программах. Она экономит немало времени, так как программист может воспользоваться готовыми фрагментами кода. Фактически, он повторно использует код, созданный и тщательно проверенный профессиональными программистами Microsoft.

  6. В .Net упрощена подготовка программы к исполнению.

  7. .Net обеспечивает прекрасное взаимодействие программ, написанных на разных языках. Любой язык поддерживаемый .Net , может взаимодействовать с другими языками этой платформы.

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

  1. 2.Конструкторская часть

    1. 2.1.Структура проекта.

Данный проект состоит из файлов

Ниже представлено описание основных файлов:

  • Form1.cs – файл, в котором содержится код, отвечающий за работу главной формы программы;

  • Form1.resx – файл, в котором содержится информация о графическом представлении главной формы «Сапер»;

  • Form2.cs - файл, в котором содержится код, отвечающий за работу формы настроек игрового поля;

  • Form2.resx – файл, в котором содержится информация о графическом представлении формы настроек игрового поля;

  • AboutBox1.cs - файл, в котором содержится код, отвечающий за работу формы «О программе»;

  • AboutBox1.resx – файл, в котором содержится информация о графическом представлении формы «О программе»;

  • Справка.htm – HTML-страница, в которой содержится справка по игре;

  • Мина.jpg – изображение мины на форме «О программе»

  • Сапер.exe - закомпилированный файл программы, находящийся в папке debug, которая находится в папке bin

2.2. Программная реализация основных элементов C#.

Для его запуска необходимо кликнуть кнопку Пуск, выбрать в пункте Все программы \Microsoft Visual Studio .NET 2005\Microsoft Visual Studio .NET 2005. Далее в запустившемся приложении кликнуть кнопку Open Project и используя проводник, выбрать файл Сапер.sln. Программа откроет приложение. Для изменения внешнего вида программы необходимо воспользоваться ярлыком Design. Можно добавить новые элементы формы, перетащив их из окна Toolbox. В моей работе это HelpProvider и MenuStrip при конструировании главной формы, Label, TextBox и Button при создании формы настроек игрового поля. Свойства компонентов можно изменить, зайдя в меню ViewProperties Windows или в коде программы:

//задается текст компонентов формы О программе

this.Text = String.Format("О программе");

this.labelProductName.Text = "Cапер";

this.labelVersion.Text = String.Format("Версия {0}", AssemblyVersion);

this.labelCopyright.Text = "Автор Темерев Кирилл";

this.labelCompanyName.Text = "КФ МГТУ им.Н.Э.Баумана, группа САПР-31";

this.textBoxDescription.Text ="Программа создана в Microsoft Visual Studio

Щелкнув значок Молния в меню Properties можно найти все события и дважды щелкнув на одно из них, написать обработчик.

2.2.1.Классы

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

public partial class Form1 : Form //главная форма программы

{

………

public Form1() //конструктор главной формы

{

InitializeComponent();

//присваиваем начальные значения полям

MR = 10;

MC = 10;

NM = 10;

W = 40;

H = 40;

this.newGame(1);//вызов метода newGame(int r)

}

………

}

public partial class Form2 : Form //форма настроек игрового поля

{

………

public Form2()//конструктор формы Настройки

{

InitializeComponent();

}

………

}

partial class AboutBox1 : Form //форма «О программе»

{

………

public AboutBox1()//конструктор формы О программе

{

InitializeComponent();

//задается текст компонентов формы О программе

this.Text = String.Format("О программе");

this.labelProductName.Text = "Cапер";

this.labelVersion.Text = String.Format ("Версия {0}", AssemblyVersion);

this.labelCopyright.Text = "Автор Темерев Кирилл";

this.labelCompanyName.Text = "КФ МГТУ им.Н.Э.Баумана, группа САПР-31";

this.textBoxDescription.Text ="Программа создана в Microsoft Visual Studio 2005 для среды .NET Framework";

}

………

}

2.2.2.Члены класса

Поля

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

Для классов

public partial class Form1 : Form

public partial class Form2 : Form

полями являются следующие переменные:

private int

MR,//кол-во клеток по вертикали

MC,//кол-во клеток по горизонтали

NM,//кол-во мин

W,//ширина клетки поля

H;//высота клетки поля

private int

nMin,//кол-во найденных мин

nFlag;//кол-во поставленных флагов

private int status;/*отражает различные этапы работы программы:

0-начало игры,

1-игра,

2-конец игры*/

private int[,] Pole;/*элемент массива задает клетку поля и принимает значения

0-8 -кол-во мин в соседних клетках,

9 -в клетке мина,

100-109 -клетка открыта,

200-209 -в клетку поставлен флаг*/

Следует отметить, что переменная Pole хранит в себе ссылку на двумерный массив. Массивы в C# разделяются на два типа: одномерные и многомерные.

Элементы многомерных массивов идентифицируются набором индексов - "координат" в многомерном пространстве. Каждое измерение имеет свою размерность, не зависящую от других.

Инициализация

Pole = new int[MR + 2, MC + 2];

происходит в методе

private void newGame(int r)

{

}

который будет рассмотрен далее.

Доступ к элементам производится с помощью оператора [ ], в котором индексы указываются через запятую. Присвоение значений элементам присваивается в методе:

private void newGame(int r)

{

…………

/*неотражаемым элементам массива минного поля присваиваем

значение -3 для завершения процесса открытия клеток*/

for (row = 0; row <= MR + 1; row++)

{

Pole[row, 0] = -3;

Pole[row, MC + 1] = -3;

}

for (col = 0; col <= MC + 1; col++)

{

Pole[0, col] = -3;

Pole[MR + 1, col] = -3;

}

//обнуление элементов массива минного поля

for (row = 1; row <= MR; row++)

{

for (col = 1; col <= MC; col++)

{

Pole[row, col] = 0;

}

}

………

}

а также в других методах.

Методы

Методом называется реальный код, воздействующий на данные объекта (или поля). При объявлении методов используется конструкция вида:

(opt)

{

}

Метод в процессе своей работы может не только изменять поля объекта, но и вычислять некоторые дополнительные значения. Если возвращать значения не нужно, то в качестве типа возвращаемого значения указывается void.

Методы, используемые в разработанном приложении и обеспечивающие процесс игры:

private void newGame(int r)//метод, запускающий новую игру

{

…………

//выбор метода расстановки мин

int random = r;

if (random == 1)

{

this.Rand();//вызов метода Rand()

}

if (random == 2)

{

this.Lin();//вызов метода Lin()

}

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