Δευτέρα 24 Αυγούστου 2015

Μ2000 παράδειγμα: Σκακιέρες

Σκοπός του παραδείγματος είναι να κατανοήσει ο μαθητής την χρήση γραφικών με πολλαπλασιαστή που αυξάνει το μέγεθός τους, ώστε να σχηματίσει στην οθόνη τρείς φορές μια σκακιέρα με πιόνα σε τρία μεγέθη. Έχει προστεθεί κώδικας που εξάγει την οθόνη στο δίσκο και δείχνει την χρήση της εντολής Εικόνα Εξαγωγή για αρχείο jpg με 100% ποιότητα, όπου καταφέρνει ο αλγόριθμος να μειώσει το μέγεθος αρχείου (το βλέπουμε) και  να διατηρήσει την αρχική ποιότητα. Για να το δούμε αυτό τυπώνουμε την εικόνα μεγεθυμένη τρεις φορές!

Σε ένα αρχείο "σκακιερες.gsb" βάζουμε το παρακάτω. Μέσα από το περιβάλλον της γλώσσας ανοίγουμε το φάκελο του χρήστη με την εντολή Win Dir$ ή Σύστημα Κατ$ και εκεί μεταφέρουμε το αρχείο. Άλλος τρόπος είναι μέσα από το περιβάλλον να δώσουμε σ Α και να αντιγράψουμε το Α μετά σ Π και να αντιγράψουμε το Π και τέλος να σώσουμε Σώσε σκακιερες  (δεν χρειάζεται εισαγωγικά - Στην αναθερώρηση 49 αν έχουμε τελικό ς θέλει εισαγωγικά στο όνομα,Σώσε "σκακιερες" , θα διορθωθεί στην 50). Ξεκινάει το πρόγραμμα με το Α και enter.

Η Μ2000 διαβάζει και UTF8 κώδικα και απλό ANSI, και το ξεχωρίζει αυτόματα.

Υπάρχει και άλλος τρόπος: Τρέχουμε το M2000.exe και γράφουμε:
Σ "σκακιερες.gsb"
Τώρα αντιγράφουμε το παρακάτω και πατάμε Esc
Δημιουργήσαμε το αρχείο στο δίσκο, οπότε πρέπει να το φορτώσουμε:
Φόρτωσε σκακιερες
Μετά τρέχουμε το Α
Α

Υπάρχουν βοηθητικά πλήκτρα. Πχ το ctrl+A σώνει στο όνομα που είχαμε φορτώσει τελευταία. Το ctrl+U ανοίγει τις ρυθμίσεις της κονσόλας. Το ctrl+L ή Ctrl+Φ δίνει έτοιμο το Load ή το Φόρτωσε. Το Ctrl+C καθαρίζει τη κονσόλα (αν θέλουμε όλες τις γραμμές, δηλαδή να φύγουν και οι πάνω γραμμές που δεν ολισθαίνουν στο ξεκίνημα, δίνουμε οθόνη, 0 ή Φόρμα 60,30 ή άλλος συνδυασμός. Δείτε ότι στην εντολή οθόνη δεν έχουμε δώσει το πρώτο νούμερο που είναι το χρώμα φόντου για να χρησιμοποιήσει το τρέχον)
Πλήκτρα που συνήθως χρησιμοποιούμε είναι το Ctrl+N και Ctrl+M που δείχνουν τα τρέχοντα τμήματα και τα τμήματα στο δίσκο.  Όταν ανοίγουμε το διορθωτή σε κάποιο τμήμα μπορούμε να δούμε και άλλα τμήματα με το F12 και κλικ στο όνομα τμήματος, δείχνει επίσης και την παλιά έκδοση του τμήματος που αλλάζουμε). Στον διορθωτή παίζουν αρκετά πλήκτρα, μερικά από τα οποία φαίνονται στο μενού επιλογής (βγαίνει με δεξί κλίκ του ποντικιού). Αυτό το μενού ολισθαίνει και δείχνει και άλλες εντολές. Επίσης έχει την ιδιότητα να μεγενθύνεται όταν το τραβάμε από κάτω δεξιά. Αν επιλέξουμε στην γραμμή εντολών το Latin θα έρθουν τα μενού στα αγγλικά, ενώ με Greek θα έρθουν στα Ελληνικά, όπως και τα μηνύματα λάθους.


ΤΜΗΜΑ Α {
οθονη #103399,0
ανανεωση 10000
λ=0
μ=αληθες
σχ=1000
για λλ=1 εως 3 {
      σχ=σχ+λ*9
      συ=1000
      λ=300*λλ
      για κ=0 εως 7 {
            για ι=0 εως 7 {
                  θεση σχ+ι*λ, συ+κ*λ
                  αν μ τοτε { χ=3 } αλλιως χ=7
                  πολυγωνο χ, 0,λ,λ,0,0,-λ,-λ,0
                  μ~
                  θεση σχ+ι*λ, συ+κ*λ
                  αν κ=1 τοτε Π 1, λ
                  αν κ=6 τοτε Π 0, λ
            }
                  μ~     \\ εδώ έχουμε το μ = όχι μ
      }
      για ι=0 εως 7 {
            θεση σχ+ι*λ+λ/2.5, συ+κ*λ
            επιγραφη χαρ$(ι+65),"Arial", λ/50
            θεση σχ-λ/3, συ+ι*λ+λ/3
            επιγραφη γραφη$(ι+1),"Arial", λ/50
      }
     ανανεωση
}
ανανεωση 10
θεση 0,0 \\ εδώ είναι το πρόσθετο μέρος για να σώσει την  οθόνη με δυο φορμά, Jpg και Bmp
καθαρο α$
αντεγραψε κλιμαξ.χ, κλιμαξ.υ στο α$ \\ αντιγράφουμε την οθόνη σε ένα αλφαριθμητικό
εικονα α$ εξαγωγη "screen001.jpg", 100
αντεγραψε "screen001.bmp"   \\ αυτή είναι μια εντολή για απευθείας σώσιμο της οθόνης
\\ εδώ  μας δείχνει το μήκος των αρχείων
Τύπωσε αρχειου.μηκος("screen001.jpg"), αρχειου.μηκος("screen001.bmp")
}
ΤΜΗΜΑ Π {
\\ εδώ φτιάχνουμε το άσπρο ή μαύρο πιόνι, χρησιμοποιούμε σχετικές συντεταγμένες
ΔΙΑΒΑΣΕ ΧΡ, ΠΛΕΥΡΑ
Λ=ΠΛΕΥΡΑ/7000
ΑΝ ΧΡ<>0 ΤΟΤΕ ΧΡ=15
ΒΗΜΑ 3500*λ,2500*λ
Κ=ΠΕΝΑ
ΠΕΝΑ ΧΡ
ΠΟΛΥΓΩΝΟ ΧΡ,3000*Λ,4000*Λ,-6000*Λ,0,3000*Λ,-4000*Λ
ΚΥΚΛΟΣ ΓΕΜΙΣΜΑ ΧΡ, 2000*Λ
ΒΗΜΑ -3500*Λ,-2500*Λ
ΠΕΝΑ Κ
}



χρωματισμένα αυτόματα (έκδοση 8. αναθ. 69)








Σε Windows λειτουργικό, σε νεότερες εκδόσεις της Μ2000, μπορούμε να βάλουμε την εντολή  Ομαλά Ναι  (με Ομαλά Όχι γυρνάμε στο αρχικό), όπου για τα γραφικά χρησιμοποιείται το GDI+ (ενώ το βασικό είναι το GDI32, το οποίο είναι πιο γρήγορο). Με αυτό πετυχαίνουμε να έχουμε ομαλές ακμές. Η εντολή στα αγγλικά είναι Smooth On και Smooth Off. Αν λοιπόν βάλουμε την εντολή έστω στη πρώτη γραμμή του τμήματος Α θα έχουμε το παρακάτω (σε μεγέθυνση Χ3)
στο Ομαλά ναι:

 ή αν το αφήσουμε στο Ομαλά Όχι:

Δείτε ότι οι αριθμοί και στις δυο περιπτώσεις έχουν κάποια χρώματα, που δεν είναι κίτρινα. Αυτό συμβαίνει γιατί έχει μπει το Clear Type για οθόνες TFT. Προς το παρόν (έκδοση 9.4) τα γράμματα συνεχίζουν να εμφανίζονται με χρήση του GDI32.

Σε Linux τρέχει το GDI+ αλλά δεν κάνει smoothing (ενώ παίρνει την εντολή), προφανώς δεν κάνει κάτι επιπλέον από το GDI32 σε αυτό το θέμα. Αν κάποιος βρει ότι σε κάποια έκδοση του Wine, όντως δουλεύει το GDI+ όπως στα Windows, ας ενημερώσει.
 


Υπάρχει σκάκι στη Μ2000!
Ο κώδικας έχει περίπου 1000 εντολές της γλώσσας, είναι το μεγαλύτερο πρόγραμμα στο Info αρχείο (πιο μεγάλο κατά 33% από παράδειγμα με compiler μιας C τύπου γλώσσας που έχει όλα τα σταδια και με έλεγχο λαθών). Σχεδιάστηκε για να παίζει με δυο φυσικούς παίκτες με σκοπό να καταγράφει τις κινήσεις με έναν στάνταρ τρόπο, και να δίνει τη λίστα στο τέλος. Αυτός ο τρόπος καταγραφής χρησιμοποιείται από εξωτερικούς "εγκεφάλους" σκακιού, και μπορούμε να χρησιμοποιήσουμε έναν (όπου είναι αδύνατον να κερδίσουμε). Έτσι προέκυψε και το παιχνίδι εναντίον της μηχανής (τα μαύρα παίζουν με την ΤΝ). Το πρόγραμμα αν δεν βρει τον "εγκέφαλο", πάει σε παιχνίδι δυο ατόμων (δεν έχει δική του ΤΝ (τεχνητή νοημοσύνη) για να παίξει, αλλά έχει όλη τη γνώση για να ελέγχει αν μπορούν να γίνουν κινήσεις και φυσικά τη κωδικοποίηση της νέας θέσης. Μπορούμε να ξεκινάμε παιχνίδι με επιλεγμένη σειρά FEN σαν παράμετρο ή με επικόλληση σε πεδίο για αυτό . FEN λέγεται η κωδικοποίηση: https://www.chess.com/terms/fen-chess. Μπορούμε να πάμε πίσω μπρος τις κινήσεις. Η κίνηση των πιονιών γίνεται με το ποντίκι ή με συντεταγμένες γράφοντάς τις (όπως θέλουμε, και τα δυο είναι συνέχεια αποδεκτά). 
Η ΤΝ που χρησιμοποιώ είναι από εδώ: https://stockfishchess.org/ η stockfish_20090216_x64_modern.exe, στην οποία αλλάζουμε όνομα σε engine.exe και την τοποθετούμε στο φάκελο χρήστη που ανοίγει  στον explorer των Windows με win dir$ ή Σύστημα Κατ$ με ελληνικές εντολές όπου Κατ$ είναι ο τρέχον κατάλογος. Αν έχουμε αλλάξει κατάλογο τότε το dir user ή κατάλογος χρήστη μας πάει στον κατάλογο του χρήστη.

Εδώ είναι ο κώδικας:

Δείτε εδώ σχεδιασμός σκακιέρας με χρήση Unicode χαρακτήρων σκακιού (δηλαδή δεν σχεδιάζουμε δικά μας πιόνια, γιατί υπάρχουν έτοιμα).


Δεν υπάρχουν σχόλια:

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

You can feel free to write any suggestion, or idea on the subject.