Hem Personliga finanser Hur man skapar kod i Ruby för att rita en rektangel - dummies

Hur man skapar kod i Ruby för att rita en rektangel - dummies

Video: Perimeter and area: the basics | Perimeter, area, and volume | Geometry | Khan Academy 2024

Video: Perimeter and area: the basics | Perimeter, area, and volume | Geometry | Khan Academy 2024
Anonim

I Ruby kan du skapa en rektangel på skärmen med ASCII-konst. Om du skulle rita en rektangel på papper som fylldes i med ett mönster, vad skulle du behöva göra? Först kan du rita rektangelens kontur, och du kanske kan färga inuti.

Men för ditt program i Ruby vill du istället rita formen från topp till botten, en rad i taget. Hur skulle du beskriva hur man gör det? Gilla detta:

  1. Rita upp rektangeln med hjälp av mitten av utsidan (eller kant) för första raden.

  2. För varje linje som utgör sidorna och insidan av rektangeln ritar du vänster kant, hela mitten och sedan höger kant.

    Upprepa detta steg tills du behöver rita botten av rektangeln.

  3. Rita ned rektangens botten precis som du drog överkanten.

Detta är en algoritm för ritning av rektanglar linje för rad från topp till botten.

En algoritm är bara en följd av steg du följer för att utföra viss uppgift eller beräkning. I det här fallet har du skrivit ut sekvensen för att rita en rektangel genom att skanna över från topp till botten, linje för rad.

Ruby-versionen av din algoritm läser mycket som den engelska versionen:

  1. Ställ in två variabler som gör det lättare att se vad som händer. Du använder användarens val för formstorlek som både höjd och bredd på den figur du ska rita:

    height = shape_size width = shape_size
    
  2. Du kommer att rita rektangeln längs linjen, så skapa en slinga som kommer att upprepa din kod för varje rad (så det betyder att du behöver din ritningskod för att köra höjd gånger):

    1. upp till (höjd) gör | rad | # Ritningskoden går här slutet
    

    Loops är ett kraftfullt sätt att upprepa kod ett antal gånger (eller till och med ett oändligt antal gånger)! Ruby har flera sätt att programmera en slinga. Uppåtmetoden är ett enkelt sätt att räkna från ett startnummer till ett slutligt tal. För rektangeln vill du räkna med att börja med 1 för första raden och avsluta räkningen när du når numret som representeras av höjden.

  3. För att algoritmen ska kunna fungera måste du kolla vilken rad du vill att programmet ska skriva ut. Du har tre fall: den första raden, de mellersta raderna och den sista raden. Lägg till i fallet för den första raden i mitten av din slinga:

    Om rad == 1 sätter outside_letter * width end
    

    Om radvariabeln är lika med en, använder programmet satser för att skriva ut ditt val för det yttre_letter ett antal gånger lika med bredden.

    Du använder om uttalanden när du vill se om något villkor är sant eller felaktigt.Symbolen == i Ruby frågar frågan: "Är saken på vänster sida lika med saken på höger sida av == symbolen? "Om det är så kommer Ruby att köra linjerna kod upp till ett annat villkor eller ett slutord.

  4. Lägg sedan till en check för att se om det här är sista raden. Elsif-sökordet startar ett annat villkorstest, och du placerar det direkt före det tidigare slutordet. Det är inte ett stavfel, förresten. Ruby har bara ett roligt sätt att säga "annars om"! Hela saken ser så här ut:

    Om rad == 1 sätter outside_letter * Bredd elsif row == Höjd lägger outside_letter * Bredd slutet
    
  5. Slutligen måste du hantera displayen av alla rader i mitten, så lägg till ett sista villkor med Ruby s andra nyckelord. Koden går precis före slutet av sökordet. Här är hela blocket av Ruby:

    om rad == 1 sätter outside_letter * bredd elsif row == höjd lägger outside_letter * bredd annat mitten = inside_letter * (bredd - 2) sätter "# {outside_letter} # {middle} # { outside_letter} "slutet
    

    Mittenhöljet ser komplicerat ut. Vad gör det? Tja, enligt din algoritm måste den rita vänster och höger kanter och allt i mitten.

    Mittenvariabeln beräknar strängen som representerar rektangelens mittpunkt. Om du tar bort en för den vänstra kanten karaktären och en för den högra kanten karaktären, den sista bredden på mitten är full bredd minus två tecken.

    Det slutgiltiga uttalandet använder strängbearbetning för att skapa den kombinerade raden.

  6. Kör ditt program och se om du har några fel. Får du något som visas här? Om du ser ett fel som säger att något liknande jämförelse mellan Fixnum och String misslyckades betyder det att Ruby hade svårt att använda värdet inuti shape_size som ett nummer.

    Ruby är inte säker på hur man använder strängar för siffror.

    Varför är det ett problem om du skrev in ett nummer? Tja, får läser i din inmatning, men det läser alla de tecken du skriver som en sträng. Du måste hjälpa Ruby att konvertera strängen till ett nummer.

  7. Ändra de två raderna där du ställer in längd- och breddvariablerna för att använda metoden to_i, vilket betyder att omvandla denna variabels innehåll till ett heltal (nummer):

    height = shape_size. to_i width = shape_size. to_i
    

    Kör din kod igen. Framgång!

    Är detta världens mest spännande rektangel?
Hur man skapar kod i Ruby för att rita en rektangel - dummies

Redaktörens val

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

När du har lagt till en Bakgrund till ditt spel kan du ytterligare anpassa bakgrunden i Gamestar Mechanic genom att använda två ytterligare alternativ i dialogrutan Nivåinställningar: Bakgrundsrullning och Bakgrundsstil. Bakgrundsrullning Parallaxen är en viktig egenskap hos bakgrunden i spel där alternativet Fler skärm är valt. Redigerbar ...

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Det vanligaste exemplet på balansering ett spel i Gamestar Mechanic balanserar svårigheten: Gör inte spelet så lätt att det är tråkigt och gör det inte så svårt att det är frustrerande. För att finjustera spelets svårighet måste du göra små förändringar utan att bli förbunden till ...

För att kalibrera accelerometern för ditt HTML5-spel - dummies

För att kalibrera accelerometern för ditt HTML5-spel - dummies

Som standard antar HTML5-spelaccelerometern Det neutrala läget är perfekt horisontellt - det vill säga enheten ligger platt på ett bord. Men det här är mobila enheter, och spelare vill ofta ha det neutrala stället att vara någon annanstans. Grundläggande tekniken för att kalibrera tiltkontrollen är att hålla koll på en ...

Redaktörens val

Gör äta rena förändringar i livet - dummies

Gör äta rena förändringar i livet - dummies

Rena ätförändringar i ditt liv är inte svåra att göra, men de tar lite gumption, uthållighet och övning. När du gör en koncentrerad insats för att äta lägre på livsmedelskedjan, märka hur detta beslut påverkar andra delar av ditt liv. För att vara framgångsrik måste du tänka på mat och äta annorlunda, vilka ...

Köttfri måndag och hållbarhet - dummies

Köttfri måndag och hållbarhet - dummies

Köttfri måndag är ett ganska nytt koncept som ofta nämns på Facebook och Twitter. Allt det betyder är att en dag i veckan väljer du att äta vegetarian eller vegan. Inte bara kan Meatless Monday spara pengar (eftersom kött är dyrt), men planen hjälper miljön (eftersom stora kött-, fläsk- och kycklingsanläggningar skapar nitrat ...

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

Medelhavsdieten har länge varit prydnad för vilket ger hälsoeffekter, såsom att minska kranskärlssjukdom och minska risken för vissa cancerformer. Inklusive färska grönsaker och frukter, baljväxter och hälsosamma fetter i din kost kan hjälpa dig att förbättra din hälsa på många sätt. Forskning visar att en traditionell medelhavsdiet minskar ...

Redaktörens val

Hur man arbetar med Nikon D3300-minneskort - dummies

Hur man arbetar med Nikon D3300-minneskort - dummies

Som mediet som lagrar dina bildfiler , Nikon D3300s minneskort är en viktig del av din kamera. Följ dessa tips för att köpa och behålla kort: Köpkort: När du handlar för ett SD-minneskort är den enda specifikationen som noterar annat än kortkapaciteten kort hastighet, vilket indikerar hur snabbt data ...

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Med intervall Timer Fotografering på Nikon D5200, du kan ställa in kameran för att automatiskt släppa avtryckaren med intervall som sträcker sig från sekunder till timmar från varandra. Med den här funktionen kan du fånga upp ett ämne eftersom det förändras över tiden - en teknik som är känd som fotografering med tidsfördröjning - utan att behöva stå runt på ...

JPEG Filer på Nikon D3300-dummies

JPEG Filer på Nikon D3300-dummies

Uttalad "jay-peg", det här formatet är standardinställningen på din Nikon D3300, som det är på de flesta digitalkameror. JPEG är populär av två huvudorsaker: Omedelbar användbarhet: Alla webbläsare och e-postprogram kan visa JPEG-filer, så att du kan dela bilder online direkt efter att du har tagit dem. Du kan också få en ...