####ID 47-walls #### Άσκηση: #### #### Στο αρχείο room1.txt (όπως και στο room2.txt -- κατεβάστε τα και τα δύο όπου και τα user.py, tester.py) βρίσκεται #### το σχέδιο (κάτοψη) ενός δωματίου. Το δωμάτιο είναι ορθογώνιο και με * συμβολίζεται η ύπαρξη τοιχώματος. Από την #### πρώτη γραμμή του αρχείου μπορείτε να συμπεράνετε τον αριθμό των στηλών και τον αριθμό των γραμμών μπορείτε να #### τον βρείτε από το πόσες γραμμές έχει το αρχείο (η πρώτη και η τελευταία γραμμή και στήλη είναι τοίχωμα). Για παράδειγμα #### στο αρχείο room1.txt το δωμάτιο που περιγράφεται είναι διαστάσεων 10 x 16 (γραμμές x στήλες). #### Πάντα το δωμάτιο έχει γύρω-γύρω τοίχο (αλλά υπάρχουν και μέσα τοίχοι). #### #### Το αρχείο room1.txt #### #### **************** #### * ****** * #### * * * #### * ** * * #### * ** * * #### * ** * * #### * ** * * #### * * #### * * #### **************** #### #### Γράψτε μια συνάρτηση #### #### countfreepoints(s) #### #### που διαβάζει το αρχείο με όνομα s και επιστρέφει το πόσα σημεία του δωματίου (π.χ. πόσα από τα 10x16 σημεία του room1.txt) #### δε γειτονεύουν με τοίχωμα και δεν είναι τοίχωμα τα ίδια. #### Ένα σημείο θεωρείται ότι γειτονεύει με τα 8 γειτονικά του σημεία όπως φαίνεται παρακάτω. #### #### ... #### .x. #### ... #### #### Για το δωμάτιο του αρχείου room1.txt μπορείτε να δείτε παρακάτω τα σημεία που είναι τοίχωμα (*) ή γειτνιάζουν με τοίχωμα (ο). #### Τα σημεία που δεν έχουν σημάδι επάνω τους είναι τα ελεύθερα που πρέπει να μετρήσετε. #### #### **************** #### *oooo******oooo* #### *o oooooo*o o* #### *o o**o o*o o* #### *o o**o o*o o* #### *o o**o o*o o* #### *o o**o o*o o* #### *o oooo ooo o* #### *oooooooooooooo* #### **************** #### #### Μπορείτε να υποθέσετε ότι το αρχείο δεν περιέχει παραπανίσιες γραμμές και ότι δεν υπάρχουν κενοί ή άλλοι χαρακτήρες #### μετά το δεξιό τοίχο. #### #### *** Γενικές Οδηγίες: *** #### #### Γράφετε τον κώδικά σας αποκλειστικά ανάμεσα στις γραμμές START και STOP παρακάτω. #### Δεν πρέπει να πειράξετε καθόλου τις υπόλοιπες γραμμές #### #### Για να τρέξετε το πρόγραμμά σας (αποθηκευμένο στο αρχείο user.py) δίνετε την εντολή #### #### python3 user.py #### #### ενώ για να το ελέγξετε με τον tester δίνετε την εντολή #### #### python3 tester.py #### #### φροντίζοντας τα αρχεία user.py και tester.py να είναι στον ίδιο κατάλογο (directory) #### #### ****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ**** #### Μη γράψετε καμιά εντολή εισόδου (input) ή εξόδου (print) #### στον κώδικα που θα βάλετε ανάμεσα στα START και STOP. Αυτά είναι ήδη γραμμένα. #### Αν βάλετε και σεις το πρόγραμμά σας βγαίνει λάθος. #### filename = "room1.txt" #### #### #### Υποθέσεις: #### #### Στο σημείο αυτό έχει οριστεί το όνομα του αρχείου με την κάτοψη του δωματίου στη μεταβλητή filename #### #### Απαιτήσεις: #### #### Στο τέλος του προγράμματός σας θα πρέπει #### #### η συνάρτηση countfreepoints #### #### να υπολογίζει αυτό που περιγράφεται στην εκφώνηση. #### Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και πάνω ####START Από δω και κάτω γράφετε το πρόγραμμά σας.---------------------------------------------------------------- def countfreepoints(s): #### ####STOP Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και κάτω-------------------------------------------------------- print("Η απάντηση είναι {}.".format(countfreepoints(filename))) ####