Παιχνίδι Νεο - BINGO

Ξεκίνησε από nikolasmer, 24 Φεβ 2013, 03:47:30 ΜΜ

« προηγούμενο - επόμενο »

nikolasmer

Σκέφτομαι να βάλω την παρακάτω άσκηση για διαγώνισμα(Θέμα 4)

Το παιχνίδι Νεο - BINGO παίζεται ως εξής:
Σε εναν διδσδιάστατο πίνακα υπάρχουν καταχωρισμένοι 100 αριθμοί διαφορετικοί μεταξύ τους σε 10 γραμμές και 10 στήλες. Ο παίχτης επιλέγει εναν αριθμό ο οποίος υπάρχει ως στοιχείο του πίνακα και για το πολύ 9 φορές πατάει ενα νούμερο από το 1 μέχρι και το 10 χωρίς να ξαναπατάει τον ίδιο αριθμό. Κάθε φορά οι τιμές και τα στοιχεία των αντίστοιχων γραμμών και στηλών του πίνακα εξαφανίζονται και μένει ο καινούριος πίνακας με μια γραμμή και μια στήλη λιγότερη. Νικητής θα είναι ο παίχτης που ο αριθμός που επέλεξε είναι ο ίδιος με τον εναπομείναντα αριθμό.
Να γίνει αλγόριθμος ο οποίος:
1. Να διαβάζει τους 100 αριθμούς και να τους αποθηκεύει στον πίνακα Α [ 10 , 10 ].
2. Να διαβάζει τον αριθμό του παίκτη με τον οποίο θέλει να διαγωνιστεί κάνοντας έλεγχο ώστε ο αριθμός να υπάρχει στον πίνακα.
3. Να διαβάζει αριθμούς από το 1 μέχρι και το 10 με έλεγχο ώστε να μην ξαναπατάει ίδιο αριθμό κάθε φορά, μέχρι 9 φορές ή μέχρι να μην υπάρχει ο αριθμός που ψάχνει μέσα στον πίνακα πια.
4. Αν ο αριθμός που είχε επιλέξει αρχικά είναι ίδιος με τον τελικό αριθμό τότε να εμφανίζεται το μήνυμα "BINGO". Σε διαφορετική περίπτωση να ενφανίζεται το μήνυμα "Λυπάμαι έχασες" και το παιχνίδι να τερματίζει.
Ο αλγόριθμος που θα σχεδιάσετε να δημιουργηθεί κατα τέτοιο τρόπο ώστε σε κάθε επανάληψη να χάνεται μια γραμμή και μια στήλη του πίνακα και ο καινούριος πίνακας ο οποίος θα είναι κατα μια γραμμή και στήλη μικρότερος θα τίθεται σαν αρχικός για έλεγχο.

Θα ήθελα την άποψή σας πάνω σε αυτή την άσκηση. Πιστεύω πως δεν τίθεται θέμα δυναμικού πίνακα ώστε τα παιδιά να μπερδευτούν.
Να την πετάξω στα σκουπίδια ή να την κρατήσω;
   
Μερεντίτης Νικόλαος
Πληροφορικός

P.Tsiotakis

έχω την αίσθηση οτι η άσκηση είναι πολύ δύσκολη
μου έδωσες μια ιδέα και επεξεργάζομαι μια απλούστερη εκδοση της
πάντως αν επιμείνεις θα μπορούσες να ζητάς να μπαίνει το "μηδέν" σε όσα κελιά (γραμμές ή στήλες) διαγράφονται ώστε σε κάθε επόμενη επανάληψη να επεξεργάζεσαι τα μη μηδενικά στοιχεία

nikolasmer

#2
Παράθεση από: Παναγιώτης Τσιωτάκης στις 24 Φεβ 2013, 04:20:49 ΜΜ
έχω την αίσθηση οτι η άσκηση είναι πολύ δύσκολη
μου έδωσες μια ιδέα και επεξεργάζομαι μια απλούστερη εκδοση της
πάντως αν επιμείνεις θα μπορούσες να ζητάς να μπαίνει το "μηδέν" σε όσα κελιά (γραμμές ή στήλες) διαγράφονται ώστε σε κάθε επόμενη επανάληψη να επεξεργάζεσαι τα μη μηδενικά στοιχεία

Μάλλον έχετε δίκαιο.
Είναι δύσκολη.
Επίσης ο έλεγχος για τον αριθμό που θα πατάει κάποιος ο οποίος πρέπει να είναι από το 1 μέχρι το 10 δεν έχει νόημα καθώς ο εναπομείνοντας πίνακας έχει στοιχεία τα οποία αλλάζουν θέση και ανεβαίνουν προς τα πάνω και αριστερά. Ο μοναδικός έλεγχος που "χωράει" σε αυτό το σημείο είναι να μην μπορεί να εισαχθεί νούμερο μεγαλύτερο από το μέγεθος του πίνακα(αριθμός γραμμών ή στηλών) στην παρούσα επανάληψη στην οποία βρισκόμαστε.

Μια πρώτη άποψη είναι η παρακάτω. Όμως δε νομίζω να τρέχει για όλες τις περιπτώσεις. Κάποιο σφάλμα θα έχει αλλά δεν μπορώ να το εντοπίσω.
Αλγόριθμος Bingo

Για i από 1 μέχρι 5
  Για j από 1 μέχρι 5
    Διάβασε Α[i, j] 
  Τέλος_επανάληψης
Τέλος_επανάληψης

Αρχή_επανάληψης
  Διάβασε χ
  flag ← Ψευδής
  Για i από 1 μέχρι 5
    Για j από 1 μέχρι 5
      Αν Α[i, j] = χ τότε
        flag ← Αληθής
      Τέλος_αν
    Τέλος_επανάληψης
  Τέλος_επανάληψης
Μέχρις_ότου flag = Αληθής
υπάρχει ← Ψευδής
κ ← 1
Όσο κ ≤ 4 και υπάρχει = Ψευδής επανάλαβε
  Αρχή_επανάληψης
    Διάβασε αριθμός
  Μέχρις_ότου αριθμός ≤ 6 - κ

  Για i από 1 μέχρι αριθμός - 1
    Για j από 1 μέχρι αριθμός - 1
      Temp[i, j] ← Α[i, j] 
    Τέλος_επανάληψης
  Τέλος_επανάληψης
  Για i από 1 μέχρι αριθμός - 1
    Για j από αριθμός + 1 μέχρι 6 - κ
      Temp[i, j - 1] ← Α[i, j] 
    Τέλος_επανάληψης
  Τέλος_επανάληψης
  Για i από αριθμός + 1 μέχρι 6 - κ
    Για j από 1 μέχρι αριθμός - 1
      Temp[i - 1, j] ← Α[i, j] 
    Τέλος_επανάληψης
  Τέλος_επανάληψης
  Για i από αριθμός + 1 μέχρι 6 - κ
    Για j από αριθμός + 1 μέχρι 6 - κ
      Temp[i - 1, j - 1] ← Α[i, j] 
    Τέλος_επανάληψης
  Τέλος_επανάληψης

  Για i από 1 μέχρι 5 - κ
    Για j από 1 μέχρι 5 - κ
      Α[i, j] ← Temp[i, j] 
      Αν Α[i, j] = χ τότε
        υπάρχει ← Αληθής
      Τέλος_αν
    Τέλος_επανάληψης
  Τέλος_επανάληψης
  Για i από 5 - κ + 1 μέχρι 5
    Για j από 5 - κ + 1 μέχρι 5
      Α[i, j] ← -1
    Τέλος_επανάληψης
  Τέλος_επανάληψης
  κ ← κ + 1
Τέλος_επανάληψης
Αν υπάρχει = Ψευδής τότε
  Εμφάνισε "Λυπάμαι έχασες"
αλλιώς
  Εμφάνισε "BINGO"
Τέλος_αν
Τέλος Bingo
Μερεντίτης Νικόλαος
Πληροφορικός

nikolasmer

Σκεφτόμουνα επίσης και το παρακάτω:

Ένας τετραγωνικός πίνακας λέγεται "Αυστηρά Μικρότερος" όταν μετά την αφαίρεση οποιασδήποτε γραμμής και στήλης , προκύπτει πίνακας που το άθροισμα των στοιχείων του είναι αυστηρά μικρότερο από το άθροισμα των στοιχείων του πίνακα πριν την αφαίρεση της γραμμής και στήλης.
Αυτό να ισχύει για οποιαδήποτε γραμμή και στήλη αφαιρεθεί. Να δημιουργήσετε αλγόριθμο που να υλοποιεί το παραπάνω.

Πως φαίνεται σαν θέμα;

Μερεντίτης Νικόλαος
Πληροφορικός

Gnirut

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

Με βάση την αρχική διατύπωσή σου, βασική δυσκολία της άσκησης είναι να καταλάβει κανείς τι ζητάει.

Κατά τη γνώμη μου είναι μια άσκηση δύσκολη μεν αλλά ωραία. Η απαιτούμενη ολίσθηση του πίνακα προς τα πάνω και αριστερά σε κάθε επιλογή του παίκτη δεν είναι τρομερά δύσκολη και δεν απαιτείται δυναμικός πίνακας παρά μόνον ένας αρχικός στατικός 10Χ10.

nikolasmer

Ναι αυτό είναι το θέμα Gnirut. Τσιμπάει πιστεύω αρκετά. Επεξεργάζομαι και μια άλλη μορφή άσκησης με παρόμοιο θέμα. Θα την ανεβάσω σήμερα.
Μερεντίτης Νικόλαος
Πληροφορικός

nikolasmer

Τελική Βελτιωμένη έκδοση του αρχικού παιχνιδιού Νέο BINGO.
Μετά την παρατήρηση του κυρίου Τσιωτάκη το σκέφτηκα διαφορετικά.
Περιμένω τις παρατηρήσεις/διορθώσεις σας.
Μερεντίτης Νικόλαος
Πληροφορικός

nikolasmer

Λύση του παραπάνω παιχνιδιού "ΝΕΟ-BINGO" :D
Μερεντίτης Νικόλαος
Πληροφορικός

nikolasmer

Παράθεση από: nikolasmer στις 26 Φεβ 2013, 02:18:19 ΜΜ
Ένας τετραγωνικός πίνακας λέγεται "Αυστηρά Μικρότερος" όταν μετά την αφαίρεση οποιασδήποτε γραμμής και στήλης , προκύπτει πίνακας που το άθροισμα των στοιχείων του είναι αυστηρά μικρότερο από το άθροισμα των στοιχείων του πίνακα πριν την αφαίρεση της γραμμής και στήλης.
Αυτό να ισχύει για οποιαδήποτε γραμμή και στήλη αφαιρεθεί. Να δημιουργήσετε αλγόριθμο που να υλοποιεί το παραπάνω.

Σκέφτηκα μια λύση για το παραπάνω για πίνακα 5χ5.
Αν υπάρχουν κάποια λάθη, δεκτές φυσικά και με το παραπάνω οποιεσδήποτε διορθώσεις.
Μερεντίτης Νικόλαος
Πληροφορικός

accordionman

Πολυ καλή άσκηση παιδιά αν και δυσκολη. Παρόλα αυτα , ειναι ωραια. Εχει ομως ενα μειον , προφανέστατα η άσκηση δεν ειναι για όλους.  :)