Mundarija:

Petank / Jeu-de-Boul ballarini saqlash uchun ariza: 7 qadam
Petank / Jeu-de-Boul ballarini saqlash uchun ariza: 7 qadam

Video: Petank / Jeu-de-Boul ballarini saqlash uchun ariza: 7 qadam

Video: Petank / Jeu-de-Boul ballarini saqlash uchun ariza: 7 qadam
Video: ПОЧЕМУ Я ЖДУ L4D3 2024, Iyul
Anonim
Petank / Jeu-de-Boul ballarini saqlash uchun ariza
Petank / Jeu-de-Boul ballarini saqlash uchun ariza
Petank / Jeu-de-Boul ballarini saqlash uchun ariza
Petank / Jeu-de-Boul ballarini saqlash uchun ariza
Petank / Jeu-de-Boul ballarini saqlash uchun ariza
Petank / Jeu-de-Boul ballarini saqlash uchun ariza

Bu Android uchun Petanque reytingini saqlash dasturi (ba'zan Jeu de Boules deb ham ataladi). Bu ilova avvalgidek ishlatilishi mumkin va to'liq funktsionaldir. Yoki Petanque Matrix displeyi bilan birgalikda ishlatilishi mumkin [alohida ko'rsatmalari]. Loyihaning bu qismi oson, chunki hech qanday qo'shimcha qurilmalar talab qilinmaydi, faqat bepul mavjud dasturiy ta'minot.

Ta'minotlar

  1. Android -ga mos keladigan telefon (yaxshisi)
  2. Internet -brauzerga kirish imkoni bo'lgan qurilma, tercihen kodlash va dizayn ishi uchun sichqonchali kompyuter
  3. MIT App Inventor hisobi (bepul)
  4. Oddiy chizilgan to'plami, masalan. Pixlr yoki Gimp (barchasi bepul)
  5. Belgilar manbasi veb -sayti, masalan. Materiallar interfeysi belgisi yoki Material.io (barchasi bepul)

Dasturiy ta'minot va manba kodi:

Siz ushbu sahifaning pastki qismida Actual Petanque ilovasiga havolani topishingiz mumkin. Bu erda siz to'liq manba kodiga havolani topishingiz mumkin (uzr, lekin Instructables menga.aia faylini yuklashga ruxsat bermaydi …).

1 -qadam: Anatomiya va ilovaning navigatsiyasi

Anatomiya va ilovaning navigatsiyasi
Anatomiya va ilovaning navigatsiyasi

Ilovaning dizayni va navigatsiyasi juda oddiy. Hammasi bo'lib 4 ta ekran mavjud:

  1. Asosiy ekran №1 (biz ko'p vaqtimizni hisobni saqlash uchun o'tkazamiz)
  2. O'yinlar ekrani #2 (bu erda biz barcha o'yinlar va ochkolar ro'yxatini topamiz)
  3. Sozlamalar ekrani #3 (dastur sozlamalari, ma'muriy vazifalar, disk raskadrovka va hk)
  4. 0 -sonli ekran haqida (logotip va uni yaratish bo'yicha ko'rsatmalarni qaerdan olish kerak, BU veb -sahifa)

Ekranlarning joylashuvi va tugmachalarning joylashuvi 1 qo'l va 1 barmoq (bosh barmog'i) uchun optimallashtirilgan. Pastki navigatsiya menyusidagi tugmalar sizni joriy ekranning o'ng yoki chap qismidagi ekranlarga olib boradi. Shunday qilib, 0 tugmasi sizni 0 -sonli ekranga olib keladi. Va #1 tugmasi sizni asosiy ekran #1 va hokazolarga qaytaradi.

Ochiqmi? Davom etaylik …

2 -qadam: ma'lumotlar bazasi dizayni

Ma'lumotlar bazasi dizayni
Ma'lumotlar bazasi dizayni
Ma'lumotlar bazasi dizayni
Ma'lumotlar bazasi dizayni

Endi, birinchi ekranni yaratishdan oldin, bizda ushbu ilova foydalanadigan barcha ma'lumotlarni saqlash uchun joy kerak. Buning uchun biz MIT App Inventor taklif qiladigan eng oddiy shaklni ishlatamiz: TinyDB. Bu juda cheklangan, chunki u faqat kalit/qiymat juftligini saqlay oladi, lekin biroz yordam va ba'zi fokuslar yordamida biz xohlagan hamma narsani qila olamiz.

Biz saqlaydigan 2 turdagi qiymatlar mavjud:

  • Biz 10 ta oddiy kalit/qiymatli dastur qiymatlarini saqlaymiz (yuqoridagi 'CreateIgnoreList' funktsiyasida ko'rsatilganidek).
  • Va tugallangan o'yin ma'lumotlarini bir satrda saqlaydigan murakkab kalit/qiymat, "CurrentMatch" tugmachasi/qiymati birlamchi kalit * sifatida ishlaydi (yuqoridagi "SaveScore" funktsiyasida ko'rsatilgan). Bu bitta kalit/qiymat juftidagi bu maydonlar vizual bo'lmagan boshqaruv belgisi bilan / 't' ajratilgan. Bu nazorat belgisi bizga 2 -sonli o'yinlar ekranida barcha qiymatlarni alohida komponentlariga qaytarish va ularni ko'rsatish va saralash imkonini beradi. Ammo bu haqida 2 -bo'limda (mos keladi).

* YouTube'da AppInventor -da TinyDb uchun PrimaryKey yaratish haqida qo'shimcha ma'lumot.

3 -qadam: 1 -ekran (asosiy)

1 -ekran (asosiy)
1 -ekran (asosiy)
1 -ekran (asosiy)
1 -ekran (asosiy)
1 -ekran (asosiy)
1 -ekran (asosiy)

Bu bizning "ishchi otlarimiz" ekrani, biz ko'p vaqtimizni dastur foydalanuvchisi sifatida o'tkazamiz. Bu bizning MIT App Inventor ilovasining boshlang'ich nuqtasi.

Yuqoridagi rasmdan ko'rinib turibdiki (1-rasm), ekranni sozlash oddiy bo'lsa-da, juda ko'p yashirin interaktivlik, xatolarni boshqarish, aylantirish, bo'linadigan ekran, suzuvchi menyu, siljish imo-ishoralari, xatolardan, noto'g'ri kirishlar va hatto tiklanishdan saqlanish mavjud. halokatlardan. Bu xususiyatlar uchun har bir ekran uchun batafsil manba kodini ko'rib chiqing. Xo'sh, bu erda nima qilishingiz mumkin:

  • "1 -jamoa" tugmachasini bosing va siz "1 -jamoa" nomini o'zgartirishingiz mumkin bo'lgan bildirishnomani olasiz. O'zgartirilgandan so'ng, bu "1 -jamoa" ni siz tanlagan nomga o'zgartiradi. Bu sizning "o'yin" va "o'yin" ballaringizni aks ettirish uchun ishlatiladigan ism (keyingi ekranlarda).
  • Har bir jamoaning pastki qismida bosilgan "+" va "-" tugmachalari asosida "1-jamoa" va "2-guruh bahosi" o'zgaradi. Agar ball 0 va "-" bosilsa, ovozli va vizual signal beriladi, lekin ball 0 bo'lib qoladi (albatta).
  • Agar "ball" 13 ga yetsa, bir nechta voqea sodir bo'ladi: vizual signal beriladi, xabarlar oynasi natijalarni ko'rsatadi (2 -rasm) va sizga yangi o'yin yoki yangi o'yinni boshlash imkoniyatini beradi (va, albatta, yangi) o'yin). Agar siz klassik Petanka balini emas, balki 2 balli farqni tanlasangiz (bu 3-sonli sozlash ekranida tanlanishi mumkin), ikki jamoaning farqiga qarab, g'olib deb e'lon qilinadi (3-rasmda ko'rsatilgandek).).
  • Joriy "o'yin" dagi "ball" "1 -jamoa" va "2 -jamoa" ballari orasidagi ekranning markazida ko'rsatiladi. Va bu yangi "o'yin" boshlangunga qadar jadvalda davom etadi.
  • Boshqa ekranlarga o'tish uchun siz "Chapga suring" orqali 0 -sonli ekranni yoki "O'ngga suring" ekranining 2 -sonini ko'rsatishingiz mumkin.

Nihoyat, pastki qismida navigatsiya menyusi joylashgan. Bu ekranning kattaligidan qat'i nazar, har doim ekranning mutlaq pastki qismida joylashgan. Android -ning "Ajratilgan ekran" funksiyasi ishlatilsa ham. Pastki navigatsiya menyusida 3 ta tugma mavjud:

  1. Pastki chapda: "?" tugmachasi chapga buriladi va ekranning boshlanishini (#0) yana ko'rsatadi.
  2. Pastki markazda: asl holatiga qaytarish tugmasi (o'qi "@" ga o'xshaydi) sizga o'yinni xohlagan vaqtda yangi o'yinni yoki yangi o'yinni boshlashga imkon beradi, faqat pastdagi o'rtadagi "Qayta tiklash" tugmasini bosing. Bu sizga yangi o'yin yoki yangi o'yinni boshlashingizni so'raydigan bildirishnoma oynasini ham ko'rsatadi.
  3. Pastki o'ngda: '->' tugmasi o'ngga o'tadi va barcha o'yinlar ekranining umumiy ko'rinishini ko'rsatadi (#2).

4 -qadam: 2 -ekran (mos)

2 -ekran (mos)
2 -ekran (mos)
2 -ekran (mos)
2 -ekran (mos)
2 -ekran (mos)
2 -ekran (mos)

Vizual bo'yanish juda sodda bo'lsa -da, bu ekranning ichida boshqa ekranlarga qaraganda qiziqroq kod bor. Ammo biz buni boshlashdan oldin, uning ekrani nima qilayotganini bilib olaylik:

"1 -jamoa" va "2 -jamoa" yorliqlari ostida barcha o'yinlar ro'yxati va ularning tegishli umumiy ballari ko'rsatilgan. Bu saralangan ro'yxat, tepada "oxirgi o'ynalgan o'yin" va pastda "eng qadimgi o'yin".

O'rtada, "1 -jamoa" va "2 -jamoa" o'rtasida tugmalar ro'yxati o'sish yoki kamayish tartibida saralanishi mumkin. Belgi saralash yo'nalishiga qarab o'zgaradi.

Boshqa ekranlarga o'tish uchun siz "Chapga suring" 1 -sonli asosiy ekranni yoki "O'ngga suring" orqali #3 Sozlamalarni ko'rishingiz mumkin.

Nihoyat, pastki qismida navigatsiya menyusi joylashgan. Bu ekranning kattaligidan qat'i nazar, har doim ekranning mutlaq pastki qismida joylashgan. Android -ning "Ajratilgan ekran" funksiyasidan foydalanilsa ham (2 -rasmda ko'rsatilganidek). Pastki navigatsiya menyusida 3 ta tugma mavjud:

  1. Pastki chapda: "?" tugmachasi chapga buriladi va ekranning boshlanishini (#0) yana ko'rsatadi.
  2. Pastki markazda: asl holatiga qaytarish tugmasi (o'qi "@" ga o'xshaydi) sizga "xohlagan vaqtda" yangi o'yinni yoki yangi o'yinni boshlashga imkon beradi, faqat pastki qismidagi "Qayta tiklash" tugmasini bosing. Bu sizga yangi o'yin yoki yangi o'yinni boshlashingizni so'raydigan bildirishnoma oynasini ham ko'rsatadi.
  3. Pastki o'ngda: '->' tugmasi o'ngga o'tadi va barcha o'yinlar ekranining umumiy ko'rinishini ko'rsatadi (#2).

Mosliklar ro'yxatini ekranda markazlashtirish:

Men o'rtada '-' bo'luvchi bilan ekranda markazlashtirilgan o'yinlar ro'yxatini ko'rsatishni xohlardim. Endi, chunki jamoaning g'alaba qozongan o'yinlari soni 1 yoki undan ko'p bo'lishi mumkin va har bir jamoaning haqiqiy nomi har xil bo'lishi mumkin, biz buni 1 ta ro'yxatga qo'sha olmaymiz. Hammasi shunday ko'rinadi:

1 -jamoa 0 - 1 2 -jamoa

Foo 1 - 42 FooBar

Shunday qilib, '-' ajratgichining yorlig'i markazlashtirilgan bo'lishi kerak. "1-jamoa nomi" va "1-jamoa hisobi" o'ng bilan "-" bo'luvchi chap tomonda hizalanadi. "2-jamoa hisobi" va "2-jamoa nomi" chapga-"bo'luvchi" ning o'ng tomoniga hizalanadi. Shunday qilib, biz shunday yakun topamiz:

"Jamoa 1 0" "-" "1 jamoa 2" "Foo 1" "-" "42 FooBar"

O'yinlar ro'yxati qancha davom etishini bilmasam ham, men "Team 1 nomi" va "Team 1 ball" ni bir xil HTMLFormat yorlig'iga qo'yaman va har bir o'yindan keyin a qo'yib, keyingisini NewLine -ga qo'yaman..

Saralash uchun narsalarni tayyorlang:

Ma'lumotlar bazasi dizayn bosqichida aytib o'tilganidek, men faqat bitta qiymatni saqlashim mumkin. Shunday qilib, men "1-jamoa nomi", "1-jamoa hisobi", "2-jamoa hisobi" va "2-jamoa nomi" qiymatlarini vizual bo'lmagan "\ t" belgisi bilan ajratib qo'ydim. Endi men ularni avval ma'lumotlar bazasidan olib chiqishim kerak (3 -rasmda ko'rsatilganidek).

Kod parchasi shuni ko'rsatadiki, biz birinchi navbatda disk raskadrovka bayrog'i o'rnatilganligini tekshiramiz (bu ushbu ilovaning har bir ekranida amalga oshiriladi. Keyin ma'lumotlar bazasidan o'tayotganda e'tibor bermasligimiz kerak bo'lgan kalitlar (qiymatlar/juftliklar) ro'yxatini tuzadi. Bizni faqat "Match" ma'lumoti qiziqtiradi, boshqa hech narsa yo'q. Keyin ma'lumotlar bazasini aylanib o'tamiz, "Ignorelist" dagi barcha kalitlarga e'tibor bermaymiz va 2 qiymatli yangi ro'yxat tuzamiz:

  1. PrimaryKey (esda tutingki, bu Match #1 dan boshlab, Match raqamini bildiruvchi raqam)
  2. "1 -jamoa nomi", "1 -jamoa hisobi", "2 -jamoa hisobi" va "2 -jamoaning nomi" qiymatlarini o'z ichiga olgan qator.

Keyin biz ro'yxat bo'ylab boramiz va alohida ro'yxatlar alohida elementlarga bo'lingan yangi ro'yxatlar ro'yxatini tuzamiz (4 -rasmda ko'rsatilgan):

DataToSort -> Ro'yxat indeksi 1 -> Ro'yxat indeksi 1 (PK raqami)

-> Ro'yxat indeksi 2 (Jamoa nomi 1) -> Ro'yxat indeksi 3 (Jamoa hisobi 1) -> Ro'yxat indeksi 4 (Jamoa hisobi 2) -> Ro'yxat indeksi 5 (Jamoa nomi 2) -> Ro'yxat indeksi 2 -> Ro'yxat indeksi 1 (PK raqami) -> Ro'yxat indeksi 2 (Jamoa nomi 1) ->… -> …

Shundan so'ng, disk raskadrovka bayrog'i rost bo'lsa, biz disk raskadrovka ma'lumotlarini ko'rsatamiz. Va endi biz o'z ro'yxatimizni (ro'yxatlar) tartiblashimiz mumkin.

BubbleSort* ro'yxatlari ro'yxati:

5 -rasm BubbleSort* ro'yxatlar ro'yxatining to'liq ro'yxatini ko'rsatadi. Bu algoritm, albatta, qancha indeks mavjud bo'lishidan qat'i nazar, har qanday hajmdagi ro'yxatlar ro'yxatida ishlatilishi mumkin.

* YouTube -da BubbleSort algoritmi qanchalik sodda ekanligi haqida qo'shimcha ma'lumot.

5 -qadam: 3 -ekran (Sozlamalar)

3 -ekran (Sozlamalar)
3 -ekran (Sozlamalar)

Bu ekran juda band ko'rinadi va ko'plab vizual dizayn elementlariga ega. Ammo oxirida faqat 5 ta o'tish tugmasi mavjud:

  1. "Fred skorlashi": Agar "Yoqish" yoqilgan bo'lsa, u balli xulq -atvorni o'zgartiradi va g'olibni 13 ballidagi 2 ochko farqiga qarab aniqlaydi va birinchi bo'lib 13 ga yetadi.
  2. "Bluetooth ulanishi": (yoqilganda), agar "Yoqish" yoqilgan bo'lsa, tashqi Petank displeyi bilan ushbu ilovani ulash imkonini beradi.
  3. "O'yinlarni asl holatiga qaytarish": "Yoqilgan" bo'lsa, u barcha o'yinlarni tiklaydi/o'chiradi va 1 -o'yin bilan boshlanadi.
  4. "Ma'lumotlar bazasini tiklash": Agar "Yoqish" yoqilgan bo'lsa, u barcha o'yinlarni va boshqa barcha dastur sozlamalarini asl holatiga qaytaradi, shu jumladan joriy hisob, o'yinlar, jamoalar nomlari, disk raskadrovka sozlamalari, tartiblash tartibi, Bluetooth sozlamalari (yoqilganda) va boshqalar..
  5. "Nosozliklarni tuzatish": "Yoqilgan" yoqilgan bo'lsa, u " 'kvadrat qavslar orasidagi ilova bo'ylab disk raskadrovka ma'lumotlarini ko'rsatadi. "Yozuvlarning umumiy soni, o'zgaruvchilarning umumiy soni, joriy o'yin raqami, O'yin PK raqami va boshqalar" kabi narsalar.

Nihoyat, pastki qismida navigatsiya menyusi joylashgan. Bu ekranning kattaligidan qat'i nazar, har doim ekranning mutlaq pastki qismida joylashgan. Hatto Android "Ajratilgan ekran" funksiyasi ishlatilsa yoki ekrandagi elementlar soniga qarab, ekran ko'rsatilgandan balandroq bo'lsa ham. Bunday holda, siz har doim yuqoriga va pastga suring. Bu pastki navigatsiya menyusida faqat 1 tugma mavjud:

Pastki chapda: '<-' tugmasi chapga buriladi va barcha o'yinlar ekranining umumiy ko'rinishini ko'rsatadi (#2)

6 -qadam: 0 -ekran (taxminan)

Ekran 0 (haqida)
Ekran 0 (haqida)

Yakuniy ekran. Faqat ma'lumot, boshqa hech narsa.

Bu ekran bu dastur ishga tushganda birinchi marta ko'rsatiladi. Shundan so'ng, u hech qachon ko'rsatilmaydi, agar siz "?" Asosiy ekrandagi tugma № 1.

Pastki navigatsiya menyusida faqat 1 tugma bor va bu sizni asosiy ekran #1 ga qaytaradi.

7 -qadam: Dasturiy ta'minot va/yoki manba kodi

Dasturiy ta'minot va/yoki manba kodi
Dasturiy ta'minot va/yoki manba kodi

Nihoyat.

Siz ushbu ilovani Google Drive -dan yuklab olishingiz mumkin.

Siz kodni Pentaque uchun MIT App Inventor Gallery yozuvidan yuklab olishingiz mumkin (1 -rasm). Bu sizga loyihani o'zingizning MIT App Inventor hisob qaydnomangizga saqlashga imkon beradi (siz uni xohlagan narsangizga o'zgartirishingiz mumkin). U erdan siz Bloklar muharriridagi barcha kodlarni, Dizayner muharriridagi ekranlarni va ushbu loyiha uchun ishlatilgan barcha ommaviy axborot vositalari va resurslarni ko'rishingiz mumkin.

Shuningdek, mana kodni (.aia faylini, aslida.zip fayli) ushbu Google Disk manzilidan yuklab olishingiz mumkin.

Tavsiya: