Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya_Interfeysy.docx
Скачиваний:
2
Добавлен:
16.11.2019
Размер:
480.29 Кб
Скачать

4 Розробка алгоритмів і блок-схем, що описують функціональність пз

Розглянемо детальніше деякі функції ПЗ.

Блок-схема для функції Scrambles(), що виконується при натисненні кнопки «Нова гра».

початок

_moves = 0;

_txtMoves.Text = “0”;

txtTime.Text = “00:00:00”; //обнуління статистики

var count = 0;

count < 25

var a = _rnd.Next(1, 17);

var b = _rnd.Next(1, 17);// підбір випадкових чисел

var stack1 = FindStackPanelByTagId(a);

var stack2 = FindStackPanelByTagId(b);//пошук квадратів для тримання чисел

а==16

var image2 = stack2.Child;

stack2.Child = null;

stack1.Child = image2;

b==16

var image1 = stack1.Child; stack1.Child = null;

stack2.Child = image1;

var image1 = stack1.Child;

var image2 = stack2.Child;

stack1.Child = nul;

stack2.Child = null;

stack1.Child = image2;

stack2.Child = image1;

сount++;

кінець

Малюнок 4.1. Функція що розпочинає нову гру

При натисненні на будь-який квадрат відбуваються наступні операції:

початок

var item = (UIElement)e.OriginalSource; //отримуємо об’єкт на який натиснув користувач

TextBlock work = null; //цифра чи

Border border = null; // ребро квадрата

Item is Border

border = item as Border;

item is TextBlock

border.Child != null

work = border.Child as TextBlock;

work = item as TextBlock;

border = work.Parent as Border;

var to = CanMove(work);

to != null

_moves++;

txtMoves.Text = _moves.ToString(); CreateFadeOutAnimation(work);

MoveItem(work, to);

CreateFadeInAnimation(work);

CheckBoard(); //перевірка вірності розташування

кінець

Малюнок 4.2. Переміщення числа

5 Розробка прикладного програмного забезпечення

Програма складається з одного класу - BlankPage. У даному класі реалізовані всі необхідні функції для роботи з головоломкою: почати нову гру, переміщати числа на полі та проглянути довідку.

Розглянемо детальніше структуру цього класу:

Методи:

public BlankPage() – Конструктор;

void _timer_Tick(object sender, object e)– функція таймеру

public void NewGame()– функція, що розпочинає нову гру

Border FindStackPanelByTagId(int tag)– пошук квадрата за позицією

int FindEmptyItemPosition() - пошук квадрата без числа

int FindItemValueByPosition(int position)– функція що повертає положення числа на полі

void Scrambles() – функція заповнення поля числами

void CheckBoard()– функція перевірки вірності збору головоломки

bool CheckIfSolvable()– функція, що перевіряє чи можливо розв’язати головоломку

Border CanMove(UIElement itemToMove)– перевірка на можливість руху для числа

private void UserControl_Loaded(object sender, RoutedEventArgs e)– загрузка вікна.

private void UserControl_PointerPressed(object sender, Windows.UI.Xaml.Input.PointerEventArgs e)– переміщення чисел на полі

private void CreateFadeOutAnimation(UIElement btn) – створення анімації.

private void btnnewGame_Click(object sender, RoutedEventArgs e) – опис дій, після натискання користувачем кнопки «Нова гра»

void DisplayToastWithImage() – нотифікація о перемозі

void _dataTransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) – функція, що дозволяє переслати результати своєї гри по e-mail.

private void btnHelp_Click_1(object sender, RoutedEventArgs e) – функція, що зображує вікно з інформацією

private void Page_Tapped_1(object sender, TappedRoutedEventArgs e) – функція, що скриває вікно з інформацією

Поля:

private readonly int[] _bordersNums = { 0, 4, 8, 12, 3, 7, 11, 15 };

private readonly Random _rnd;

private readonly DispatcherTimer _timer;

private int _moves;

private DateTime _startTime;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]