Βίντεο: Ruby On Rails, by Gabriel Guimaraes 2024
Μπορείτε να δημιουργήσετε μια μέθοδο για να σχεδιάσετε ένα τρίγωνο στο Ruby. Πρώτα, σκεφτείτε πώς μπορεί να λειτουργήσει αυτό. Το τρίγωνο που θα σχεδιάσετε θα μοιάζει με ισοσκελές τρίγωνο, όπου οι δύο πλευρές θα έχουν το ίδιο μέγεθος και η βάση θα φαίνεται ελαφρώς μικρότερη.
Σε αντίθεση με το ορθογώνιο, όπου κάθε σειρά είναι εύκολο να μορφοποιηθεί, για το τρίγωνο πρέπει να κάνετε κάθε σειρά να φαίνεται διαφορετική. Η πρώτη σειρά θα είναι η κορυφή του τριγώνου (το άκρο του άκρου). Η τελευταία σειρά θα είναι η βάση του τριγώνου και θα είναι το πλάτος που καθορίζει ο χρήστης.
Δείτε αν μπορείτε να καταλάβετε τι κάνει ο κώδικας εδώ.
-
Ξεκινήστε μια νέα μέθοδο που ονομάζεται τρίγωνο:
# Πάνω από εδώ είναι το τέλος της μεθόδου ορθογωνίου Def τρίγωνο def (ύψος, outside_letter, inside_letter) # Κωδικός για το τρίγωνο θα πάει εδώ τέλος
Σημειώστε ότι θα είστε χρησιμοποιώντας τη μεταβλητή ύψους τόσο για το ύψος όσο και για το εσωτερικό πλάτος αυτής της μεθόδου.
-
Δημιουργήστε ένα βρόχο που θα επαναλάβει τους χρόνους ύψους. Βάλτε αυτόν τον κώδικα μέσα στη μέθοδο του τριγώνου:
1. upto (ύψος) να | σειρά | # Ένας κώδικας σχεδίασης πηγαίνει εδώ στο επόμενο τέλος του βήματος
-
Για ένα τρίγωνο, πρέπει να σχεδιάσετε κενό διάστημα (κενές περιοχές) για κάθε γραμμή που δεν καταλαμβάνει ολόκληρο το πλάτος που σχεδιάζετε. Καθώς σχεδιάζετε κάθε σειρά, θα σχεδιάζετε λιγότερα κενά. Προσθέστε αυτή τη γραμμή ως την πρώτη γραμμή του βρόχου σας:
print "* (ύψος - σειρά)
Το μαθηματικό θα υπολογίσει έναν μικρότερο αριθμό διαστημάτων καθώς ο αριθμός της γραμμής θα είναι μεγαλύτερος η σειρά 1 στο επάνω μέρος και η σειρά θα ισούται με το ύψος στο κάτω μέρος)
-
Στη συνέχεια, πρέπει να χειριστείτε την υπόθεση για την πρώτη σειρά, η οποία είναι η κορυφή της:
αν η σειρά == 1 βάζει "# {outside_letter * 2}" τέλος
Ο κωδικός του βήματος 4 πηγαίνει αμέσως μετά το βήμα 3.
-
εάν η σειρά == 1 βάζει "# {outside_letter * 2}" elsif row == ύψος βάζει έξω_letter * ύψος * 2 άκρο
Τώρα προσθέστε τον κώδικα για την ελαφρώς πιο περίπλοκη περίπτωση χειρισμού όλων των μεσαίων σειρών. από την κατάσταση, θα χρησιμοποιήσετε μια ρήτρα else: Δείτε ολόκληρη την προϋπόθεση εδώ:
-
if row == 1 θέτει "# {outside_letter * 2}" elsif row == ύψος βάζει έξω_letter * ύψος * 2 άλλο middle = inside_letter * (γραμμή - 2) εκτύπωση "# {outside_letter} # {middle} # {ins ide_letter} "βάζει" # {inside_letter} # {middle} # {outside_letter} "τέλος
Ο κώδικας φαίνεται λίγο περίεργος. Γιατί υπάρχει τόσο μια εκτύπωση όσο και μια δήλωση;
Ήρθε η ώρα να εμφανιστεί το τρίγωνο. Στο κάτω μέρος του αρχείου κώδικα, κάτω από την κλήση της μεθόδου ορθογωνίου, προσθέστε μια κλήση με μέθοδο τριγώνου:
-
τρίγωνο (ύψος, εξωτερικό_letter, εσωτερικό_letter)
Αποθηκεύστε το αρχείο του προγράμματος, μεταβείτε στο τερματικό σας και εκτελέστε το πρόγραμμα.Θα πρέπει να δείτε κάτι παρόμοιο:
-
Ο κώδικας παραδείγματος που χρησιμοποιείται περιλαμβάνει μια μέθοδο ορθογωνίου πριν από τη μέθοδο του τριγώνου, έτσι θα δείτε ένα ορθογώνιο ισορροπημένο σε ένα τρίγωνο.