Video: Ruby On Rails, by Gabriel Guimaraes 2024
Du kan lage en metode for å tegne en trekant i Ruby. Først tenk på hvordan dette kan fungere. Triangelen du trekker vil se ut som en ensidig trekant, hvor to sider vil være i samme størrelse og basen vil se litt mindre ut.
I motsetning til rektangelet, hvor hver rad er enkel å formatere, må du trekke hver rad for å se forskjellen. Den første raden vil være toppen av trekanten (den spisse ende). Den siste raden vil være bunnen av trekanten og vil være bredden som brukeren spesifiserer.
Se om du kan finne ut hva koden gjør her.
-
Start en ny metode kalt trekant:
# Over her er slutten av rektangelmetoden def trekant (høyde, outside_letter, inside_letter) # Koden for trekanten vil gå her slutten
Merk at du vil være bruker høydevariabelen for både høyden og bredden på innsiden av denne metoden.
-
Lag en loop som gjentar høydetider. Sett denne koden inne i trekantmetoden:
en. opp til (høyde) gjør | rad | # Tegningskode går her i neste trinns ende
-
For en trekant må du tegne hvite plass (tomme områder) for hver rad som ikke tar opp hele bredden du tegner. Når du tegner hver rad, tegner du mindre hvite plass. Legg denne linjen som den første linjen i sløyfen din:
print "* (høyde rad)
Matematikken her beregner et mindre antall mellomrom etter hvert som nummeret på rad blir større (husk, du teller rad 1 øverst og rad vil være lik høyden nederst).
-
Deretter må du håndtere saken for første rad, som er toppen av trekant:
hvis rad == 1 setter "# {outside_letter * 2}" slutten
Trinn 4s kode går straks etter trinn 3.
-
Håndter siste rad tilfelle ved å legge til en elsif-tilstand.
hvis rad == 1 setter "# {outside_letter * 2}" elsif rad == høyde legger outside_letter * høyde * 2 ende
-
Legg nå koden for det litt mer kompliserte tilfellet med å håndtere alle mellomrommene. For denne siste delen av tilstanden, vil du bruke et annet klausul. Se hele tilstanden her:
hvis rad == 1 setter "# {outside_letter * 2}" elsif rad == høyde setter outside_letter * høyde * 2 andre midten = inside_letter * (rad - 2) skriv ut "# {outside_letter} # {middle} # {ins ide_letter} "puts" # {inside_letter} # {middle} # {outside_letter} "slutten
Koden ser litt rart ut. Hvorfor er det både en utskrift og en uttalelse?
-
Det er på tide å vise trekanten. Legg til en trekantsmetallsamtale under nederkanten av kodefilen, under rektangelmetodeanropet:
trekant (høyde, outside_letter, inside_letter)
-
Lagre programfilen, bytt til terminalen og kjøre programmet.Du bør se noe slikt:
Eksempelkoden som brukes, inneholder en rektangelmetode før trekantmetoden, slik at du får se et rektangel balansert på en trekant.