kiriazispao4ever
Δραστήριο μέλος
Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 30 ετών και Φοιτητής. Έχει γράψει 526 μηνύματα.
02-07-13
16:40
Πάρτε και μια ωραία που κατέβασα τώρα, με αφορμή ένα επιτραπέζιο που μ' αρέσει. Δεν είναι δύσκολη.
Αυτό θα σας εξασκήσει στο αν μπορείτε να εξάγετε πληροφορίες από εκφώνηση, κάτι που πέφτει σε Πανελλήνιες. Δεν απαιτεί πίνακες ή επανάληψη, μόνο απλές δομές ελέγχου.ΆσκησηΖήτημα να είναι 10-20 γραμμές κώδικας. Και για όσους ξέρουν υποπρογράμματα και συναρτήσεις, υπάρχει μια ωραία επέκταση.
Στο επιτραπέζιο παιχνίδι «7 Wonders», οι παίχτες μπορούν να μαζεύουν πόντους νίκης με 7 διαφορετικούς τρόπους. Ένα μονοπάτι είναι μέσω συλλογής επιστημονικών συμβόλων. Στο παιχνίδι υπάρχουν τρία διαφορετικά επιστημονικά σύμβολα, καθένα σε πολλαπλά αντίγραφα: ο τροχός, η ταμπλέτα και ο διαβήτης.
Η αξία των επιστημονικών συμβόλων υπολογίζεται στο τέλος του παιχνδιού και φέρνουν πόντους νίκης με δύο τρόπους:
Παράδειγμα: η Σοφία έχει μαζέψει στο τέλος του παιχνιδιού 2 τροχούς, 1 ταμπλέτα και 3 διαβήτες. Από το κάθε σύμβολο ξεχωριστά, θα μαζέψει (2)² + (1)² + (3)² = 14 πόντους. Επιπλέον, επειδή έχει ένα ολοκληρωμένο σετ θα πάρει 7 επιπλέον πόντους, οπότε η τελική της βαθμολογία θα είναι 14 + 7 = 21 πόντοι νίκης.
- Κάθε σύμβολο που έχει μαζευτεί n φορές, φέρνει n² πόντους νίκης.
- Επιπλέον, για κάθε ολοκληρωμένο σετ τροχού-ταμπλέτα-διαβήτη, ο παίχτης παίρνει επιπλέον 7 πόντους ως bonus.
Να γραφεί αλγόριθμος ο οποίος θα δέχεται ως είσοδο τον αριθμό του κάθε επιστημονικού συμβόλου που έχει μαζέψει ένας παίχτης και θα εμφανίζει την τελική του βαθμολογία. Θεωρήστε ότι στην είσοδο θα δίνονται μη-αρνητικές τιμές.
Εκφώνηση από Γιώργος
Code:
print ("θα μετρησουμε τους βαθμους στο επιτραπέζιο παιχνίδι '7 Wonders'")
on=input ("Δωσε ονομα: ")
x=int(input ("δωσε βαθμους για τροχό:"))
c=int(input ("δωσε βαθμους για ταμπλέτα:"))
v=int(input ("δωσε βαθμους για διαβήτη:"))
k=x*x
j=c*c
l=v*v
print (" οι ποντοι απο τον τρόχο είναι :",(k))
print (" οι ποντοι απο την ταμπλέτα είναι :",(j))
print (" οι ποντοι απο τον διαβητη είναι :",(l))
print ("Συνολικοι πόντοι για τον/την:",on,"είναι :",k+j+l)
if (x<1 or c<1 or v<1):
print("Δεν δικαιούσαι Bonus")
else:
min=0
if (x<c and c<v):
min=x
elif (c<x and v>c):
min=c
else:
min=v
bonus=min*7
print ("Συνολικοι πόντοι μαζί με τα Bonus για τον την:",on,"είναι :",k+j+l+bonus)
Γιώργο είναι σωστή η λύση?
Βασικά πρώτα με ενδιαφέρει αν έχω χρησιμοποιήσει σωστά την python ...
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.