Python programming: Pygame powered games!

Στο παρόν άρθρο θα εξερευνήσουμε τις δυνατότητες του Pygame. Πρόκειται για ένα καταπληκτικό module της Python, το οποίο μάς επιτρέπει να φτιάξουμε παιχνίδια γραφικών σχετικά εύκολα. Η γνωριμία θα ξεκινήσει με την εγκατάσταση του Pygame, ενώ στη συνέχεια θα μάθουμε πώς λειτουργούν τα προγράμματα που τρέχουν σε παράθυρα. Αυτό θα γίνει με τη βοήθεια μερικών απλών παραδειγμάτων. Πάντως μη νομίζετε ότι οι εφαρμογές μας θα είναι περιορισμένες στα Windows. Τα καμάρια μας θα τρέχουν σε κάθε λειτουργικό με παραθυρικό περιβάλλον!

Python_3
Μέχρι τώρα σας έχουμε δείξει απλά παιχνίδια, τα οποία θα μπορούσατε κάλλιστα να παίζατε σ’ ένα τερματικό του PDP11! Πρέπει βέβαια να ομολογήσουμε ότι ένα adventure κειμένου δεν θα είχε καλή τύχη στις μέρες μας. Αυτή η εισαγωγή όμως ήταν απαραίτητη για δύο λόγους: Για να μάθετε τα βασικά της Python και για ν’ αποκτήσετε αλγοριθμικό τρόπο σκέψης. Πιστεύουμε ότι με το text adventure πετύχαμε και τα δύο!

Είναι προφανές ότι η γνωριμία σας με την Python δεν θα ήταν σωστό να ξεκινήσει μ’ εφαρμογές γραφικών. Σ’ αυτή την περίπτωση θα έπρεπε να μάθετε πάρα πολλά πράγματα, σ’ ελάχιστο χρόνο. Αυτό όχι μόνο δεν είναι εύκολο, αλλά δεν είναι και καθόλου διασκεδαστικό. Οι εφαρμογές γραφικών σχεδιάζονται και λειτουργούν πολύ διαφορετικά, σε σχέση με τις εφαρμογές της κονσόλας. Αν είχαμε ξεκινήσει με τέτοια προγράμματα, θα έπρεπε να κατανοήσετε όλες αυτές τις ιδιαιτερότητες κι επιπλέον να μάθετε όλα τα δομικά στοιχεία της Python, ταυτόχρονα. Τώρα, βέβαια, πιστεύουμε αυτή η δυσκολία έχει ξεπεραστεί: Έχετε μάθει τα βασικά της γλώσσας κι έχετε φτιάξει μερικά απλά παιχνιδάκια για τη γραμμή εντολών. Επομένως, νομίζουμε ότι μπορείτε να περάσετε στις πολύ πιο ενδιαφέρουσες εφαρμογές γραφικών. Αν δεν το ‘χετε συνειδητοποιήσει, σ’ αυτές ανήκουν κι όλα τα σύγχρονα παιχνίδια! Έτσι, για να διευκολύνουμε αυτή τη μετάβαση, θ’ ασχοληθούμε με το module pygame. Νομίζουμε ότι τ’ όνομα του μιλάει από μόνο του ;)

Διαβάστε όλο το άρθρο στο deltaHacker Απριλίου (τεύχος 007). Όλες τις πληροφορίες για τις συνδρομές στο deltaHacker, το μοναδικό μηνιαίο περιοδικό με θεματολογία ethical hacking και security που δεν κυκλοφορεί στα περίπτερα και απευθύνεται σε όλους, θα τις βρείτε εδώ ακριβώς. Για παραγγελίες μεμονωμένων τευχών ή συνδρομών συμπληρώστε τη σχετική φόρμα.

Σημείωση: Οι συνδρομές μπορούν να ξεκινούν από όποιο τεύχος επιθυμείτε, αρκεί να υπάρχει σε stock.

Posted via email from the subZraw effect | Comment »

Το παρασκήνιο μιας εκτέλεσης!

Πώς γράφονται τα προγράμματα; Πώς χρησιμοποιείται η μνήμη για την εκτέλεση ενός προγράμματος; Τι αποθηκεύεται και πού; Πότε και από ποιον; Σε μια προσπάθεια να μάθουμε όσα συμβαίνουν κατά την εκτέλεση ενός προγράμματος, απαντάμε σε όλα αυτά τα ερωτήματα — και σε αρκετά ακόμα!

Program_internals
Ένα πρόγραμμα, στη μορφή που το γράφει ο δημιουργός του, αποτελείται από εντολές κατανοητές μόνο από ανθρώπους και ονομάζεται πηγαίος κώδικας ή απλά κώδικας. Αυτός ο κώδικας περνάει από μια επεξεργασία με ειδικά εργαλεία, που ονομάζονται μεταγλωττιστές (compilers) ή διερμηνευτές (interpreters), για να μεταφραστεί σε μια γλώσσα κατανοητή μόνο από τον επεξεργαστή του υπολογιστή. Τώρα θα αναρωτηθούν κάποιοι: Σε τι διαφέρει ένας compiler από έναν interpreter; Σε πολλά! Ένας compiler μεταφράζει ολόκληρο τον πηγαίο κώδικα και παράγει ένα ολοκληρωμένο πρόγραμμα, το οποίο ονομάζουμε εκτελέσιμο (βλ., π.χ., τα γνωστά αρχεία exe στα Windows). Ένα εκτελέσιμο αρχείο αποτελείται από εντολές στη λεγόμενη γλώσσα μηχανής. Όπως αντιλαμβάνεστε, αυτή η γλώσσα είναι κατανοητή από τον υπολογιστή χωρίς να απαιτούνται περαιτέρω μεταφράσεις. Οι μεταγλωττιστές χρησιμοποιούνται σε πηγαίο κώδικα που γράφτηκε σε C, C++, Pascal κ.ά. Οι διερμηνευτές (interpreters) από την άλλη μεταφράζουν τον πηγαίο κώδικα εντολή προς εντολή. Συνήθως φορτώνουν τον πηγαίο κώδικα στη μνήμη, διαβάζουν μία γραμμή, την εκτελούν και προχωρούν στην επόμενη. Οι διερμηνευτές, λοιπόν, δεν παράγουν κανένα νέο αρχείο. Διερμηνευτές υπάρχουν για πολλές γλώσσες και μάλλον για όλες όσες χρησιμοποιούνται στο web (PHP, ASP κ.ά.).
Φυσικά, κάθε προσέγγιση έχει τα καλά αλλά και τα κακά της: Ένα μεταγλωττισμένο πρόγραμμα εκτελείται πολύ πιο γρήγορα από κάποιο που διερμηνεύεται γραμμή προς γραμμή. Επίσης, ένα μεταγλωττισμένο πρόγραμμα είναι σίγουρα απαλλαγμένο από κάθε συντακτικό λάθος. Μιλάμε για τα λάθη που μπορεί να κάνει ένας προγραμματιστής επειδή πληκτρολογεί βιαστικά ή γιατί ξέχασε έναν απαραίτητο χαρακτήρα (π.χ. εκείνον που τερματίζει μία γραμμή κώδικα). Αυτό για την απουσία συντακτικών σφαλμάτων είναι βέβαιο, διότι πριν ξεκινήσει την εργασία του ένας μεταγλωττιστής, εξασφαλίζει ότι ο πηγαίος κώδικας είναι 100% σωστά γραμμένος. Ένα εκτελέσιμο πρόγραμμα είναι —τουλάχιστον θεωρητικά— πολύ δύσκολο να διαβαστεί από κάποιον τρίτο, ο οποίος προσπαθεί να μάθει την εσωτερική/κρυφή λογική ενός προγράμματος.
Από την άλλη, τα προγράμματα που περνάνε από διερμηνευτές είναι πολύ πιο εύκολα στην συντήρηση και στην επέκταση, αφού αν μη τι άλλο δεν απαιτείται η χρονοβόρα διαδικασία του compilation κάθε φορά που αλλάζουμε/δοκιμάζουμε κάτι. Για προγράμματα στα οποία η ταχύτητα δεν είναι κρίσιμη και στα οποία επεμβαίνουμε συχνά, οι διερμηνευόμενες (interpreted) γλώσσες είναι ιδανικές!
Για λόγους πληρότητας, πρέπει να αναφέρουμε και μια τρίτη κατηγορία προγραμμάτων. Πρόκειται για εκείνα που εκτελούνται σε εικονικές μηχανές (virtual machines ) και δεν μεταγλωττίζονται σε γλώσσα μηχανής αλλά σε μία γλώσσα κατανοητή από την εικονική μηχανή. Αυτή η προσέγγιση ακολουθείται σε γλώσσες όπως η Java και για το γνωστό Microsoft .Net. Βέβαια μη νομίζετε ότι αυτή η ιστορία είναι και πολύ καινούρια! Τη 10ετία του 1980 υπήρχε το περίφημο P-System της Pascal, για το οποίο είχαν γραφτεί πολλές εφαρμογές! Το κύριο πλεονέκτημα που προκύπτει από τη χρήση μιας εικονικής μηχανής είναι η φορητότητα. Ένα πρόγραμμα που γράφτηκε για μία εικονική μηχανή θα μπορεί να εκτελείται σε κάθε υπολογιστή και σε κάθε λειτουργικό σύστημα, στο οποίο τρέχει η σχετική εικονική μηχανή. Όσο για την ταχύτητα εκτέλεσης, ένα πρόγραμμα που τρέχει σε εικονική μηχανή είναι συνήθως ταχύτερο από ένα διερμηνευόμενο (interpreted) αλλά πιο αργό από ένα μεταγλωττισμένο σε γλώσσα μηχανής.

Διαβάστε ολόκληρο το άρθρο στο deltaHacker Ιανουαρίου (τεύχος 004).

Για αγορές τευχών ή συνδρομών στο περιοδικό deltaHacker, απλά συμπληρώστε τη φόρμα.

Σημείωση: Οι συνδρομές μπορούν ν’ αρχίζουν από όποιο τεύχος επιθυμείτε, αρκεί να υπάρχει σε stock.

Το deltaHacker είναι το μοναδικό, μηνιαίο συνδρομητικό περιοδικό με θεματολογία ethical hacking και infosec που δεν κυκλοφορεί στα περίπτερα. Αν δεν το διαβάζετε ακόμα, κάτι μας λέει ότι σύντομα θ’ αρχίσετε. Εκτός δηλαδή κι αν δεν αγαπάτε πολύ-πολύ-πολύ τον υπολογιστή σας, ούτε την τεχνολογία :S

Posted via email from the subZraw effect | Comment »