Оценить:
 Рейтинг: 0

Программирование для мобильных платформ. Windows Phone

Год написания книги
2018
<< 1 2 3 4 5 6 7 8 9 10 ... 15 >>
На страницу:
6 из 15
Настройки чтения
Размер шрифта
Высота строк
Поля

Для примера рассмотрим создание игры судоку. Из контента использованы только текстуры (рис 4 – 9):

Рисунок 4 – 0.png, 1.png, 2.png, 3.png, 4.png, 5.png, 6.png, 7.png, 8.png, 9.png и d.png соответственно

Рисунок 5 – error.png и s.png соответственно, полупрозрачные (здесь обведены в рамку, чтобы из можно было увидеть)

Рисунок 6 – MenuRecord.png

Рисунок 7 – GameField.png

Рисунок 8 – MenuUpdate.png

Рисунок 9 – Контент в составе проекта

Для генерации игрового поля была использована следующая последовательность действий:

Первая строка заполняется случайными неповторяющимися числами от 1 до 9. Далее для каждой следующей строки происходит особая перестановка элементов из первой строки такая, что судоку имеет решение и является верным. Затем в каждом блоке из трех строк (1—3, 4—6, 7—9) происходит случайная перестановка двух строк, если программа выбрала одинаковую строку, то перестановка не происходит, тоже самое делается и с столбцами. Далее переставляем местами 2 случайных блока по горизонтали и по вертикали, по тому же принципу как и строки со столбцами. Затем удаляются лишние клетки. В итоге получается уникальное судоку.

Ниже приведен код из файла Game1:

using System;

using System.Collections.Generic;

using System.Linq;

using Microsoft.Xna.Framework;

using Microsoft.Xna.Framework.Audio;

using Microsoft.Xna.Framework.Content;

using Microsoft.Xna.Framework.GamerServices;

using Microsoft.Xna.Framework.Graphics;

using Microsoft.Xna.Framework.Input;

using Microsoft.Xna.Framework.Input.Touch;

using Microsoft.Xna.Framework.Media;

using System.IO.IsolatedStorage;

using System.IO;

namespace Sudoku

{

// Класс Field

public class Field

{

// Квадрат

public short Square {get; set;}

// Значение

public short Value {get; set;}

// Стандартное

public bool Standard {get; set;}

// Повтор

public bool Repeat {get; set;}

}

public class Game1: Microsoft.Xna.Framework.Game

{

GraphicsDeviceManager graphics;

SpriteBatch spriteBatch;

// Объявление переменных

// Текстуры:

Texture2D gameField;

Texture2D doublePoint;

Texture2D standartNumbers, errorNumbers;

Texture2D menuUpdate, menuRecord;

Texture2D [] numbersTexture = new Texture2D [10];

// Массив элементов поля

Field [,] field = new Field [9,9];
<< 1 2 3 4 5 6 7 8 9 10 ... 15 >>
На страницу:
6 из 15