Разработка мобильного приложения детская развивающая игра. Теоретические основы разработки мобильных приложений
Скачать 2.75 Mb.
|
Список использованных источников 1 Бентли Дж. Ф. – Жемчужины программирования Петербург: Изд–во Питер, 2004. С. 12. 2 Детская развивающая игра «Математический паравозик Лолы». https: // play.google.com/store/apps/details?id=com.beiz.lolasmathlite&hl=ru 3 Детская развивающая игра «Пираты молочного моря». https:// lifehacker.ru/2013/03/27/piraty–molochnogo–morya/ 4 Детская развивающая игра «Математика и цифры для малышей» https: // play.google.com/store/apps/details?id=com.whisperarts.kids.math&hl=ru 5 Конституция РК http: // www.akorda.kz/ru/official_documents /constitution 6 Денисова А.Л., Зайцев Е.В., Молоткова Н.В. – Информационная основа потребительской оценки товаров и услуг: современные методы и подходы: Учеб. пособие. Тамбов: Изд-во Тамб. гос. техн. ун-та, 2005. С. 117 7 ARGOi, http: // trust.utep.edu/umli/software.html 8 ArgoUML, http: // argouml.tigris.org/ 9 Balsamiq Mockups, http: // www.balsamiq.com/products/mockups 10 Business Process Modeling Notation. Final Notation Specification dtc/06–02–01, OMG, 2006. http: // www.omg.org/spec/BPMN/1.2/PDF/ 11 Computer Aided Software Engineering, http://blog.salamtura.com/ post/computer–aided–software–engineering/ 12 Extensible Application Markup Language, http: // msdn.microsoft.com/ru–ru/library/ms752059.aspx 13 GUI Design Studio, http: // www.carettasoftware.com/guidesignstudio/ 14 Microsoft Expression Blend, http://www.microsoft.com/expression/ 15 Павловская Т.А. – CC++. Программирование на языке высокого уровня. Самара: Изд–во ПГСГА, 2003. С. 207– 209. 16 MicrosoftSilverlight, http: // www.microsoft.com/silverlight/ 17 Руководство по программированию на Аndroid, http: // www.http: // startandroid.ru/ru//rus 18 OMG Unified Modeling Language (OMG UML), Infrastructure, Version 2.2, OMG, 2009. http: // www.omg.org/spec/UML/2.2/Infrastructure/PDF/ 19 OMG Unified Modeling Language (OMG UML), Superstructure, Version 2.2, OMG, 2009. http: // www.omg.org/spec/UML/2.2/Superstructure/PDF/ 20 Qt, http: // qt–project.org/ 21 Qt Designer, http: // qt–project.org/doc/qt–4.8/designer–manual.html 22 Qt Graphics View Framework, http://qt–project.org/doc/qt–4.8/graphicsview.html 23 Лорен Д., Кондер Ш. – Android за 24 часа. Программирование приложений под операционную систему Google Москва Изд-во: Рид Групп 2011, С. 252 24 Гриффитс Д. – Head First. Программирование для Android Санкт-Петербург: Изд-во Питер, 2016. С. 77 25 Голощапов А.Т. – CC++. Google Android. Программирование для мобильных устройств Питер: Изд–во БХВ-Петербург, 2011. С. 27– 29. 26 Дейтел П., Дейтел Х., Дейтел Э., Моргано М – Android для разработчиков Санкт-Петербург: Изд–во Питер 2015. С. 20. Приложение А (обязательное) Листинг программы public class ColorsActivity extends AppCompatActivity { private FloatingActionButton fabNewGame; // Кнопки Button btnBaseColours, btnColour1, btnColour2, btnColour3, btnColour4, btnColour5, btnColour6, btnColour7, btnColour8, btnColour9, btnColour10, btnColour11, btnColour12, btnColour13, btnColour14, btnColour15, btnColour16, btnColour17, btnColour18, btnColour19, btnColour20, btnColour21; // Компонент для вывода результатов игры: TextView tvResult; // Базовый цвет и цвета для сравнения: int baseColour, childColour; // Максимальное число цветов, предлагаемых для сравнения: final int buttonCount=21; // Число уровней игры: final int maxLevel=7; // Текущий уровень игры: int currentLevel; // Переменные для фиксации затраченного на игру времени (старт и фи-ниш): long start, end; //Функция boolean eqColours(Button btnChild) возвращает «истина» если цвет кнопки btnChild совпадает с базовым цветом кнопки btnBaseColours: protected boolean eqColours(Button btnChild){ // Сравнение цветов boolean result=false; // Базовый цвет ColorDrawable baseColor = (ColorDrawable) btnBaseColours.getBackground(); int colorId1 = baseColor.getColor(); // Цвет нажатой кнопки ColorDrawable childColor = (ColorDrawable) btnChild.getBackground(); int colorId2 = childColor.getColor(); // Цвета совпадают? if (colorId1 == colorId2) { result=true; } return result; } //Процедура gameLevel(int level) запускает игру с уровня level. protected void gameLevel(int level){ // В начале процедуры проверяется не достигнут ли максимальный уро-вень maxLevel: if (level>maxLevel){ end = System.nanoTime(); tvResult.setText(getString(R.string.tvResult) + " " + Long.toString((end-start)/1000000000) + " с"); //Snackbar.make(R.layout.activity_game, R.string.endGame, Snackbar.LENGTH_SHORT).show(); Toast.makeText(ColorsActivity.this,"Игра завершена",Toast.LENGTH_SHORT).show(); return; } // Если максимальный уровень игры не достигнут - задается случайный базовый цвет, в который окрашивается базовая кнопка Random rnd = new Random(); baseColour = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); btnBaseColours.setBackgroundColor(baseColour); // Далее задается случайный цвет всем другим кнопкам: for (int i=1; i<(level*3+1);i++) { Button btnChild = (Button) findViewById(getBaseContext().getResources().getIdentifier("btnColour" + i, "id", getBaseContext().getPackageName())); rnd = new Random(); childColour = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); btnChild.setBackgroundColor(childColour); } // Все кнопки вначале делаются невидимыми: for (int i=1; i<(buttonCount+1);i++) { Button btnChild = (Button) findViewById(getBaseContext().getResources().getIdentifier("btnColour" + i, "id", getBaseContext().getPackageName())); btnChild.setVisibility(View.INVISIBLE); } // Видимыми делаются только кнопки, соответствующие уровню игры level: for (int i=1; i<(level*3+1);i++) { Button btnChild = (Button) findViewById(getBaseContext().getResources().getIdentifier("btnColour" + i, "id", getBaseContext().getPackageName())); btnChild.setVisibility(View.VISIBLE); } // Одной из кнопок задается базовый цвет: int min = 1; int max = level*3; int j = rnd.nextInt(max - min + 1) + min; Button btn = (Button) findViewById(getBaseContext().getResources().getIdentifier("btnColour"+j, "id", getBaseContext().getPackageName())); btn.setBackgroundColor(baseColour); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_colors); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); startService(new Intent(this, MyService.class)); // Кнопка Home ActionBar actionBar = getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); btnBaseColours = (Button) findViewById(R.id.btnBaseColours); btnColour1 = (Button) findViewById(R.id.btnColour1); btnColour2 = (Button) findViewById(R.id.btnColour2); btnColour3 = (Button) findViewById(R.id.btnColour3); btnColour4 = (Button) findViewById(R.id.btnColour4); btnColour5 = (Button) findViewById(R.id.btnColour5); btnColour6 = (Button) findViewById(R.id.btnColour6); btnColour7 = (Button) findViewById(R.id.btnColour7); btnColour8 = (Button) findViewById(R.id.btnColour8); btnColour9 = (Button) findViewById(R.id.btnColour9); btnColour10 = (Button) findViewById(R.id.btnColour10); btnColour11 = (Button) findViewById(R.id.btnColour11); btnColour12 = (Button) findViewById(R.id.btnColour12); btnColour13 = (Button) findViewById(R.id.btnColour13); btnColour14 = (Button) findViewById(R.id.btnColour14); btnColour15 = (Button) findViewById(R.id.btnColour15); btnColour16 = (Button) findViewById(R.id.btnColour16); btnColour17 = (Button) findViewById(R.id.btnColour17); btnColour18 = (Button) findViewById(R.id.btnColour18); btnColour19 = (Button) findViewById(R.id.btnColour19); btnColour20 = (Button) findViewById(R.id.btnColour20); btnColour21 = (Button) findViewById(R.id.btnColour21); tvResult = (TextView) findViewById(R.id.tvResult); fabNewGame = (FloatingActionButton) findViewById(R.id.fabNewGame); // Запуск новой игры fabNewGame.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Старт игры с первого уровня tvResult.setText(""); start= System.nanoTime(); currentLevel=1; gameLevel(currentLevel); } }); View.OnClickListener onClickListener = new View.OnClickListener() { @Override public void onClick(View view) { switch (view.getId()) { case R.id.btnColour1: if (eqColours(btnColour1) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour2: if (eqColours(btnColour2) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour3: if (eqColours(btnColour3) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour4: if (eqColours(btnColour4) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour5: if (eqColours(btnColour5) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour6: if (eqColours(btnColour6) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour7: if (eqColours(btnColour7) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour8: if (eqColours(btnColour8) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour9: if (eqColours(btnColour9) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour10: if (eqColours(btnColour10) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour11: if (eqColours(btnColour11) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour12: if (eqColours(btnColour12) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour13: if (eqColours(btnColour13) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour14: if (eqColours(btnColour14) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour15: if (eqColours(btnColour15) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour16: if (eqColours(btnColour16) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour17: if (eqColours(btnColour17) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour18: if (eqColours(btnColour18) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour19: if (eqColours(btnColour19) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour20: if (eqColours(btnColour20) == true) { currentLevel++; gameLevel(currentLevel); } break; case R.id.btnColour21: if (eqColours(btnColour21) == true) { currentLevel++; gameLevel(currentLevel); } break; } } }; // Кнопкам присваивается слушатель (обработчик событий): btnBaseColours.setOnClickListener(onClickListener); btnColour1.setOnClickListener(onClickListener); btnColour2.setOnClickListener(onClickListener); btnColour3.setOnClickListener(onClickListener); btnColour4.setOnClickListener(onClickListener); btnColour5.setOnClickListener(onClickListener); btnColour6.setOnClickListener(onClickListener); btnColour7.setOnClickListener(onClickListener); btnColour8.setOnClickListener(onClickListener); btnColour9.setOnClickListener(onClickListener); btnColour10.setOnClickListener(onClickListener); btnColour11.setOnClickListener(onClickListener); btnColour12.setOnClickListener(onClickListener); btnColour13.setOnClickListener(onClickListener); btnColour14.setOnClickListener(onClickListener); btnColour15.setOnClickListener(onClickListener); btnColour16.setOnClickListener(onClickListener); btnColour17.setOnClickListener(onClickListener); btnColour18.setOnClickListener(onClickListener); btnColour19.setOnClickListener(onClickListener); btnColour20.setOnClickListener(onClickListener); btnColour21.setOnClickListener(onClickListener); // Старт игры с первого уровня tvResult.setText(""); start= System.nanoTime(); currentLevel=1; gameLevel(currentLevel); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // получим идентификатор выбранного пункта меню int id = item.getItemId(); // Операции для выбранного пункта меню switch (id) { case R.id.action_newgame: tvResult.setText(""); start= System.nanoTime(); public class ColorsActivity extends AppCompatActivity { private FloatingActionButton fabNewGame; // Кнопки Button btnBaseColours, btnColour1, btnColour2, btnColour3, btnColour4, btnColour5, btnColour6, btnColour7, btnColour8, btnColour9, btnColour10, btnColour11, btnColour12, btnColour13, btnColour14, btnColour15, btnColour16, btnColour17, btnColour18, btnColour19, btnColour20, btnColour21; // Компонент для вывода результатов игры: TextView tvResult; // Базовый цвет и цвета для сравнения: int baseColour, childColour; // Максимальное число цветов, предлагаемых для сравнения: final int buttonCount=21; // Число уровней игры: final int maxLevel=7; // Текущий уровень игры: int currentLevel; // Переменные для фиксации затраченного на игру времени (старт и фи-ниш): long start, end; //Функция boolean eqColours(Button btnChild) возвращает «истина» если цвет кнопки btnChild совпадает с базовым цветом кнопки btnBaseColours: protected boolean eqColours(Button btnChild){ // Сравнение цветов boolean result=false; // Базовый цвет ColorDrawable baseColor = (ColorDrawable) btnBaseColours.getBackground(); int colorId1 = baseColor.getColor(); // Цвет нажатой кнопки ColorDrawable childColor = (ColorDrawable) btnChild.getBackground(); int colorId2 = childColor.getColor(); // Цвета совпадают? if (colorId1 == colorId2) { result=true; } return result; } //Процедура gameLevel(int level) запускает игру с уровня level. protected void gameLevel(int level){ // В начале процедуры проверяется не достигнут ли максимальный уро-вень maxLevel: if (level>maxLevel){ end = System.nanoTime(); tvResult.setText(getString(R.string.tvResult) + " " + Long.toString((end-start)/1000000000) + " с"); //Snackbar.make(R.layout.activity_game, R.string.endGame, Snackbar.LENGTH_SHORT).show(); Toast.makeText(ColorsActivity.this,"Игра завершена",Toast.LENGTH_SHORT).show(); return; } // Если максимальный уровень игры не достигнут - задается случайный базовый цвет, в который окрашивается базовая кнопка Random rnd = new Random(); baseColour = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); btnBaseColours.setBackgroundColor(baseColour); // Далее задается случайный цвет всем другим кнопкам: for (int i=1; i<(level*3+1);i++) { Button btnChild = (Button) findViewById(getBaseContext().getResources().getIdentifier("btnColour" + i, "id", getBaseContext().getPackageName())); rnd = new Random(); childColour = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); btnChild.setBackgroundColor(childColour); } // Все кнопки вначале делаются невидимыми: for (int i=1; i<(buttonCount+1);i++) { Button btnChild = (Button) findViewById(getBaseContext().getResources().getIdentifier("btnColour" + i, "id", getBaseContext().getPackageName())); btnChild.setVisibility(View.INVISIBLE); } // Видимыми делаются только кнопки, соответствующие уровню игры level: for (int i=1; i<(level*3+1);i++) { Button btnChild = (Button) findViewById(getBaseContext().getResources().getIdentifier("btnColour" + i, "id", getBaseContext().getPackageName())); btnChild.setVisibility(View.VISIBLE); } // Одной из кнопок задается базовый цвет: int min = 1; int max = level*3; int j = rnd.nextInt(max - min + 1) + min; Button btn = (Button) findViewById(getBaseContext().getResources().getIdentifier("btnColour"+j, "id", getBaseContext().getPackageName())); btn.setBackgroundColor(baseColour); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_colors); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); startService(new Intent(this, MyService.class)); // Кнопка Home ActionBar actionBar = getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); |