Turinys:
- Prekės
- 1 veiksmas: programos anatomija ir naršymas
- 2 žingsnis: duomenų (bazės) projektavimas
- 3 veiksmas: 1 ekranas (pagrindinis)
- 4 veiksmas: 2 ekranas (atitiktys)
- 5 veiksmas: 3 ekranas (nustatymai)
- 6 veiksmas: 0 ekranas (apie)
- 7 veiksmas: programinė įranga ir (arba) šaltinio kodas
Video: „Petanque“/ „Jeu-de-Boules“taškų palaikymo programa: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Tai „Android“skirta „Petanque“rezultatų laikymo programa (kartais vadinama „Jeu de Boules“). Ši programa gali būti naudojama tokia, kokia yra, ir yra visiškai funkcionali. Arba jį galima naudoti kartu su „Petanque Matrix“ekranu [atskiros instrukcijos]. Ši projekto dalis yra paprasta, nes nereikia jokios techninės įrangos, tik nemokama programinė įranga.
Prekės
- „Android“suderinamas telefonas (pageidautina)
- Įrenginys, turintis prieigą prie interneto naršyklės, pageidautina kompiuteris su pele kodavimui ir projektavimui
- Paskyra su „MIT App Inventor“(nemokama)
- Paprastas piešimo paketas, pvz. „Pixlr“arba „Gimp“(viskas nemokama)
- Piktogramų išteklių svetainė, pvz. Medžiagos vartotojo sąsajos piktogramos arba „Material.io“(visos nemokamos)
Programinė įranga ir šaltinio kodas:
Šio puslapio apačioje rasite nuorodą į „Actual Petanque“programą. Čia taip pat galite rasti nuorodą į visą šaltinio kodą (atsiprašau už tai, bet „Instructables“neleidžia man įkelti.aia failo …).
1 veiksmas: programos anatomija ir naršymas
Programos dizainas ir naršymas yra gana paprasti. Iš viso yra 4 ekranai:
- Pagrindinis ekranas Nr. 1 (kuriame daugiausiai laiko praleidžiame išlaikydami rezultatą)
- 2 rungtynių ekranas (kuriame rasite visų sužaistų rungtynių ir rezultatų sąrašą)
- 3 nustatymų ekranas (programos nustatymai, administracinės užduotys, derinimas ir kt.)
- Apie ekraną Nr. 0 (apie, logotipą ir kur gauti kūrimo instrukcijas, pvz., ŠĮ tinklalapį)
Ekranų išdėstymas ir mygtukų išdėstymas buvo optimizuoti 1 rankai ir 1 pirštui (nykščiui). Apatiniame naršymo meniu esantys mygtukai nukelia į dabartinio ekrano dešinėje arba kairėje esančius ekranus. Taigi mygtukas 0 atveria „Apie“ekraną #0. Mygtukas #1 grąžina jus į pagrindinį ekraną #1 ir tt, usw.
Aišku? Negi tęskime…
2 žingsnis: duomenų (bazės) projektavimas
Dabar, prieš kurdami pirmąjį ekraną, mums reikia vietos, kurioje būtų saugomi visi duomenys, kuriuos naudos ši programa. Tam naudosime paprasčiausią „MIT App Inventor“siūlomą formą: „TinyDB“. Tai gana ribota, nes joje gali būti saugoma tik rakto/vertės pora, tačiau šiek tiek padedant ir atliekant keletą gudrybių galime tai padaryti viską, ko norime.
Mes išsaugosime dviejų tipų vertes:
- Išsaugosime 10 paprastų raktų/verčių visos programos reikšmių (kaip parodyta aukščiau esančioje funkcijoje „CreateIgnoreList“).
- Ir sudėtingesnis raktas/vertė, kurioje visi baigti žaidimų duomenys saugomi vienoje eilutėje, naudojant „CurrentMatch“raktą/reikšmę, veikiančią kaip pagrindinis raktas * (kaip parodyta aukščiau esančioje „SaveScore“funkcijoje). Šie vienos raktų/verčių poros laukai yra atskirti ne vizualiai valdomu simboliu „\ t“. Šis valdymo simbolis leis mums rungtynių ekrane Nr. 2 gauti visas reikšmes į atskirus komponentus ir jas rodyti bei rūšiuoti. Bet daugiau apie tai skiltyje 2 ekranas (rungtynės).
* Daugiau informacijos apie tai, kaip sukurti „PrimaryKey“, skirtą „TinyDb“programoje „AppInventor“„YouTube“.
3 veiksmas: 1 ekranas (pagrindinis)
Tai yra mūsų „darbinio žirgo“ekranas, kuriame didžiąją laiko dalį praleisime kaip programos vartotojas. Tai taip pat yra mūsų „MIT App Inventor“programos pradžios taškas.
Kaip matote iš aukščiau esančio (1 paveikslėlis), nors ekranas yra paprastas sąrankoje, yra gana paslėptas interaktyvumas, klaidų tvarkymas, slinkimas, padalintas ekranas, plaukiojantis meniu, braukiami gestai, apsauga nuo klaidų, klaidingų įvesties ir net atkūrimo nuo avarijų. Dėl visų šių funkcijų žiūrėkite išsamų kiekvieno ekrano šaltinio kodą. Taigi, ką jūs galite padaryti čia:
- Paspauskite „1 komanda“ir gausite pranešimą, kuriame galėsite pakeisti „1 komandos“pavadinimą. Kai tai bus pakeista, „1 komanda“bus pakeista į jūsų pasirinktą pavadinimą. Taip pat šis pavadinimas bus naudojamas jūsų žaidimo ir rungtynių rezultatams atspindėti (kituose ekranuose).
- „1 komandos rezultatas“ir „2 komandos balas“keičiasi atsižvelgiant į kiekvienos komandos apačioje paspaustus mygtukus „+“ir „-“. Jei rezultatas yra 0 ir paspaudžiamas „-“, pasigirsta garso ir vaizdo signalas, tačiau rezultatas lieka 0 (žinoma).
- Jei „rezultatas“pasiekia 13, atsitinka keletas dalykų: pateikiamas vizualinis signalas, pranešimų langai rodo rezultatus (2 paveikslas) ir suteikia galimybę pradėti naują žaidimą arba naujas rungtynes (ir, žinoma, naujas žaidimas). Tačiau jei pasirinkote ne klasikinį „Petanque“tašką, bet 2 taškų skirtumą (kurį galite pasirinkti nustatymų ekrane Nr. 3), priklausomai nuo skirtumo tarp dviejų komandų, vienas bus paskelbtas nugalėtoju (kaip parodyta 3 paveiksle)).
- „Rezultatas“dabartinėse „rungtynėse“rodomas ekrano centre tarp „1 komandos“ir „2 komandos“taškų. Ir tai bus tęsiama, kol bus pradėtos naujos „rungtynės“.
- Jei norite pereiti į kitus ekranus, taip pat galite „perbraukti į kairę“, kad būtų rodomas ekranas „Apie“, arba „braukite į dešinę“, kad būtų rodomas 2 rungtynių ekranas.
Galiausiai apačioje yra naršymo meniu juosta. Tai visada yra absoliučioje ekrano apačioje, nesvarbu, koks ekrano dydis. Net jei naudojama „Android“padalinto ekrano funkcija. Apatiniame naršymo meniu yra 3 mygtukai:
- Apačioje kairėje: „?“mygtukas eis į kairę ir vėl parodys pradinį paleidimą Apie ekraną (#0).
- Apatinis centras: iš naujo nustatymo mygtukas (atrodo kaip „@“su rodykle) leis bet kuriuo žaidimo metu pradėti naują žaidimą arba naujas rungtynes, tiesiog paspauskite apatinį vidurinį „Reset“mygtuką. Taip pat bus rodomas pranešimų langas, kuriame bus paprašyta pradėti naują žaidimą arba naujas rungtynes.
- Apačioje dešinėje: mygtukas „->“eis į dešinę ir parodys visų rungtynių ekrano apžvalgą (#2).
4 veiksmas: 2 ekranas (atitiktys)
Nors vizualinis makiažas yra labai paprastas, šis ekranas turi įdomesnį kodą nei kiti ekranai. Tačiau prieš eidami į tai pažiūrėkime, ką jis daro ekrane:
Po etiketėmis „1 komanda“ir „2 komanda“yra visų rungtynių ir jų atitinkamų balų sąrašas. Tai yra surūšiuotas sąrašas, kurio viršuje yra „paskutinės sužaistos rungtynės“, o apačioje - „seniausiai sužaistos rungtynės“.
Viduryje, tarp „1 komandos“ir „2 komandos“, yra mygtukas, kuris gali būti naudojamas rūšiuoti rungtynių sąrašą didėjančia arba mažėjančia tvarka. Piktograma keisis priklausomai nuo pasirinktos rūšiavimo krypties.
Norėdami pereiti į kitus ekranus, taip pat galite „braukite kairėn“, kad pamatytumėte pagrindinį ekraną #1, arba „braukite dešinėn“, kad būtų rodomas nustatymų ekranas #3.
Galiausiai apačioje yra naršymo meniu juosta. Tai visada yra absoliučioje ekrano apačioje, nesvarbu, koks ekrano dydis. Net jei naudojama „Android“padalinto ekrano funkcija (kaip parodyta 2 paveiksle). Apatiniame naršymo meniu yra 3 mygtukai:
- Apačioje kairėje: „?“mygtukas eis į kairę ir vėl parodys pradinį paleidimą Apie ekraną (#0).
- Apatinis centras: iš naujo nustatymo mygtukas (atrodo kaip „@“su rodykle) leis bet kuriuo žaidimo metu pradėti naują žaidimą arba naujas rungtynes, tiesiog paspauskite apatinį vidurinį „Reset“mygtuką. Taip pat bus rodomas pranešimų langas, kuriame bus paprašyta pradėti naują žaidimą arba naujas rungtynes.
- Apačioje dešinėje: mygtukas „->“eis į dešinę ir parodys visų rungtynių ekrano apžvalgą (#2).
Atitikimų sąrašo centravimas ekrane:
Norėjau parodyti atitikmenų sąrašą, kurio centre yra ekranas, o skyrius „-“yra centre. Dabar, kadangi komandos laimėtų žaidimų skaičius gali būti 1 ar daugiau skaitmenų, o tikrasis kiekvienos komandos pavadinimas gali būti skirtingo dydžio, negalime to tiesiog įtraukti į 1 sąrašą. Viskas atrodytų maždaug taip:
1 komanda 0 - 1 2 komanda
Foo 1 - 42 FooBar
Taigi skirstytuvo „-“etiketė turi būti centre. „1 komandos pavadinimas“ir „1 komandos rezultatas“dešinėje sulygiuoti kairėje nuo „-“skirstytuvo. „2 komandos rezultatas“ir „2 komandos pavadinimas“kairėje sulygiuoti dešinėje nuo „-“dalytuvo. Taigi mes baigiame taip:
"Komanda 1 0" "-" "1 komanda 2" "Foo 1" "-" "42 FooBar"
Ir kadangi aš nežinau, kiek laiko truks mūsų rungtynių sąrašas, visus „1 komandos pavadinimus“ir „1 komandos balus“sudėjau į tą pačią HTML formato etiketę ir po kiekvienų rungtynių įterpiu a ir įdedu kitą į „NewLine“.
Paruoškite daiktus rūšiavimui:
Kaip minėta duomenų (bazės) projektavimo etape, galiu išsaugoti tik vieną reikšmę. Taigi išsaugojau „1 komandos pavadinimo“, „1 komandos balo“, „2 komandos balo“ir „2 komandos pavadinimo“reikšmes, atskirtas ne vizualiai valdomu simboliu „\ t“. Dabar pirmiausia turiu juos pašalinti iš duomenų bazės (kaip parodyta 3 paveiksle).
Kodo fragmentas rodo, kad pirmiausia patikriname, ar nustatyta derinimo vėliava (tai daroma kiekviename šios programos ekrane. Toliau sukuriamas raktų (-ų/reikšmių porų) sąrašas, kurių turime nepaisyti eidami per duomenų bazę. Mus domina tik „Atitikties“duomenys, nieko daugiau. Tada pereiname prie duomenų bazės, ignoruodami visus ignoruojamo sąrašo raktus ir sukuriame naują sąrašą su 2 reikšmėmis:
- „PrimaryKey“(atminkite, kad tai yra skaičius, nurodantis rungtynių numerį, pradedant nuo 1 rungtynių)
- Eilutė, kurioje yra „1 komandos pavadinimas“, „1 komandos rezultatas“, „2 komandos rezultatas“ir „2 komandos pavadinimas“reikšmės
Tada pereiname per sąrašą ir sukuriame naują sąrašų sąrašą, kuriame atskiri laukai yra suskirstyti į atskirus elementus (kaip parodyta 4 paveiksle):
DataToSort -> Sąrašo indeksas 1 -> Sąrašo indeksas 1 (PK numeris)
-> Sąrašo rodyklė 2 (1 komandos pavadinimas) -> Sąrašo indeksas 3 (Komandos balas 1) -> Sąrašo indeksas 4 (Komandos balas 2) -> Sąrašo indeksas 5 (2 komandos pavadinimas) -> Sąrašo indeksas 2 -> Sąrašo indeksas 1 (PK numeris) -> Sąrašo indeksas 2 (1 komandos pavadinimas) ->… ->…
Po to parodome derinimo informaciją, jei derinimo vėliava yra tiesa. Ir dabar pagaliau galime surūšiuoti savo (sąrašų) sąrašą.
„BubbleSort“* sąrašų sąrašas:
Paveikslėlyje Nr. 5 parodytas visas „BubbleSort“* sąrašų sąrašas. Šis algoritmas, žinoma, gali būti naudojamas bet kokio dydžio sąrašų sąrašui, nesvarbu, kiek rodyklių yra.
* Daugiau informacijos apie „BubbleSort“algoritmo paprastumą „YouTube“.
5 veiksmas: 3 ekranas (nustatymai)
Šis ekranas atrodo labai užimtas ir turi daug vizualinio dizaino elementų. Bet galų gale yra tik 5 perjungimo jungikliai:
- „Fredo vertinimas“: jei įjungta „Įjungta“, jis keičia taškų vertinimo elgseną ir nustato nugalėtoją, remdamasis 2 taškų skirtumu 13, o ne tik pirmuoju, kuris pasiekė 13.
- „Bluetooth“poravimas: (kai įjungta), jei įjungta „On“(įjungta), leidžia susieti šią programą su išoriniu „Petanque“ekranu.
- „Iš naujo nustatyti rungtynes“: jei įjungta „Įjungta“, visos rungtynės bus iš naujo nustatytos/ištrintos ir prasidės 1 rungtynėmis.
- „Iš naujo nustatyti DB“: jei įjungta „Įjungta“, visos rungtynės ir visi kiti programos nustatymai bus ištrinti/atkurti į pradinius nustatymus, įskaitant dabartinį rezultatą, rungtynes, komandų pavadinimus, derinimo nustatymus, rūšiavimo tvarką, „Bluetooth“nustatymus (kai įjungta) ir tt.
- „Derinimas“: jei įjungta „Įjungta“, bus rodoma derinimo informacija visoje programoje tarp laužtinių skliaustų „“. Tokie dalykai kaip „Bendras įrašų skaičius, bendras kintamųjų skaičius, dabartinės rungtynių numeris, žaidimo PK numeris ir kt.
Galiausiai apačioje yra naršymo meniu juosta. Jis visada yra absoliučioje ekrano apačioje, nesvarbu, koks ekrano dydis. Net jei naudojama „Android“padalinto ekrano funkcija arba ekranas yra tik aukštesnis nei ekranas gali būti rodomas dėl ekrane esančių elementų skaičiaus. Tokiu atveju visada galite slinkti braukdami aukštyn ir žemyn. Šiame apatiniame naršymo meniu yra tik 1 mygtukas:
Apačioje kairėje: mygtukas „<-“eis į kairę ir parodys pradinį visų rungtynių ekrano apžvalgą (#2)
6 veiksmas: 0 ekranas (apie)
Paskutinis ekranas. Tik informacija, nieko daugiau.
Šis ekranas rodomas pirmą kartą paleidus šią programą. Po to jis daugiau nebus rodomas, nebent pasirinksite tai padaryti paspausdami „?“mygtuką pagrindiniame ekrane #1.
Apatinėje naršymo meniu juostoje yra tik 1 mygtukas ir tai sugrąžina jus į pagrindinį ekraną #1.
7 veiksmas: programinė įranga ir (arba) šaltinio kodas
Pagaliau.
Programą galite atsisiųsti iš šios „Google“disko vietos.
Kodą galite atsisiųsti iš „Pentaque“programos „MIT App Inventor Gallery“įrašo (1 paveikslas). Tai leis jums išsaugoti projektą savo „MIT App Inventor“paskyroje (galite jį pervardyti į ką tik norite). Iš ten galite pamatyti visą kodą „Blocks“redaktoriuje, „Designer“redaktoriaus ekranus ir visas laikmenas bei išteklius, naudojamus šiam projektui.
Taip pat galite atsisiųsti šaltinio kodą (.aia failą, kuris iš tikrųjų yra.zip failas) iš šios „Google“disko vietos.
Rekomenduojamas:
IoT Helovino moliūgas - Valdykite šviesos diodus naudodami „Arduino MKR1000“ir „Blynk“programą ???: 4 žingsniai (su paveikslėliais)
IoT Helovino moliūgas | Valdykite šviesos diodus naudodami „Arduino MKR1000“ir „Blynk“programą ???: Sveiki visi! Prieš kelias savaites buvo Helovinas ir, laikydamasi tradicijos, iškirpiau gražų moliūgą savo balkonui. Tačiau turėdama moliūgą lauke supratau, kad gana erzina, kad kiekvieną vakarą tenka išeiti uždegti žvakės. Ir aš
Stiklo akmens LED vamzdelis („WiFi“valdomas per išmaniojo telefono programą): 6 žingsniai (su paveikslėliais)
Stiklo akmens LED vamzdelis („WiFi“valdomas per išmaniojo telefono programą): Sveiki, kolegos kūrėjai! Šioje pamokoje aš jums parodysiu, kaip sukurti „WiFi“valdomą LED vamzdį, užpildytą stiklo akmenimis, kad būtų malonus difuzijos efektas. Šviesos diodai yra adresuojami atskirai, todėl galimi gražūs efektai
„Pasidaryk pats“GPS sekiklis --- „Python“programa: 5 žingsniai (su paveikslėliais)
Pasidaryk pats „GPS Tracker“--- „Python“programa: Prieš dvi savaites dalyvavau dviračių renginyje. Baigęs norėjau patikrinti maršrutą ir greitį, kuriuo tuo metu važiavau. Deja, to pasiekti nepavyko. Dabar naudoju ESP32 GPS sekikliui sukurti ir imsiuosi jo įrašyti savo dviračių maršrutą
Cezario šifravimo programa „Python“: 4 žingsniai
Cezario šifravimo programa „Python“: „Cezario šiferis“yra senas ir plačiai naudojamas šifras, kurį lengva užšifruoti ir iššifruoti. Jis veikia perkeliant abėcėlės raides ir sukuriant visiškai naują abėcėlę (ABCDEF galėtų perkelti daugiau nei 4 raides ir tapti EFGHIJ). Cezaris C
Palaikymo sistemos vežimėlio svirties vairuotojas: 16 žingsnių
Palaikymo sistemos neįgaliųjų vežimėlių svirties vairuotojas: Įprastas vežimėlis turi daug trūkumų tiems, kurie turi silpnumą viršutinėse galūnėse arba turi ribotus išteklius. Mūsų komandai buvo pavesta suprojektuoti neįgaliųjų vežimėlių svirties vairuotoją vežimėliams iš nemokamos neįgaliųjų vežimėlių misijos, kuri leistų vartotojams eiti toliau