FANDOM


Ataskaitos Redaguoti

Mūsų darbų ataskaitas galite rasti čia


Mūsų komanda LAMP: Redaguoti

Liveta Radišauskaitė, Paulius Kazlauskas, Artūras Kurbedzis, Martynas Kiškys, IFIN-6/3

Kursime programą, sprendžiančią skaičių arba paveiksliukų dėliones. 


Programos aprašymas Redaguoti

Number
Number2
·      

Aprašymas: mūsų programos koncepcija remiasi pateiktos atsitiktinai sugeneruotos skaičių dėlionės sprendimu. Dėlionės sprendimas priklausys nuo A* algoritmo, kuris bandys kuo optimaliau ir logiškiau išspręsti atsitiktinę dėlionę. Dėlionę bus galima rinktis dviem formatais: 3x3 skaičių bei pasirnkto paveiksliuko variacija. Jeigu netekins pradinis sugeneruotos dėlionės variantas, grafinėje sąsajoje bus galimą pačiam ją pakoreguoti. Taip pat bus pasirinkimas pradėti dėlionės sprendimą, kuris bus vizualizuojamas realiu laiku ir vartotojas galės sekti visą sprendimo eigą.  

Programos planas Redaguoti

1. Užduoties analizėRedaguoti

Programai kurti naudosime C# kalbą ir Visual Studio programavimo aplinką.

Dėlionės programą nusprendėme kurti langelių formatu 3x3, kadangi tai atrodė ne tik optimaliausias, bet ir dažniausiai sutinkamas variantas. Dėlionę bus galima rinktis vieną iš dviejų: pirmoji yra skaičių, antroji – paveiksliuko. Paveiksliukas bus padalintas į 9 dalis ir kiekvienai jai priskirti skaičiai nuo 1 iki 8, o viena dalis išmetama, paliekant langelį tuščią.

Yra atvejų, kuriais šios dėlionės neįmanoma išspręsti. Tikrinimas vyksta taip:

·       Atsitiktinai išdėliotų skaitmenų sekoje, imamas iš eilės kiekvienas skaičius ir skaičiuojamas po to skaičiaus einančių mažesnių skaičių kiekis;

·       Visi kiekiai susumuojami;

·       Jeigu kiekių suma yra lyginė – dėlionė išsprendžiama, jeigu nelyginė – neišsprendžiama.

Pavyzdžiui:

Turime tokią skaičių seką: 5,2,8,4,1,7,3,6.
Untitled1

·       Už 5 mažesni skaitmenys: 2,4,1,3

·       Už 2 mažesni skaitmenys: 1

·       Už 8 mažesni skaitmenys: 4,1,7,3,6

·       Už 4 mažesni skaitmenys: 1,3

·       Už 1 mažesni skaitmenys: -

·  Už 7 mažesni skaitmenys: 3,6

·  Už 3 mažesni skaitmenys: -

·  Paskutinis narys už savęs einančių skaičių neturi.

Sumuojame kiekius: 4+1+5+2+0+2+0+0 =14

Skaičius 14 yra lyginis, todėl dėlionė – išsprendžiama.

Sprendimas bus ieškomas naudojant vieną iš dviejų metodų: „Manhattan distance“ arba „Misplaced tiles“. Pirmuoju atveju, atstumas randamas keliaujant lygiagrečiai X ir Y ašių, tai yra „kvadratais“. Kad būtų aiškiau, toliau yra pateiktas pavyzdys lyginant šį algoritmą su Euklido:

2





Untitled


Čia žalia linija tarp taškų – tiesinis  Euklido atstumas. Raudona – tipinis „Manhattan“ atsumas, o mėlyna ir geltona – alternatuvūs (ekvivalentūs) „Manhattan“ atstumai.


 2. Programos reikalavimaiRedaguoti

Funkciniai(turi atitikti pati PĮ):Redaguoti

  1.   Sugeneruoti atsitiktinį skaičių išdėstymą (nuo 1 iki 8) lentelėje, paliekant vieną langelį tuščią;
  2.   Leisti pasirinkti spręsti skaičių ar paveikslėlio dėlionę;
  3.   Automatiškai sumaišyti dėlionę arba leisti vartotojui ją sumaišyti savarankiškai;
  4.   Leisti pasirinkti euristinį sprendimo metodą („Manhattan distance“ arba „Misplaced tiles“);
  5.   Spręsti 3x3 dydžio dėlionę naudojantis A* algoritmu;
  6.   Leisti pasirinkti dėlionės sprendimo rodymo greitį;
  7.   Rodyti dėlionės sprendimą pažingsniui;

Nefunkciniai(sistemos savybės, kuriomis ji turi pasižymėti):Redaguoti

  1.   Programa turi veikti Windows 10 PC aplinkoje;
  2.   Vartotojo sąsaja turi būti intuityviai suvokiama;
  3.   Programa turi naudoti įprastus žymėjimus, kad vartotojai galėtų greitai išmokti ja naudotis;

TestavimasRedaguoti

Planas:

  1. Išbandyti ar programa generuoja atsitiktinių skaičių seką nuo 1 iki 8 paliekant vieną langelį tuščią;
  2. Patikrinti ar programa leidžia pasirinkti spręsti skaičių arba paveikslėlio dėlionę;
  3. Patikrinti ar programa mygtuko paspaudimu sugeneruoja naują seką ir ar vartotojas gali keisti tą seką tempdamas langelius;
  4. Išbandyti ar vartotojas gali pasirinkti euristinį sprendimo metodą;
  5. Testuoti ar programa korektiškai išsprendžia dėlionę;
  6. Testuoti ar pasirenkant programos sprendimo rodymo greitį, jis keičiasi;
  7. Testuoti ar dėlionė rodo sprendimą pažingsniui;
  8. Patikrinti kaip programa veikia Windows PC aplinkoje;

UML Panaudos atvejų diagrama
UML nauja1
Redaguoti