Sådan oprettes en puslespil Printing Application

January 17

Sådan oprettes en puslespil Printing Application


Et puslespil udskrivning ansøgning er en lille programmering projekt, der giver en rimelig udfordrende problem at fremme generel programmering færdigheder eller lære en ny ansøgning udviklingsmiljø. Slutresultatet af din programmering indsats er et værktøj, der kan producere trykt puslespil fra brugerdefinerede billeder. Trykte puslespil lavet af foretrukne billeder eller tegninger er gode erstatninger for konventionelle lykønskningskort.

Instruktioner

Initialiser

1 Gennemføre den vigtigste funktion, der kører, når du starter programmet. Den vigtigste funktion udfører trinnene højt niveau, der kræves for at gøre en trykt puslespil.

2 Skriv den billedvalg funktionen. De fleste application programming miljøer giver et højt niveau funktion, der lancerer en dialogboks til at surfe på filsystemet og vælge et grafisk billede. Overvej at angive et filter, der begrænser mulige valg til kendte filtyper såsom JPEG, TIFF, png og gif. Dette forhindrer fejl på senere tidspunkter.

3 Brug passende grafik biblioteksfunktioner at åbne den valgte fil i hukommelsen som en bit-kortlagt billede. Et forsøg på at indlæse en fil, der er ikke en gyldig grafisk fil skal kaste en fejl, og afslutte dit program.

Beregn Pieces

4 Brug funktioner i den grafiske biblioteket for at bestemme højden og bredden (i pixels) af det valgte billede. Et bitmap beskriver en 2-D billede i form af et gitter holder farven værdi for hver pixel. Antallet af pixels i nettet omtales som opløsningen af ​​billedet. For eksempel, et billede med 800 af 600 opløsning har 800 pixels på sine lange sider og 600 pixels på de korte sider.

5 Sæt en variabel til antallet af brikker i den endelige puslespil. Dette nummer skal anvendes ved beregning af placeringen af ​​nedskæringer. Det faktiske antal stykker vil blive bestemt af matematiske formler baseret på det nummer, du forudsat.

6 Beregne antallet af puslespil rækker. Start ved at dividere højden af ​​bredden og gange resultatet med antallet af stykker. Tag kvadratroden af ​​beregning og rundt om det til nærmeste hele tal at nå frem til rækken værdi. For en 800 x 400 billede, der skal skæres i 250 stykker, antallet af rækker er kvadratroden af ​​500 (22,36) afrundet til 22.

7 Beregne antallet af puslespil kolonner ved at dividere antallet af stykker med antallet af rækker og afrunding resultatet til et helt tal. For 800 af 400 billede, søjlerne er 250 divideret med 22 (11,36) afrundet til 11. Det betyder, at det faktiske antal stykker er 242 (22 gange 11).

8 Opret en tabel med de hjørnepunkter af puslespilsbrikker udtrykt som pixel steder. Pseudo-kode for denne proces er:

for r = 0 til rækker

y = (r * height) / rows

for c = 0 til cols

x = (C * bredde) / cols

punkter [c] [r] = Punkt (x, y)

Opret Jigsaw Edges

9 Opret to tabeller til at holde stykke kanter, en liste over de vandrette kanter og den anden lodret. Indeks tabellerne med rækken og kolonnen position af stykket. De laveste rækker og kolonner indeks indeholder kanterne er forbundet med det stykke i nederste venstre hjørne af billedet. De højeste værdier for både række og kolonne svarer til stykket i det øverste højre hjørne af billedet.

10 Gentage gennem hvert stykke, tilføjer en kant til hver af kantlister. Hver kant består af sine to endepunkter i pixel rummet. Angiv placering af punktet i nederste venstre hjørne af stykket p0 og flytte mod uret for at indstille placeringen af ​​de resterende hjørner som P1, P2 og P3. Tilføj kanten fra p3 til p2 til listen over vandrette kanter og kanten fra P1 til P2 til lodret liste. Tilsæt ikke yderkanterne til listerne. Denne proces sikrer, at hver af de indvendige kant kun medtages én gang.

11 Gentage gennem hver kant, der passerer dens endepunkter til en knop funktion. Slutpunkterne danner to af de fem kontrolpunkter, der bestemmer knoppen eller hul. De andre tre punkter markerer toppen af ​​knappen og de to punkter danner halsen. Brug en kurve funktion i programmet rammer er matematik bibliotek til at oprette knappen og tilsvarende hul. Den generelle idé er, at på et minimum, skal du angive placeringen af ​​knop med hensyn til billedet pixel nettet, men kan hardwire mange af de kontrolpunkter, der skaber en kurve, der ligner den klassiske puslespil hals med knop. Hvis du vil have dine drejeknapper til at være forskellige fra hinanden, skal du bruge en tilfældig funktion til at vælge retningen af ​​knappen og ændre input til kurven generation proces.

12 Opret en tegning sti fra de beregnede kanter og bruge grafik funktioner til at trække over bunden billedet for at danne puslespilsbrikker.

13 Tilføj et print funktion til programmet for at tillade brugeren at udskrive puslespillet billedet.

TIPS

  • Disse instruktioner dækker den grundlæggende proces med at skabe et klassisk brik. Se Open Source sphaero projekt at lære om andre variationer. Programmet understøtter enklere muligheder uden drejeknapper og huller, rektangulære stykke former og finpudsninger af den klassiske stykke ved at indføre tilfældighed beregninger.

relaterede artikler