УДК 004.6
Поварницын Е.Н. студент 4 курса
факультет «Информационные системы и технологии» Северный Арктический Федеральный Университет
Россия, г. Архангельск
РАЗРАБОТКА ПРИЛОЖЕНИЕ MEMORY GAME
Аннотация: Статья посвящается разработки игры развивающую память. В ней детально рассматриваются все этапы разработки. А также присутствует анализ приложения.
Ключевые слова: Android, Memory Game, C#, карточки, запоминание, детская.
Povarnitsyn E. N. student 4rd year
faculty of Information systems and technologies» Northern Arctic Federal University Russia, Arkhangelsk
DEVELOPMENT OF THE MEMORY GAME APP
Annotation: The article is devoted to the development of the game developing memory. It covers all stages of development in detail. And there is also an analysis of the application.
Keyword: Android, Memory Game, C#, flashcards, memorization, children.
1 АНАЛИЗ ПРИЛОЖЕНИЯ
Идея написать приложения под платформу Android с помощью Android Studio. Цель приложения - это развитие памяти у пользователей приложения.
То есть нужно написать приложения чтобы пользователь открывал две карточки в случайном порядке и если данные карточки совпадают, то они не закрываются, в противном случае карточки закрываются и пользователю даётся ещё одна попытка. Данные действия продолжаются до тех пор, пока игрок не откроет все карточки.
Язык программирования выбран Java. По следующим причинам:
- объектно-ориентированное программирование;
- язык высокого уровня с простым синтаксисом и плавной кривой обучения;
- стандарт для корпоративных вычислительных систем;
- безопасность;
- независимость от платформы («Написать один раз и использовать везде»);
- язык для распределенного программирования и комфортной удаленной совместной работы;
- и так далее.
Разработка ведётся в Android Studio по причине того, что это самая популярная и развивающаяся платформа. Данная среда уже годами рекомендует себя.
В приложении необходимо добавить авторизацию пользователя, куда он сможет вести своё имя и сколько ему лет. Чтобы приложение стало хоть немного востребовано нужно было выбрать популярную тематику карточек. Поэтому тематика картинок была взята с баскетбольных команд, а вернее с американской лиги NBA. Данная тематика будет интересна поклонникам данной лиги, а их не мало.
После краткого анализа можно дать название приложения, и это будет Memory Game. После прочтения названия у пользователя сразу же возникнет ассоциация с развитием памяти в игровой форме.
В теории наше приложение будет выглядеть в соответствии с рисунком 1.
Time Name Age
Рисунок 1 - Макет приложения
2 СРАВНИТЕЛЬНЫЙ анализ
Разберём другие приложения с данной тематикой.
Тренировка памяти | Мемори: Remembery. Обычная игра, в которой существуют различные тематики картинок. Но в основном данная игра рассчитана на слишком детскую аудиторию, так как изображения на картинках слишком детские. В игре так же присутствуют уровни сложности и возможен выбор большой локализации. Приложение выглядит в соответствии с рисунком 2.
Рисунок 2 - Приложение Мемори: Remembery
Игра памяти: Memory Match. Данное приложение уже берёт аудиторию повзрослее, так как там расположены карточки браузеров, соцсетей и так далее. В игре так же существует выбор уровня 3x2, 4x3, 5x4 и так далее до 9x8. Приложение выглядит в соответствии с рисунком 3.
Рисунок 3 - Memory Match
Memo игра памяти. Данное приложение будет так же для детей. К тому же при прохождении уровней, сложность игры будет увеличиваться. Картинки же здесь более детские, нежили в других приложениях. Игра выглядит с соответствием с рисунком 4.
Рисунок 4 - Memo
Игры с памятью. Аудитория данного приложения будут дети дошкольного возраста. Тематика данной игры — это мультяшные животные. В данном приложении есть 4 различных уровня сложности, это лёгкий, средний, тяжелый и сверх. Приложение выглядит с соответствием с рисунком 5.
Рисунок 5 - Игры с памятью
Игра Памяти: Животные. Игра рассчитана на уже более взрослую аудиторию нежили для дошкольников. В игре так же существуют различные уровни сложности. Так же присутствует мультиплеер. Тематика игры такая же, как и у прошлого приложения, животные. Но здесь они уже настоящие, а не мультяшные. Приложение выглядит с соответствием с рисунком 6.
Рисунок 6 - Игра Памяти: Животные Далее рассмотрим итоговую таблицу сравнения, таблица 1
Таблица 1 - Сравнение приложений
Мобильное приложение Основной функционал Отличительные особенности Тематика игры Аудитория игры
Remembery Запоминание карточек Различная детская тематика Разная Дети дошкольного возраста
Memory Match Запоминание карточек Настраиваемое поле картинок Разная Дети
Мобильное Основной Отличительные Тематика Аудитория
приложение функционал особенности игры игры
Memo Запоминание Увеличение Разные Дети
букв, цифр и сложности детские дошкольного
других темы возраста
предметов
Игры с Запоминание Мультипликационные Животные Дети
памятью карточек картинки с животными дошкольного возраста
Игра Памяти: Запоминание Мультиплеер Животные Дети
Животные карточек и игра с друзьями
3 РАЗРАБОТКА ПРИЛОЖЕНИЯ
3.1 Описание приложения с точки зрения пользователя
Вначале создания приложения стоит найти несколько картинок для осуществления проекта. К тому же стоит найти и фон, на котором будет располагаться приложение.
После это стоит заняться прописыванием фоновых элементов. В данном приложении будет всего три окна с авторизацией, выбором уровня сложности и самой игрой. Для авторизации нам понадобятся такие элементы, как кнопки, поле редактора текста и текстовые поля. После прописывания и расстановки их в хт1 файле окно будет выглядеть в соответствии с рисунком 7.
Рисунок 7 - Шаблон авторизации
Далее пропишем меню уровней сложности, для него нам понадобятся элементы кнопок, текста и редактора текста, которые будут отображать имя и количество лет у пользователя. Выглядеть это будет в соответствии с рисунком 8.
Рисунок 8 - Шаблон выбора уровня
Ну и последний шаблон будет иметь вид самой игры. В ней будут находиться всё тот же текст и редактор текста, к тому же здесь прибавится слой сетки, где в будущем будут располагаться элементы картинок. Выглядеть это будет в соответствии с рисунком 9.
Рисунок 9 - Шаблон игры
Далее разберём классы, которые были использованы для логики игры. Первом делом был создан класс для авторизации пользователя в системе. В нём прописывается логин и возраст, а также валидация этих данных. Выглядит метод создания аккаунта в соответствии с рисунком 10.
(¡¡¡Override
protected void onCreate(Bundle savedlnstanceState) { super.onCreate(savedlnstanceState); this . requestUindowFeature (Window. FEATURE_NO_ TITLE); setContentView(R.layout,activity_weLcome_to)j init()j
loginButton.setOnClickl_istener((v) -* {
name = nairieEdi" . get Text () , toSt ™ing() , trimQ j age = ageEdi" . getTextQ . toSt^ingQ ,t™iin() j validNaine = isValidNairie(naine); validAge = isValidAge(age); isOk = checkNaineAndAge()j iff: == false) { "■g t u rn"
}else{
Intent i = new Intent(getBaseContext(),MenuActivity.class)j i. putExtra (USERJJAMEname); i.putExtra(USER_AGE,age)j startActivity(i);
>
>
Рисунок 10 - Код создания аккаунта
После чего создаём логику для окна с меню, где можно выбирать уровень сложности. Стоит обратить внимание, что на данном этапе будет происходить переадресация на игру, класс которой ещё не создан, поэтому при вводе кода могут возникать ошибки. Код для привязки кнопки с уровнем сложности средний будет выглядеть в соответствии с рисунком 11.
button4x4,setOnClickl_istener((v) -» {
Intent intent = new Intent( packacjeContext: MenuActivity .thisjGameActivity. class);
intent. put Extra (USER_NAMEj u se rNaine) j
intent.put Extra(USER_AGEjU5erAge) j
intent.putExtra(LEVELj value 4)j
intent.putExtra(FOR_TIMERjMEDIUM)j
startActivity(intent)j
Рисунок 11 - Код привязки кнопки
Далее разберём сам класс игры. В нём прописываем для каждой кнопки количество кнопок. Разберём метод, при котором пользователь нажимает на кнопку карточки. В нём можно увидеть, что при нажатии на кнопку идёт открытие картинки, и при совпадении картинок они остаются на поле, если же нет, то закрываются, продолжается до тех пор, пока все картинки не закончатся.
Так же в игру был добавлен таймер, по истечению которого игра заканчивается автоматически. Старт таймера выглядит в соответствии с рисунком 12.
ubLi- Timerflong nuinOfSeconds, long interval, EditText text,GameActivity theActivity){ super (nuinOf Seconds, interval) j this .tiinerText = text; this.theActivity = theActivity;
}
public void onTick(long iriillisUntil-inished){
-Lae-Te>:~ .setText ("Tinier: " + millisUntilFinished;
Рисунок 12 - Код таймера
3.2 Описание приложения с точки зрения пользователя
При открытии приложения пользователь видит окно регистрации, в него нужно ввести имя и возраст игрока, в соответствии с рисунком 13.
Рисунок 13 - Заполнение данных пользователя
После чего будет предложен выбор уровня в соответствии с рисунком
Рисунок 14 - Выбор уровня сложности
После чего откроется игра, в соответствии с рисунком 15.
Рисунок 15 - Игра Memory Game
Далее если игра выиграна, то отразится надпись, что пользователь выиграл, ежили игрок не успел за данное ему время, то его перебросит в главное меню. Выигрыш пользователя будет выглядеть в соответствии с рисунком 16.
Рисунок 16 - Выигрыш игрока