Исходник логической игры LinesK

исходник логической игры линииВся графика приложения полностью постоена на базе GDI+ и обработчике события прорисовки окна OnPaint.
Исходник состоит из 6 основных классов:
- Класс GraphItem - графический элемент, образует ячейку графического элемента с геометрической фигурой в центре, располагает графэлемент в заданом месте родительского окна, обеспечивает анимацию активности, анимацию исчезновения и изменения цвета геометрической фигуры. Из объектов данного класса состоит игровое поле приложения. Для прорисовки использует GDI+.
- Класс FormGameSetting - модальное окно настроек игры, можно выбрать цвет и вид графической фигуры.
- Класс FormPlayerName - модальное окно изменения имени игрока. В качестве иконки используется единица графического элемента.
- Модуль глобальных переменных и хранения настроек игры. Основные настройки игры сохраняются в файл в месте запуска приложения. Входят 3 класса - Global, GameSetting, DataRecordsman.
- Класс FormEndGame - диалоговое окно окончания игры, оповещает пользователя об окончании игры и количестве набранных очков.
- Класс FormMain - сборочный класс приложения. Размещает на себе игровое поле состоящее из 100 графических элементов. Обеспечивает взаимодействие с пользователем, читает настройки игры из файла и при закрытии приложения сохраняет настройки в файл.


Для сохранения и чтения настроек используется класс BinaryFormatter. BinaryFormatter упрощает процедуру сохранения объекта или группы объектов. Сохранение осуществляется в двоичном формате, достоинство такого формата - компактность и возможность сохранения объектов любой сложности, недостаток - невозможность непосредственного редактирования сохраненного файла.
void ToFileIni()
{
    string filePath = Application.StartupPath + "\\settings.lin";
    FileStream fileStream = File.Create(filePath);
 
    BinaryFormatter bf = new BinaryFormatter();
 
    for (int i = 0; i < GameSet.DRH.Length; i++)
    {
         GameSet.DRH[i].CurrentPlayer = false;
    }
    bf.Serialize(fileStream, GameSet);
    fileStream.Close();
}
 
void FromFileIni()
{
    FileStream fileStream = null;
    string filePath = Application.StartupPath + "\\settings.lin";
 
    FileInfo fi = new FileInfo(filePath);
    if (fi.Exists == false) return;
 
    fileStream = File.OpenRead(filePath);
    BinaryFormatter bf = new BinaryFormatter();
    GameSet = (GameSetting)bf.Deserialize(fileStream);
     
               .............
               
    Array.Sort(GameSet.DRH, new SortRecordHolders());
     
    fileStream.Close();        
}
Для проверок последовательностей из 5 и более геометрических фигур в исходнике применяется класс List(T) появившийся в .NET Framework 2.0. Данный класс удобен тем, что может содержать любые типы объектов, имеет простые процедуры добавления и удаления элементов, при извлечении элементов не требуется приведения типов. Проще говоря List(T) почти идеальный динамический массив.
bool HideGraphItems()
{
    List<bool> listBool = new List<bool>();
    listBool.Add(CheckColumn());
    listBool.Add(CheckRow());
    listBool.Add(CheckDiagonal());
    listBool.Add(CheckDiagonal2());
 
    for (int i = 0; i < listBool.Count; i++)
    {
        if (listBool[i] == true) return true;
    }
 
    return false;
}
Требования: среда программирования Visual Studio 2008 Express и выше, SharpDevelop 3.0 и выше.
Файл исходника Размер Количество загрузок
sourcelinesk.rar 1064 КБайт 5477

Книги по тематике

Unity в действии. Мультиплатформенная разработка на C# , 2018 Unity зачастую представляют как набор компонентов, не требующих программирования, что в корне... Узнать больше »
C# 7.0. Скорая помощь для программистов на С# 7.0. Карманный справочник Албахари Джозеф, 2017 Когда вам нужны ответы на вопросы по программированию на языке С# 7.0, этот узкоспециализированный... Узнать больше »
Библия C# Фленов Михаил Е., 2017 Книга посвящена программированию на языке С# для платформы Microsoft .NET, начиная с основ... Узнать больше »
C# на примерах Евдокимов П.В., 2017 Эта книга является превосходным учебным пособием для изучения языка программирования C# на... Узнать больше »
Яндекс цитирования Rambler's Top100 Яндекс.Метрика