Hvordan lage et puslespill Printing Application

Hvordan lage et puslespill Printing Application


Et puslespill utskriftsprogram er et lite programmeringsprosjekt som gir et rimelig utfordrende problem å avansere generell programmeringskunnskaper eller lære en ny søknad utviklingsmiljø. Sluttresultatet av dine programmeringsinnsats er et verktøy som kan produsere trykt puslespill fra egne bilder. Trykte puslespill laget av favorittbilder eller tegninger er gode erstatninger for vanlige gratulasjonskort.

Bruksanvisning

initial~~POS=TRUNC

1 Implementere den viktigste funksjonen som kjøres når du starter programmet. Hovedfunksjonen utfører trinnene høyt nivå som kreves for å lage en trykt puslespill.

2 Skriv bildevalg funksjonen. De fleste programmeringsmiljøer gir et høyt nivå funksjon som lanserer en dialogboks for å bla filsystemet og velge et grafisk bilde. Vurdere å sette et filter som begrenser mulige valg til kjente filtyper som jpeg, tiff, png og gif. Dette hindrer feil på senere stadier.

3 Bruk passende grafikk bibliotekfunksjoner for å åpne den valgte filen i minnet som en bit-kartlagt bilde. Et forsøk på å laste inn en fil som ikke er en gyldig grafisk fil bør kaste en feil og avslutte programmet.

Beregn Pieces

4 Bruk funksjoner i grafisk bibliotek for å bestemme høyde og bredde (i piksler) for det valgte bildet. En bitmap beskriver en 2-D bilde i form av et rutenett som holder fargeverdien for hver piksel. Antall piksler i risten er referert til som oppløsningen i bildet. For eksempel, et bilde med 800 x 600 oppløsning har 800 piksler på sin lengste sidene og 600 piksler på de korteste sidene.

5 Sett en variabel til antall brikker i den endelige puslespillet. Dette nummeret vil bli brukt til å beregne plassering av kuttene. Det faktiske antallet brikker vil bli bestemt av matematiske formler basert på antall du har oppgitt.

6 Beregn antall puslespill rader. Start ved å dividere høyde med bredden og multiplisere resultatet med antall stykker. Ta kvadratroten av beregning og runde det av til nærmeste hele tall å komme frem til rad verdi. For en 800 x 400 bilde til å bli kuttet i stykker 250, er antallet rader kvadratroten av 500 (22,36) avrundet til 22.

7 Beregn antall kolonner spillet ved å dividere antall brikker med antall rader og avrunding resultatet til et helt tall. For 800 ved 400 bilde, er søylene 250 dividert med 22 (11,36) avrundet til 11. Dette betyr at det faktiske antall brikker er 242 (22 ganger, 11).

8 Lag en tabell med hjørnepunktene av brikkene uttrykt som pixel steder. Den pseudo-kode for denne prosessen er:

for r = 0 til rader

y = (r * height) / rows

for c = 0 til kolonner

x = (c * bredde) / kolonner

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

Opprett Jigsaw Edges

9 Lag to tabeller for å holde stykke kanter, en liste over de horisontale kantene og andre vertikale. Index tabellene med rad og kolonne posisjon av stykket. Den laveste rad- og kolonneindekser inneholde kantene i forbindelse med stykket i nedre venstre hjørne av bildet. De høyeste verdiene for både rad og kolonne tilsvarer stykket i øvre høyre hjørne av bildet.

10 Gjenta for hver del, og legger en kant til hvert av kantlistene. Hver kant består av de to endepunktene i pikselrommet. Angi plasseringen av punktet i nedre venstre hjørne av stykket p0 og flytte mot klokken for å angi plasseringen av de øvrige hjørnene som P1, P2 og P3. Tilsett kant fra p3 til p2 til listen over vannrette kanter og kanten fra p1 til p2 til den vertikale listen. Ikke legg ytterkantene til listene. Denne prosessen sikrer at hver interne kant er oppført bare én gang.

11 Gjenta for hver kant, forbi endepunktene til en knapp funksjon. Endepunktene danner to av de fem kontrollpunkter som bestemmer knott eller hull. De andre tre punktene markerer toppen av knotten og de to punktene danner sin hals. Bruk en kurve funksjon i rammeverket til applikasjonen matematikk bibliotek for å skape den knotten og tilsvarende hull. Den generelle ideen er at på et minimum, må du angi plasseringen av knott i forhold til bildet pixel rutenettet, men kan hardwire mange av kontrollpunktene som skaper en kurve som ligner det klassiske pusle hals med knott. Hvis du vil at knottene til å være forskjellige fra hverandre, bruk en tilfeldig funksjon for å velge retning av knotten og endre innganger til kurven generasjon prosessen.

12 Lag en tegning banen fra de beregnede kantene og bruke grafikkfunksjoner til å trekke over basen bildet for å danne brikkene.

1. 3 Legg en utskriftsfunksjonen til programmet for å tillate brukeren å skrive ut puslespill bilde.

Hint

  • Disse instruksjonene dekker den grunnleggende prosessen med å lage et klassisk puslespill brikke. Se Open Source sphaero prosjekt for å lære om andre varianter. Programmet støtter enklere alternativer uten knotter og hull, rektangulære stykke former og avgrensninger av det klassiske stykket ved å innføre tilfeldig beregninger.