Μετάβαση στο κύριο περιεχόμενο

Πληροφορική Γ' Λυκείου: Επαναληπτική Άσκηση #26

Η εικοστή έκτη επαναληπτική άσκηση για το μάθημα της Πληροφορικής (πρώην ΑΕΠΠ) αποτελεί την πρώτη πρόταση, από τις πέντε συνολικά, για τις Πανελλαδικές Εξετάσεις.

26η επαναληπτική άσκηση για το μάθημα της Πληροφορικής

26η Επαναληπτική Άσκηση

Τίτλος: Σκορ 4
Κατηγορία:Υποψήφιο θέμα Πανελλαδικών

Το «Σκορ 4» είναι ένα επιτραπέζιο παιχνίδι που αποτελείται από ένα πλέγμα 6 Χ 7 (γραμμές Χ στήλες ) και παίζεται από δύο παίκτες. Ο πρώτος παίκτης έχει στη διάθεση του εικοσιένα κόκκινες μάρκες και ο δεύτερος παίκτης εικοσιένα κίτρινες μάρκες. Όλες οι μάρκες τοποθετούνται σε οποιαδήποτε στήλη από την κορυφή του πλέγματος και ολισθαίνουν προς τα κάτω είτε μέχρι να φτάσουν στην τελευταία γραμμή του πλέγματος είτε μέχρι να συναντήσουν άλλη μάρκα. Νικητής του παιχνιδιού είναι αυτός που θα καταφέρει να σχηματίσει μία σειρά από τέσσερις μάρκες είτε οριζόντια, είτε κάθετα.

Να γραφεί πρόγραμμα το οποίο:
α) Θα δημιουργεί έναν πίνακα δύο διαστάσεων 6 Χ 7 (ο οποίος θα προσομοιώνει το πλέγμα του παιχνιδιού) και θα αρχικοποιεί κάθε θέση του πίνακα με δύο παύλες «--»,
β) Θα διαβάζει την κίνηση κάθε παίκτη (ο παίκτης με τις κόκκινες μάρκες παίζει πρώτος). Σε κάθε κίνηση ο παίκτης θα επιλέγει τη στήλη στην οποία θέλει να τοποθετηθεί η μάρκα του. Στη συνέχεια, με τη βοήθεια υποπρογράμματος, θα τοποθετείται η μάρκα στη σωστή θέση (με βάση τη λογική που αναφέρθηκε παραπάνω). Για την τοποθέτηση μίας κόκκινης μάρκας θα τοποθετείται «ΚΟ» στη θέση του πίνακα ενώ για μία κίτρινη μάρκα θα τοποθετείται «ΚΙ». Μετά από κάθε κίνηση θα ελέγχεται, με χρήση υποπρογράμματος, αν κέρδισε ο παίκτης που έκανε την κίνηση ή αν το παιχνίδι πρέπει να συνεχιστεί. Στην πρώτη περίπτωση θα εμφανίζει τον νικητή του παιχνιδιού και το παιχνίδι θα τερματίζεται ενώ στη δεύτερη περίπτωση θα ελέγχει αν το πλέγμα είναι γεμάτο οπότε θα εμφανίζει το μήνυμα «Ισοπαλία» και το παιχνίδι και πάλι θα σταματάει. Σε κάθε άλλη περίπτωση το παιχνίδι θα συνεχίζεται με την επόμενη κίνηση,
γ) Θα περιέχει υποπρόγραμμα «Τοποθέτηση» το οποίο θα δέχεται ως είσοδο το πλέγμα, τον παίκτη που έχει σειρά να παίξει («ΚΟ» ή «ΚΙ») και τη στήλη στην οποία θα τοποθετηθεί και αφού ενημερώσει το πλέγμα θα επιστρέφει τη θέση στην οποία τοποθετήθηκε η μάρκα και
δ) Θα περιέχει υποπρόγραμμα «Έλεγχος» που θα δέχεται ως είσοδο το πλέγμα και την τελευταία θέση που τοποθετήθηκε μία μάρκα και θα επιστρέφει τιμή «ΚΟ» αν κερδίζει ο παίκτης με τις κόκκινες μάρκες, «ΚΙ» αν κερδίζει ο παίκτης με τις κίτρινες μάρκες και «ΣΥ» αν το παιχνίδι πρέπει να συνεχιστεί με την επόμενη κίνηση.

Παρατηρήσεις:
α) Αν ο παίκτης επιλέξει να τοποθετήσει τη μάρκα του σε μία στήλη που είναι γεμάτη με μάρκες θα πρέπει να του εμφανίζεται κατάλληλο μήνυμα και να υποχρεώνεται να επιλέξει άλλη στήλη.
β) Μετά από κάθε κίνηση θα εμφανίζεται το πλέγμα στη νέα του μορφή.

Λύση 26ης επαναληπτικής άσκησης

ΠΡΟΓΡΑΜΜΑ Σκορ_4
ΜΕΤΑΒΛΗΤΕΣ 
  ΑΚΕΡΑΙΕΣ: Ι, Ξ, ΚΟΚ_ΜΑΡΚΕΣ, ΚΙΤ_ΜΑΡΚΕΣ, ΣΤΗΛΗ, ΤΕΛ_ΘΕΣΗ
  ΧΑΡΑΚΤΗΡΕΣ: ΠΛΕΓΜΑ[6, 7], ΑΠΟΤ, ΝΙΚΗΤΗΣ
  ΛΟΓΙΚΕΣ: ΤΕΛΕΙΩΣΕ
ΑΡΧΗ 
 
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 6
    ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 7
      ΠΛΕΓΜΑ[Ι, Ξ] <- '--'
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΚΟΚ_ΜΑΡΚΕΣ <- 21
  ΚΙΤ_ΜΑΡΚΕΣ <- 21
  ΤΕΛΕΙΩΣΕ <- ΨΕΥΔΗΣ

  ΟΣΟ ΚΟΚ_ΜΑΡΚΕΣ > 0 ΚΑΙ ΚΙΤ_ΜΑΡΚΕΣ > 0 ΚΑΙ ΟΧΙ ΤΕΛΕΙΩΣΕ ΕΠΑΝΑΛΑΒΕ

    ΓΡΑΨΕ 'Σειρά έχει ο παίκτης με τις κόκκινες μάρκες.'
    ΓΡΑΨΕ 'Ποια στήλη επιλέγει; '
    ΔΙΑΒΑΣΕ ΣΤΗΛΗ

    ΟΣΟ ΠΛΕΓΜΑ[1, ΣΤΗΛΗ] <> '--' ΕΠΑΝΑΛΑΒΕ
      ΓΡΑΨΕ 'Γεμάτη στήλη. Επέλεξε άλλη. '
      ΔΙΑΒΑΣΕ ΣΤΗΛΗ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

    ΚΟΚ_ΜΑΡΚΕΣ <- ΚΟΚ_ΜΑΡΚΕΣ - 1
    ΚΑΛΕΣΕ ΤΟΠΟΘΕΤΗΣΗ(ΠΛΕΓΜΑ, 'ΚΟ', ΤΕΛ_ΘΕΣΗ, ΣΤΗΛΗ) 
    ΚΑΛΕΣΕ ΕΜΦΑΝΙΣΗ(ΠΛΕΓΜΑ) 

    ΑΠΟΤ <- ΕΛΕΓΧΟΣ(ΠΛΕΓΜΑ, ΤΕΛ_ΘΕΣΗ, ΣΤΗΛΗ) 
    ΑΝ ΑΠΟΤ = 'ΣΥ' ΤΟΤΕ
      ΓΡΑΨΕ 'Σειρά έχει ο παίκτης με τις κίτρινες μάρκες.'
      ΓΡΑΨΕ 'Ποια στήλη επιλέγει; '
      ΔΙΑΒΑΣΕ ΣΤΗΛΗ

      ΟΣΟ ΠΛΕΓΜΑ[1, ΣΤΗΛΗ] <> '--' ΕΠΑΝΑΛΑΒΕ
        ΓΡΑΨΕ 'Γεμάτη στήλη. Επέλεξε άλλη. '
        ΔΙΑΒΑΣΕ ΣΤΗΛΗ
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

      ΚΙΤ_ΜΑΡΚΕΣ <- ΚΙΤ_ΜΑΡΚΕΣ - 1
      ΚΑΛΕΣΕ ΤΟΠΟΘΕΤΗΣΗ(ΠΛΕΓΜΑ, 'ΚΙ', ΤΕΛ_ΘΕΣΗ, ΣΤΗΛΗ) 
      ΚΑΛΕΣΕ ΕΜΦΑΝΙΣΗ(ΠΛΕΓΜΑ) 

      ΑΠΟΤ <- ΕΛΕΓΧΟΣ(ΠΛΕΓΜΑ, ΤΕΛ_ΘΕΣΗ, ΣΤΗΛΗ) 
      ΑΝ ΑΠΟΤ <> 'ΣΥ' ΤΟΤΕ
        ΤΕΛΕΙΩΣΕ <- ΑΛΗΘΗΣ
        ΝΙΚΗΤΗΣ <- 'ο παίκτης με τις κίτρινες μάρκες. '
      ΤΕΛΟΣ_ΑΝ
    ΑΛΛΙΩΣ
      ΤΕΛΕΙΩΣΕ <- ΑΛΗΘΗΣ
      ΝΙΚΗΤΗΣ <- 'ο παίκτης με τις κόκκινες μάρκες. '
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΝ ΤΕΛΕΙΩΣΕ ΤΟΤΕ
    ΓΡΑΨΕ 'Νικητής είναι ', ΝΙΚΗΤΗΣ
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Ισοπαλία.'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Σκορ_4

ΔΙΑΔΙΚΑΣΙΑ ΤΟΠΟΘΕΤΗΣΗ(ΠΛΕΓΜΑ, ΠΑΙΚΤΗΣ, ΤΕΛ_ΘΕΣΗ, ΣΤΗΛΗ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ι, Ξ, ΣΤΗΛΗ, ΓΡΑΜΜΗ, ΘΕΣΗ, ΤΕΛ_ΘΕΣΗ
  ΧΑΡΑΚΤΗΡΕΣ: ΠΛΕΓΜΑ[6, 7], ΠΑΙΚΤΗΣ
  ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ
ΑΡΧΗ

  ΓΡΑΜΜΗ <- 1
  ΘΕΣΗ <- 0
  ΒΡΕΘΗΚΕ <- ΨΕΥΔΗΣ
  ΟΣΟ ΓΡΑΜΜΗ <= 6 ΚΑΙ ΟΧΙ ΒΡΕΘΗΚΕ ΕΠΑΝΑΛΑΒΕ
    ΑΝ ΠΛΕΓΜΑ[ΓΡΑΜΜΗ, ΣΤΗΛΗ] <> '--' ΤΟΤΕ
      ΒΡΕΘΗΚΕ <- ΑΛΗΘΗΣ
      ΘΕΣΗ <- ΓΡΑΜΜΗ
    ΤΕΛΟΣ_ΑΝ
    ΓΡΑΜΜΗ <- ΓΡΑΜΜΗ + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΝ ΒΡΕΘΗΚΕ ΤΟΤΕ
    ΤΕΛ_ΘΕΣΗ <- ΘΕΣΗ - 1
  ΑΛΛΙΩΣ
    ΤΕΛ_ΘΕΣΗ <- 6
  ΤΕΛΟΣ_ΑΝ
  ΠΛΕΓΜΑ[ΤΕΛ_ΘΕΣΗ, ΣΤΗΛΗ] <- ΠΑΙΚΤΗΣ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΣΥΝΑΡΤΗΣΗ ΕΛΕΓΧΟΣ(ΠΛΕΓΜΑ, ΓΡΑΜΜΗ, ΣΤΗΛΗ): ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ι, Ξ, ΓΡΑΜΜΗ, ΣΤΗΛΗ, ΣΥΝΕΧ
  ΧΑΡΑΚΤΗΡΕΣ: ΠΛΕΓΜΑ[6, 7], ΠΑΙΚΤΗΣ
ΑΡΧΗ

! Έλεγχος οριζόντια

  ΠΑΙΚΤΗΣ <- ΠΛΕΓΜΑ[ΓΡΑΜΜΗ, ΣΤΗΛΗ] 

  ΣΥΝΕΧ <- 0
  Ξ <- 1
  ΟΣΟ Ξ <= 7 ΚΑΙ ΣΥΝΕΧ < 4 ΕΠΑΝΑΛΑΒΕ
    ΑΝ ΠΛΕΓΜΑ[ΓΡΑΜΜΗ, Ξ] = ΠΑΙΚΤΗΣ ΤΟΤΕ
      ΣΥΝΕΧ <- ΣΥΝΕΧ + 1
    ΑΛΛΙΩΣ
      ΣΥΝΕΧ <- 0
    ΤΕΛΟΣ_ΑΝ
    Ξ <- Ξ + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΝ ΣΥΝΕΧ = 4 ΤΟΤΕ
    ΕΛΕΓΧΟΣ <- ΠΑΙΚΤΗΣ
  ΑΛΛΙΩΣ
  !Έλεγχος κάθετα
    ΣΥΝΕΧ <- 0
    Ι <- 1
    ΟΣΟ Ι <= 6 ΚΑΙ ΣΥΝΕΧ < 4 ΕΠΑΝΑΛΑΒΕ
      ΑΝ ΠΛΕΓΜΑ[Ι, ΣΤΗΛΗ] = ΠΑΙΚΤΗΣ ΤΟΤΕ
        ΣΥΝΕΧ <- ΣΥΝΕΧ + 1
      ΑΛΛΙΩΣ
        ΣΥΝΕΧ <- 0
      ΤΕΛΟΣ_ΑΝ
      Ι <- Ι + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

    ΑΝ ΣΥΝΕΧ = 4 ΤΟΤΕ
      ΕΛΕΓΧΟΣ <- ΠΑΙΚΤΗΣ
    ΑΛΛΙΩΣ
      ΕΛΕΓΧΟΣ <- 'ΣΥ'
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ ΕΜΦΑΝΙΣΗ(ΠΛΕΓΜΑ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ι, Ξ
  ΧΑΡΑΚΤΗΡΕΣ: ΠΛΕΓΜΑ[6, 7] 
ΑΡΧΗ

  ΓΡΑΨΕ ''
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 6
    ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 7
      ΓΡΑΨΕ ΠΛΕΓΜΑ[Ι, Ξ], '  '
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ ''
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ ''
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


Όλες τις επαναληπτικές ασκήσεις για το μάθημα της Πληροφορικής (πρώην ΑΕΠΠ) μπορείτε να τις βρείτε στο παρακάτω άρθρο:

Σχόλια

  1. Αφαιρέθηκε η επιλογή διαγώνια από τα κριτήρια τερματισμού επειδή η λύση της άσκησης είναι ήδη μεγάλη. Αν βέβαια υλοποιήσετε και το κριτήριο αυτό ακόμα καλύτερα.

    ΑπάντησηΔιαγραφή

Δημοσίευση σχολίου

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

30 επαναληπτικές ασκήσεις για το μάθημα της Πληροφορικής της Γ' Λυκείου

10 Επαναληπτικές Ασκήσεις στην Πληροφορική (2021)

Πληροφορική Γ' Λυκείου: Επαναληπτική Άσκηση #6 (2021)