Hjem Personlig finansiering Hvordan man laver kode i Ruby for at tegne et rektangel - dummier

Hvordan man laver kode i Ruby for at tegne et rektangel - dummier

Video: Writing 2D Games in C using SDL by Thomas Lively 2024

Video: Writing 2D Games in C using SDL by Thomas Lively 2024
Anonim

I Ruby kan du oprette et rektangel på skærmen ved hjælp af ASCII-kunst. Hvis du skulle tegne et rektangel på papir, der var udfyldt med et mønster, hvad ville du have brug for? For det første kan du trække omridset af rektanglet, og så kan du farve indersiden.

Men til dit program i Ruby vil du i stedet tegne figuren fra toppen til bunden, en linje ad gangen. Hvordan vil du beskrive hvordan man gør det? Som dette:

  1. Tegn toppen af ​​rektanglet ved hjælp af det udvendige (eller kant) mønster for første linie.

  2. For hver af de linjer, der udgør siderne og indersiden af ​​rektanglet, tegner du venstre kant, hele midten og derefter højre kant.

    Gentag dette trin, indtil du skal trække bunden af ​​rektanglet.

  3. Tegn bunden af ​​rektanglet nøjagtigt som du trak den øverste kant.

Dette er en algoritme til tegning af rektangler linje for linje fra top til bund.

En algoritme er blot en sekvens af trin, du følger for at udføre nogle opgaver eller beregninger. I dette tilfælde har du skrevet sekvensen for at tegne et rektangel ved at scanne på tværs fra top til bund, linje for linje.

Ruby-versionen af ​​din algoritme læser meget som den engelske version:

  1. Opsæt to variabler, der gør det nemmere at se, hvad der sker. Du bruger brugerens valg til formstørrelse som både højden og bredden af ​​den figur, du skal tegne:

    height = shape_size width = shape_size
    
  2. Du skal tegne rektangellinjen efter linje, så Opret en loop, der gentager din kode for hver række (så det betyder, at du har brug for din tegningskode for at køre højde gange):

    1. op til (højde) gøre | række | # Tegningskode går her ende
    

    Loops er en kraftfuld måde at gentage kode nogle gange (eller endog et uendeligt antal gange)! Ruby har flere måder at programmere en loop på. Optil-metoden er en nem måde at tælle fra et startnummer til et endelig nummer. For rektanglet vil du tælle starter ved 1 for første række og sluttelige tæller, når du når tallet repræsenteret af højden.

  3. Nu, for algoritmen skal fungere, skal du kontrollere, hvilken række du vil have programmet til at udskrive. Du har tre tilfælde: den første række, de midterste rækker og den sidste række. Tilføj i tilfældet for den første række i midten af ​​din loop:

    Hvis række == 1 sætter outside_letter * bredde ende
    

    Hvis rækkevariabelen svarer til en, bruger programmet sæt til at udskrive dit valg for udvendige_trykker et antal gange svarende til bredden.

    Du bruger, hvis du vil se, om en tilstand er sand eller falsk.Symbolet == i Ruby stiller spørgsmålet: "Er ting på venstre side lig med sagen på højre side af == symbolet? "Hvis det er, vil Ruby køre linjerne kode indtil en anden betingelse eller et slutord.

  4. Tilføj derefter en check for at se om dette er den sidste række. Elsif-søgeordet starter en anden tilstandstest, og du placerer den lige før det forrige slutord. Det er ikke en stavefejl forresten. Ruby har bare en sjov måde at sige "ellers hvis"! Det hele ser sådan ud:

    hvis række == 1 sætter outside_letter * bredde elsif række == højde sætter outside_letter * width end
    
  5. Endelig skal du håndtere displayet af alle rækkerne i midten, så Tilføj en sidste betingelse ved hjælp af Rubys andet søgeord. Denne kode går lige før slutordet. Her er hele Rubys blok:

    Hvis række == 1 sætter outside_letter * Bredde elsif række == Højde sætter outside_letter * Bredde andet midt = Inside_letter * (Bredde - 2) sætter "# {outside_letter} # {middle} # { outside_letter} "end
    

    Mellemsagen ser kompliceret ud. Hvad laver det? Nå, ifølge din algoritme skal den tegne venstre og højre kanter og alt i midten.

    Mellemvariablen beregner strengen, der repræsenterer midten af ​​rektanglet. Hvis du fjerner en til venstre kantkarakter og en til højre kantkarakter, er den endelige bredde på midten den fulde bredde minus to tegn.

    Den endelige sætter erklæring bruger strengbehandling til at oprette den kombinerede række.

  6. Kør dit program og se, om du har fejl. Får du noget som det her er vist? Hvis du ser en fejl, der siger noget som sammenligning af Fixnum med String mislykkedes, betyder det, at Ruby havde svært ved at bruge værdien inde i form_size som et tal.

    Ruby er ikke sikker på, hvordan man bruger strenge til tal.

    Hvorfor er det et problem, hvis du har indtastet et nummer? Godt, læser i din indgang, men det læser alle de tegn, du skriver som en streng. Du er nødt til at hjælpe Ruby konvertere strengen til et nummer.

  7. Skift de to linjer, hvor du indstiller højde- og breddevariablerne til to_i-metoden, hvilket betyder at konvertere denne variables indhold til et helt tal (tal):

    height = shape_size. to_i width = shape_size. to_i
    

    Kør din kode igen. Succes!

    Er dette verdens mest spændende rektangel?
Hvordan man laver kode i Ruby for at tegne et rektangel - dummier

Valg af editor

Hvad er Array Formulas i Excel 2013? - dummies

Hvad er Array Formulas i Excel 2013? - dummies

En matrixformel i Excel 2013 (og andre regneark) er en speciel formel, der opererer på en række værdier. Hvis et celleområde leverer dette interval (som det ofte er tilfældet), betegnes det som et arrayinterval. Hvis denne rækkevidde leveres af en liste over numeriske værdier, er de kendt som ...

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Excel 2016b har en række funktioner til Statistisk analyse. Funktionsbiblioteket på fanen Formler viser alle kategorier af Excel-regnearkfunktioner. Trinene i at bruge et regneark funktion er Skriv dine data i et datarray og vælg en celle for resultatet. Vælg den relevante formelskategori og vælg en ...

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Microsoft har lavet nogle få ændringer i Excel's Ribbon (fanebåndet øverst), hvilket afspejler ændringer i Excel. Den mest oplagte tilføjelse er pæren øverst til højre for tilføjelser. Det er mærket "Fortæl mig hvad du vil gøre. "Dette kaldes Tell Me-boksen, og det er nyt ...

Valg af editor

Sådan postes på en vens Facebook-tidslinje - dummies

Sådan postes på en vens Facebook-tidslinje - dummies

Dit nyhedsfeed trækker indlæg, som dine Facebook-venner lav på et sted, så du kan læse dem alle på én gang. Men nogle gange vil du læse alt om kun en person. Heldigvis er alle deres indlæg blevet samlet på deres tidslinjer. Tidslinjen er ligesom en nyhedsfeed alt om en person. ...

Sådan sender du en Facebook-begivenhed - dummies

Sådan sender du en Facebook-begivenhed - dummies

Den første måde du sikkert finder ud af om Facebook begivenheden er gennem en anmeldelse. Når en ven inviterer dig til en begivenhed, vises et lille rødt flag over meddelelsesikonet i den store blå bar øverst. Klik på ikonet for at åbne din underretningsmenu; Klik derefter på den invitation, der skal tages ...

Hvordan man kan se de billeder du er på Facebook - dummies

Hvordan man kan se de billeder du er på Facebook - dummies

Hvis du har meget af Facebook venner, du er sandsynligvis i et ton af fotos. Du kan se de billeder, du er i, uden at skulle gå hele Facebook, så længe du er mærket i dem. Måske har du tagget dem selv, eller dine venner har måske tagget dig. Det første sted du ...

Valg af editor

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Hvis du 'er interesseret i fotografering, du finder ingen bedre enhed end en digital spejlreflekskamera (eller dSLR). Uanset om du er amatør eller professionel, kan du finde en dSLR, der passer til dine behov. Du kan virkelig ikke slå kombinationen af ​​magt, fleksibilitet, vækstpotentiale og "accessorize-ability" af en dSLR. Med oplysningerne i denne ...

Hvordan man tager gebyr som bryllupsfotograf - dummier

Hvordan man tager gebyr som bryllupsfotograf - dummier

Som bryllupsfotograf, dit job er at hjælpe De formelle portrætter flyder så jævnt som muligt. Du kan lægge meget af grunden i månederne før den faktiske bryllupsdato som du kommunikerer med parret. Hvis du gør dine lektier, kan du fokusere på at holde portræt sessioner organiseret og opretholde kontrol ...