“Μαθαίνεις και έχει φάση” για παιδιά γυμνασίου και λυκείου
Χάκαρε το δικό σου minesweeper στον web
Δεν χρειάζεται να ξερεις προγραμματισμό
Γειά Χαρά !
Τσονκ! Με λένε Φρεντ το κοτοπούλι και θα σας δείξω πως να φτιάχνετε τα δικά σας cool παιχνίδια στο web. Πιστέψτε με, δεν θα πιστέψετε πόσο εύκολο θα είναι!
Ένα web-app δεν είναι τίποτα αλλο από μιά σελίδα και έτσι θα τα κάνουμε όλα απλά εδώ στον browser.
Και ο Bowling ball
Μην χάσετε τις περιπέτειες του φίλου μου “Bowling ball” από την ομάδα “Object outrage” όταν εξηγεί όλα αυτά που θα πούμε στον άλλο φίλο του “Sapphire”. Θα ξεραθείτε!
Σουπερ γρηγορη εισαγωγή στην javascript
Θα ξεκινήσουμε με μιά πολύ γρήγορη εισαγωγή στην javascript την γλώσσα προγραμματισμού του web. Θα κάνει την συνέχεια πολύ πιο εύκολη. Μην ανησυχείτε θα είμαι σύντομο.
Και επίσης να είστε σίγουροι ότι θα κάνουμε πράγματα μαζί από την αρχή.
Τι θα χρειαστείτε
Πρέπει να είστε σε ένα υπολογιστή laptop ή desktop, το τηλέφωνο σας η ένα tablet δεν είναι κατάλληλο.
Θα είναι καλύτερο να χρησιμοποιήσετε τον Chrome browser. Αν δεν τον έχετε μπορείτε να το πάρετε από εδώ - είναι τσαμπα!
Τωρα ανοίξτε την κονσόλα προγραμματιστή
Πατήστε στις επιλογές του μενού που βλέπετε παρακάτω.
Θα μιλήσουμε για
- Τιμές: αριθμούς και άλλες
- Μεταβλητές: μπορούν να κρατάνε τιμές
- Συναρτήσεις: υπολογίζουν τιμές
- Πίνακες: λίστες με τιμές
- Αντικείμενα: έχουν ιδιότητες
- Ελέγχους: Αν αυτό τότε εκείνο
- Επαναλήψεις: Τρέξτο πολλές φορές
Τιμές
Οι τιμές στην javascript δεν είναι μόνο αριθμοί. Μπορεί να είναι κομματια κειμένου, ή τιμές για το “σωστό” ή το “λάθος”
Πράξεις
Μπορείς να κανεις αριθμητική. Πληκτρολόγησε στην κονσόλα:
1231 * 32 + 142
Όχι μόνο νούμερα
Μπορείς να κάνεις πράξεις και με αλλες τιμές.
"Hello" + "Bob"
και
3 * 5 == 15
("=="
είναι η ισότητα)
Μεταβλητές
Μπορούν να αποθηκεύσουν και χρησιμοποιηθούν ώς τιμές.
Δώσε τους ονόματα για να θυμάσε τι κάνουν:
let hoursOnPhone = 16
hoursOnPhone = hoursOnPhone + 2
const hoursToSleep = 24 - hoursOnPhone
Συναρτήσεις
Είναι όπως στα μαθηματικά, περνουν μιά τιμή και επιστρέφουν ένα αποτέλεσμα f(x) = 2 * x + 3
function f(x) {
return 2 * x + 3
}
Ή πιό απλά:let g = (x) => x + 7
Άλλες παράμετροι
(name) => 'Hi' + name
(l, w) => l * w
Πίνακες
Είναι απλά λίστες με τιμές. Μπορείς να τα αποθηκεύσετε σε μεταβλητες και έχουν μέγεθος.
let love = ["cake", "donut", "pie"]
love[1] = "ice cream"
love.length
Αντικείμενα
Έχουν ιδιότητες και δικές τους συναρτήσεις.
let myself = {name: "Melina", age: 16}
myself.age = 17
myself.name.length
myself.name.substring(2)
Έλεγχοι
Τρέξε κώδικα μόνο όταν πρέπει.
let x = 3
if (x * 2 + 7 > 12) {
x = 4
}
Επαναλήψεις
Τρέξε ένα κομμάτι κώδικα πολλές φορές.
let talking = ""
for (let i = 0; i < 5; i++) {
talking = talking + "blah "
}
Ώρα για δουλειά !
Τσόνκ - Τσόνκ! Λοιπόν παιδιά προχωράμε.
Θα φτιάξουμε το γνωστό παιχνίδι minesweeper. Σίγουρα το έχετε παίξει.
repl.it
Εκεί γράφουμε και παίζουμε.
Θα χρησιμοποιήσουμε το site repl.it όπου μπορείται να προγραμματίζετε online και να σώζετε τις δημιουργίες σας. Πηγαίνετε σε αυτό το link και κανετε “fork” για να φτιάξετε το δικό σας αντίγραφο.
Τώρα πατήστε το link στα δεξιά και παίξτε το παιχνίδι.
Παιχνίδι στο web
Ένα παιχνίδι στο web είναι απλά μιά σελίδα HTML η οποία αποτελείται από από ένα από κεντρικό αρχείο HTML το οποίο φωρτόνει ένα αρχείο στυλ CSS όπου μπορούμε να καθαρίσουμε την εμφάνιση του παιχνιδιού, και το αρχείο με τον κώδικα javascript πού υλοποιεί την λειτουργία του.
CSS
Ας ξεκινήσουμε με το αρχείο CSS. Έχει πολλές παραμέτρους που καθορίζουν τα χρώματα και το μέγεθος από τα τετραγωνάκια. Δοκιμάστε να το αλλάξετε και πατήστε επαναφόρτωση. Δείτε το σχόλιο πάνω από την γραμμή color: transparent”. Αλλάξτε και δείτε τι γίνεται. Ναι η πίνακας έχει τα πάντα πάνω από την αρχή που παίζουμε απλά το κείμενο έχει διαφανές χρώμα και είναι αόρατο!
Javascript
Τώρα ας πάμε στο κομμάτι του κώδικα javascript. Όπως μπορείτε να δείτε υπάρχουν πολλά σχόλια που εξηγούν κάθε κομμάτι. Μπορείτε να αντιγράψετε κάθε κομμάτι κώδικα με copy paste στην κονσόλα προγραμματιστή, να το τρέξετε και να δείτε τι κάνει. Δείτε την μεταβλητή mineSize, αλλάξτε την και δείτε τι γίνεται. Τώρα κοιτάξτε στην συνάρτηση putInTheBombs και την γραμμή putInTheBombs(15). Μπορείτε να καταλάβετε τί κάνει? Τι νομίζετε ότι θα γίνει αν αλλάξετε το 15 με 0 ή με 100?
Διαλέξτε Emoji
Παρακάτω μπορείτε να δείτε την συνάρτηση που κατασκευάζει τα στοιχεία HTML για τα τετράγωνα κουμπάκια του πίνακα. Είδατε ότι χρησιμοποιούμε emoji γιά τις βόμβες? Τα emojis είναι κόλλημα σωστά? Βρείτε ένα άλλο emoji και χρησιμοποιήστε το αντί για την βόμβα.
Ανοίγοντας άδεια
Μετά κοιτάξτε την συνάρτηση reveal πού καλείται όποτε πατάμε σε ένα τετραγωνάκι. Είδατε ότι μπορεί να καλέσει τον εαυτό της κάποιες φορές? Αυτό γίνεται όταν πάταμε σε ένα άδειο τετραγωνάκι και όλα τά άδεια γύρω του ανοίγουν και αυτά.
Αναδρομή
Αυτό λέγεται αναδρομή και χρησιμοποιείτε στα μαθηματικά. Είναι πολύ δυνατή.
Ας πούμε ότι έχετε μία συνάρτηση f όπου το
f(0) είναι 1 και το f(i) = 2 * f(i-1).
Έτσι το f(1) = 2 * f(0) = 2 και το f(2) = 2 * f(1) = 4.
Προσπαθήστε να μαντέψετε πόσο μπορεί να είναι το f(50).
Τώρα δοκιμάστε να το υπολογίσετε. Δεν είναι εύκολο έτσι?
Μην ζορίζεστε, κάντε το στην κονσόλα προγραμματιστή:
Τώρα δοκιμάστε f(50). Τρώγεστε να δοκιμάσετε και το f(10000)? Μην μασάτε, κάντε το!
function f(i) {
if (i == 0) return 1;
else return 2 * f(i - 1);
}
Γράψτε κώδικα!
Αρκετά με τα μαθηματικά. Τώρα γυρίστε πίσω στον κώδικα και ψάξτε το. Απλά χακάρετε όσο πάει. Μην ανησυχείτε αν κάνετε λάθη. Υπάρχει πάντα το “undo” και στην χειρότερη κάνε πάλι fork από την αρχή. Αισθάνεστε λίγο από χάκερ τώρα;
Περισσότερα;
Αν θέλετε κι άλλα κοιτάξτε την βελτιωμένη έκδοση του minesweeper με πολλές βελτιώσεις και το επόμενο μου παράδειγμα του γνωστού παιχνιδιού κρεμαλα.
Αν θέλετε κοιτάξτε και το blog μου όπου εξηγώ πώς έγινε αυτό το site.