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 2025

Video: Writing 2D Games in C using SDL by Thomas Lively 2025
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

Få hjælp til din kodependency - dummies

Få hjælp til din kodependency - dummies

Hvis du mener, at du måske er afhængig af hinanden, har du brug for hjælp til at ændre din adfærd. Her er nogle kilder til hjælp til dem, der lider af kodependens: Læs alt hvad du kan om kodependency (men læsning alene er utilstrækkelig til at ændre). Gå til et tolv-trinsmøde for kodependenter, f.eks. Codependents Anonym, kaldet CoDA eller Al-Anon for ...

Helbredelse Depression med Mindfulness er muligt - men det tager tid - dummies

Helbredelse Depression med Mindfulness er muligt - men det tager tid - dummies

Med den rigtige støtte , er opsving fra depression med mindfulness muligt. Det er nyttigt at huske at enhver helbredelse gennem depression tager tid og ofte mødes med en op og ned proces af lows, højder, stabile perioder, lavt niveau igen, så mere stabile tider, der fører til en anden forbedring og følelse bedre. Så meget som du ...

Sunde alternativer til loathsome Personal Labels - dummies

Sunde alternativer til loathsome Personal Labels - dummies

Du kan forandre hvordan du føler ved at ændre den måde du tænker og snakker om dig selv. Nedenstående tabel opdeler mellem negative selvdæmpende etiketter, som du måske siger højt eller indadtil tænker på dig selv og konstruktive sundere bekræftelser, som du kan vælge at sige og føle i stedet. At skifte dine ord på denne måde kan hjælpe dig ...

Valg af editor

Sådan oprettes dit DSLR-filmprojekt - dummier

Sådan oprettes dit DSLR-filmprojekt - dummier

Det er nemt at starte et DSLR-filmprojekt. Bare gå til Fil → Ny → Projekt for at lave en ny. Derefter skal du give det et navn, helst en der har noget at gøre med filmen. Du kan kalde det The Last Kiss eller Debbie. Det er ligegyldigt. Bare navngiv det og klik på OK. Udnyt ...

Sådan skaber du dramatisk lys til din DSLR-film - dummier

Sådan skaber du dramatisk lys til din DSLR-film - dummier

Forstå begrebet dramatisk belysning er en start, men teori får dig kun så langt. Det hjælper ikke medmindre du kan bruge din DSLR til at skabe overbevisende belysning. Traditionelt trepunkts lys giver et godt udgangspunkt. Derefter bliver tingene mere interessante. Filmlys som Rembrandt Når du tænker på det mest dramatiske ...

Hvordan man laver magiske film med flip video - dummier

Hvordan man laver magiske film med flip video - dummier

En magisk film er magisk, primært fordi du er overlader det til FlipShare til at redigere sammen tilfældige segmenter af dine klip og billeder i en endelig forkortet film, der fanger den overordnede essens af dine klip. Nogle vigtige beslutninger Magic Movie-funktionen gør med hensyn til dine klip, når du opretter en Magic Movie ...

Valg af editor

Hvordan man arbejder med CSS3-moduler - dummier

Hvordan man arbejder med CSS3-moduler - dummier

For at gøre det enklere, kan CSS3-modulerne adskilles i ti kategorier: grænser, baggrunde, skrifttyper, teksteffekter, flere kolonner, overgange, 2D overgange, 3D overgange, animationer og brugergrænseflade. Tag et kort kig på hvert modul for at se, hvad det kan gøre. Grænser: Grænsemodulet udvider kapaciteterne i grænsekategorien ved at tilføje valgmuligheder ...

Sådan arbejder du med CSS3 Pattern Selectors - dummies

Sådan arbejder du med CSS3 Pattern Selectors - dummies

I nogle tilfælde et valg du har brug for make in CSS3 har intet at gøre med enten tags eller attributter, men mønsteret, hvor objekterne vises på siden. Du kan f.eks. Kun vælge det første objekt, uanset hvad det pågældende objekt kan være. I nogle tilfælde vil du ...

Hvordan man arbejder med skyder i CSS3 - dummies

Hvordan man arbejder med skyder i CSS3 - dummies

Skydere giver brugeren mulighed for at indtaste en værdi visuelt - som en del af en helhed. I CSS3 sikrer en skyder, at brugeren indtaster en korrekt værdi inden for en række værdier, så du behøver ikke bekymre dig om sikkerhedsproblemer eller forkerte værdier. Som et resultat giver skyderen et værdifuldt middel til ...