Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
884445.rtf
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

Глава II. Разработка развивающих и обучающих игр

  1. Разработка приложения для платформы Android

JDK - бесплатно распространяемый компанией OracleCorporation комплект разработчика (далее SDK) на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE). В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки.

Android SDK - Android SDK включает в себя инструменты, необходимые для разработки Android-приложений. Комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ.

Eclipse - свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается EclipseFoundation. На данный момент является наиболее удобным средством разработки для Android.

ADT плагин - по умолчанию Eclipse не особо годится для разработки Android-приложений. ADT - плагин, который настраивает среду разработки для использования Android SDK и добавляет возможность удобной разработки. Плагин довольно легко устанавливает в среду Eclipse.

SDKmanager (выбор платформы) – здесь мы выбираем необходимые нам компоненты для разработки приложений, а именно: платформа (API), утилиты (оптимизаторы для определенных устройств, набор готовых примеров и т.д.), тулсы (прямая отладка на ANDROID-устройстве, интеграция дополнительных возможностей и т.д.).

С выбором я остановился на SDK платформы версии 2.3.3. Именно данная платформа предлагает весь необходимый набор методов необходимый для более удобной разработки приложений. Так же, ANDROID-устройств с версией ниже 2.3 мы уже не найдем. Соответственно, приложения созданные с помощью данного SDK можно будет использовать на любом мобильном устройстве с ОС Android.

AVD (android virtual device)–это эмулятор Android-смартфона, на который Eclipse сможет устанавливать, созданные нами приложения, и запускать их там.

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

2. Проектирование и реализация программы для тестирования учеников начальной школы

Рис. 1. Оболочка Eclipse

После подготовки Eclipse мы можем приступить непосредственно к разработке нашего приложения. Но для начала рассмотрим саму оболочку и принцип работы нашего приложения на рисунке №1.

1. Пакетный обозреватель. Включает в себя всю иерархию файлов используемых в проекте (классы, стили, картинки и т.д.).

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

3. Палитра компонентов – содержит типовой набор компонентов необходимый для разработки приложения.

4. Рабочая область – в данной области отображаются необходимые для редактирования файлы проекта (разметка области, редактирование класса и т.д.).

5. Свойства выбранного компонента. Отображает все свойства выбранного в данный момент времени компонента. Так же содержит применяемые события.

6. Структура редактируемого файла. К примеру, если это активити - отображение слоя и всех компонентов входящих в него, или если это класс – иерархия всех методов и переменных, используемых в данном классе.

Теперь более подробно рассмотрим саму программу для тестирования.

Приложение состоит из трех активити (рабочих экранов). Активити включает в себя: файл разметки (в формате xml) и непосредственно класс, который будет его обрабатывать. Разметка осуществляется привычными html тегами, с небольшими поправками на среду разработки. К примеру, форма в рабочей области, которая на рисунке №2, имеет вид:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@drawable/tech"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:layout_marginTop="51dp"

android:onClick="myClick"

android:text="Тестирование: "таблица умножения"" />

<Button

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_alignParentRight="true"

android:onClick="ExitAct"

android:text="Выйти" />

</RelativeLayout>

Рис. 2. Главное меню

На рисунке №2 отмечены:

1. файл разметки

2. класс

3. кнопка из палитры, которая добавляется простым перетаскиванием, или описанием в файле разметки.

Компоненты на данной форме: button.

Механика работы: главное меню служит начальным экраном приложения. Здесь размещены две кнопки. Начать тестирование и выход. С кнопкой выход всё понятно. Кнопка тестирования вызывает новый активити:

public void myClick (View v) {

Intent intent = new Intent(this, Pifagor.class);

startActivity(intent);

}

Здесь мы заранее прописали событие кнопки OnClick в её свойствах

Рис. 3. Форма тестирования

<Button

android:onClick="myClick"

…. />

Форма тестирования:

Здесь используются такие компоненты как: TetxtView, button, edittext.

Механика работы:

    1. Генерируется сам вопрос (посчитай, вычисли и т.п.), на основании массива (String[] question = { "Сколько будет ", "Вычисли ", "Посчитай " };). Сюда же в строку добавляются и два случайных числа (first, second). Далее переменной questionView (которая определена как questionView = (TextView) findViewById(R.id.TextView02)); присваивается с помощью метода setText сформированная строка.

first = (int) Math.floor(Math.random() * 10 + 1);

second = (int) Math.floor(Math.random() * 10 + 1);

questionView.setText(""

+ question[(int) Math.floor(Math.random() * quetion.length)]

+ first + "x" + second + "?");

}

Таким образом, вопрос для ученика формирован.

    1. Далее ученик вводит ответ, который он считает верным, в текстовое поле (answer = (EditText) findViewById(R.id.editText1);). Причем ответ не может быть пустым, или состоять из букв (обрабатывается программно) и подтверждает ответ нажатием кнопки.

    2. Если ответ верный, мы выведем случайное сообщение из массива о правильности ввода данных, и увеличим счетчик правильных ответов на +1. В противном случае, появится информационное окно, в котором будет написано, сколько осталось попыток у ученика, и счетчик неверных ответов увеличиться на +1 (Toast.makeText(this,""+ answers[(int) Math.floor(Math.random()* answers.length)], Toast.LENGTH_SHORT).show();) После двух попыток, формируется новый вопрос. Функционал будет повторяться, пока не достигнет в совокупности 10 вопросов (не важно, верно ли ответил ученик или нет). Обработка осуществляется с помощью метода proverka.

public void proverka() {

if (questcount == 10) {

Toast.makeText(this,

"Твое тестирование завершено\nВнимание на результаты",

Toast.LENGTH_SHORT).show();

Intent intent = new Intent(this, ResultPifa.class);

intent.putExtra("msg1", correct);

intent.putExtra("msg2", uncorrect);

startActivity(intent);

}

}

    1. После метода проверки, мы попадаем на финальный экран результатов (рисунок №4).

Рис. 4. Результаты

Используемые компоненты: textView.

    1. В данную форму мы передаем результаты с предыдущей формы, а именно: количество правильных и не правильных ответов.

correct = getIntent().getExtras().getInt("msg1");

uncorrect = getIntent().getExtras().getInt("msg2");

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

  • Оценка (самая низкая оценка - 2)

  • Качество выполнения, вычисляется по формуле:

procent = correct-uncorrect;

procentView.setText(Integer.toString(procent) + "0%");

  • Комментарий к тестированию – является конструкцией типа case. В зависимости от полученной оценки, формируется комментарий.

if (ocenka < 2) {

ocenkaView.setText("2!");

} else {

ocenkaView.setText(Integer.toString(ocenka));

}

procentView.setText(Integer.toString(procent) + "0%");

switch (ocenka) {

case 2:

comment = "НЕУД,

хуже результата и быть не может. Тебе нужно срочно учить таблицу умножения. Таких плохих результатов быть не должно!";

break;

case 3:

comment = "Далеко до идеала, необходимо больше практиковаться с вычислениями. Почаще проходи тестирование и у тебя всё получится!";

break;

case 4:

comment = "Довольно хороший результат! Ты почти идеально знаешь таблицу умножения, но всё же иногда допускаешь ошибки, немного усилий и у тебя всё получиться!";

break;

case 5:

comment = "Ты показал отличный результат! Но не стоит себя переоценивать, обязательно побольше практитуйся с вычислениями!";

break;

}

commentView.setText(comment);

}

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

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