Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Κατασκευή πίνακα 15χ15

Κατασκευή πίνακα 15χ15 12 Χρόνια 1 Μήνας πριν #1658

  • eleni26
  • Το Άβαταρ του/της eleni26
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 7
Καλησπέρα ,
προσπαθώ να κατασκευάσω μια τρίλιζα 15χ15 αλλά δεν μπορώ να φτιάξω το ταμπλό, προσπάθησα τον κώδικα
board = [ '-' for i in range(0,225) ]
 
for j in range(0,225,15):
	for i in range(15):
		if board[j+i] == '-': 
			print ("%d |" %(j+i)),
		else:
			print ("%s |" % board[j+i]),
        print ("\n")
αλλά τυπώνει την μια στήλη κάτω από την άλλη. Καμία ιδέα για το τί κάνω λάθος???
Τελευταία διόρθωση: 12 Χρόνια 1 Μήνας πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Κατασκευή πίνακα 15χ15 12 Χρόνια 1 Μήνας πριν #1659

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Καλησπέρα Ελένη. Αυτό που θες είναι να δημιουργήσεις ένα πίνακα 2 διαστάσεων. Ο πίνακας που δημιουργείς έχει μία διάσταση μόνο. Δοκίμασε να τον τυπώσεις και θα το δεις.

Αυτό που μπορείς να κάνεις είναι να αναπαραστήσεις κάθε γραμμή με μία λίστα μήκους 15. Ας την ονομάσουμε row. Αφού θες 15 γραμμές σημαίνει ότι θες 15 τέτοιες λίστες. Άρα ο board θα είναι μία λίστα που θα περιέχει 15 rows (15 λίστες δηλαδή).

Με τον τρόπο αυτό για να πάρεις το στοιχείο j της σειράς i θα δίνεις board[j].
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Κατασκευή πίνακα 15χ15 12 Χρόνια 1 Μήνας πριν #1660

  • myle
  • Το Άβαταρ του/της myle
  • Αποσυνδεμένος
  • Admin
  • Δημοσιεύσεις: 467
  • Ληφθείσες Ευχαριστίες 15
Εγώ στη θέση σου θα άκουγα τη συμβουλή του Παναγιώτη για δισδιάστατο πίνακα. Ωστόσο, με βάση τον κώδικα σου, και αν κατάλαβα καλά, νομίζω πως αυτό που θες να κάνεις είναι:
board = ['-' for i in range(0,225) ]
 
for j in range(0,225,15):
    for i in range(15):
        if board[j+i] == '-': 
            print("%d |" %(j+i), end='')
        else:
            print("%s |" % board[j+i], end='')
    print()
«Αν υποθέσουμε ότι αυτό είναι δυνατό, (να μεταδώσουμε τη σοφία παντού) τότε ειλικρινά ο τρόπος ζωής των θεών θα περάσει στους ανθρώπους. Τα πάντα θα είναι γεμάτα...
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Κατασκευή πίνακα 15χ15 12 Χρόνια 1 Μήνας πριν #1661

  • eleni26
  • Το Άβαταρ του/της eleni26
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 7
Σ'ευχαριστώ myle, αυτό ήθελα να πετύχω κατά κάποιο τρόπο αλλά δεν με βοηθάει και πολύ τελικά γιατί καθώς πρόκειται για παιχνίδι θέλω να ειναι στοιχισμένες οι λίστες μου ομοιόμορφα.
Όσον αφορά τον πίνακα τύπου matrix το γνωρίζω πως ετσι πρέπει να γίνει αλλά το μόνο που κατάφερα 3 μέρες τώρα ειναι να έχω ως αποτέλεσμα λίστες μηδενικές.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Κατασκευή πίνακα 15χ15 12 Χρόνια 1 Μήνας πριν #1662

  • myle
  • Το Άβαταρ του/της myle
  • Αποσυνδεμένος
  • Admin
  • Δημοσιεύσεις: 467
  • Ληφθείσες Ευχαριστίες 15
Ελένη, για εύκολη στοίχηση μπορείς να χρησιμοποιήσεις αντί για το κενό τον χαρακτήρα tab. Αλλιώς, πρέπει να υπολογίζεις πόσα κενά πρέπει να βάλεις.
board = ['-' for i in range(0,225) ]
 
for j in range(0,225,15):
    for i in range(15):
        if board[j+i] == '-': 
            print("%d\t|" %(j+i), end='')
        else:
            print("%s\t|" % board[j+i], end='')
    print()
«Αν υποθέσουμε ότι αυτό είναι δυνατό, (να μεταδώσουμε τη σοφία παντού) τότε ειλικρινά ο τρόπος ζωής των θεών θα περάσει στους ανθρώπους. Τα πάντα θα είναι γεμάτα...
Τελευταία διόρθωση: 12 Χρόνια 1 Μήνας πριν από myle.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Κατασκευή πίνακα 15χ15 12 Χρόνια 1 Μήνας πριν #1663

  • eleni26
  • Το Άβαταρ του/της eleni26
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 7
Ευχαριστώ, το αποτέλεσμα είναι σαφώς καλύτερο, αφαίρεσα τo δεύτερο print. Αυτό που δεν γνωρίζω τώρα είναι πώς μπορώ να ανατρέχω σε καθένα από τα στοιχεία του πίνακα μου...
board = ['-' for i in range(0,225) ]
 
for j in range(0,225,15):
	for i in range(15):
		if board[j+i] == '-': 
			print("%d \t |" %(j+i), end=''),
	print ('\n')		
	print ("-"*120, end='')
	print()
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Κατασκευή πίνακα 15χ15 12 Χρόνια 1 Μήνας πριν #1664

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Αφού έχεις κάνει τον πίνακα μονοδιάστατο, κάθε 15άδα στοιχειών είναι μία σειρά. Άρα αν θέλεις το δεύτερο στοιχείο της τρίτης στήλης θέλεις το 15 * 3 + 1 = 46 στοιχείο, άρα το board[46].

Αν αλλάξεις την υλοποίηση και την κάνεις δισδιάστατη, θα είανι πιο εύκολο να βρεις τα επιμέρους στοιχεία, καθως θα έχεις δύο δείκτες πχ για το προηγούμενο παράδειγμα θα έχεις board[2][1]
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": eleni26, loukakis

Απ: Κατασκευή πίνακα 15χ15 12 Χρόνια 1 Μήνας πριν #1665

  • myle
  • Το Άβαταρ του/της myle
  • Αποσυνδεμένος
  • Admin
  • Δημοσιεύσεις: 467
  • Ληφθείσες Ευχαριστίες 15
Και πάλι θα συμφωνήσω με τον Παναγιώτη. Είναι εμφανές ότι χρειάζεσαι πίνακα δυο διαστάσεων. Θα κάνει τη ζωή σου πολύ πιο εύκολη και δεν είναι τόσο δύσκολο το refactoring του κώδικα σου.

Anyway, αν επέμενες να χρησιμοποιούσες τον κώδικα που έχεις φτιάξει μέχρι τώρα, η συμβουλή του Παναγιώτη μεταφράζεται σε κώδικα:
Y = 15 # how many elements a line contains
 
def one_dimension(x, y):
    return x * Y + y # x: line number, y: column number
 
def two_dimension(z):
    x = z // Y # x: line number, y: column number
    y = z % Y
    return x, y
 
print(one_dimension(2, 1))
print(two_dimension(31))
print(one_dimension(3, 1))
print(two_dimension(46))
«Αν υποθέσουμε ότι αυτό είναι δυνατό, (να μεταδώσουμε τη σοφία παντού) τότε ειλικρινά ο τρόπος ζωής των θεών θα περάσει στους ανθρώπους. Τα πάντα θα είναι γεμάτα...
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": eleni26, loukakis
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.279 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου