Τρίτη, 29 Δεκεμβρίου 2015

Πιανάκι! Έκδοση 1η (Μ2000)

Ένα πιανάκι σε 68 γραμμές κώδικα! (έχει και κενές μέσα).
Παίζει συγχορδίες (έχω ορίσει να παίζει μέχρι 6 νότες μαζί)
Παίζει με πλήκτρο για στιγμιαία αύξηση έντασης!
Έχει νήμα για ντραμς (δεν έχω φτιάξει ρυθμό από τζαζ είναι), το οποίο μπορώ να βγάλω εκτός ή να το βάλω όποτε θέλω!
Έχει τρία όργανα που επιλέγουμε άμεσα! Έχω ρυθμίσει το χρόνο που κάθε νότα παίζει, αλλά αν θέλουμε το αλλάζουμε στο κώδικα! Όσο είναι πατημένο ένα πλήκτρο δεν ξαναπαίζει! Χρησιμοποιώ ένα αλφαριθμητικό για να κρατάω τα πλήκτρα και να βλέπω πια πατημένα έχουν εξυπηρετηθεί!
Χρησιμοποιώ γενικές μεταβλητές για ευκολία!
Τα νήματα βλέπουν τις μεταβλητές κανονικά, αλλά στο τμήμα Πλήκτρο μόνο τις γενικές και ότι περάσουμε και πάρει με την διάβασε.

Χρησιμοποιώ χωριστή οθόνη (το κάτω μέρος κάνει ολίσθηση) για να διατηρώ την βοήθεια πάντα στο πάνω μέρος!

Φόρμα 60,30
Πένα 14
Οθόνη 5
Τύπωσε "Πιανάκι 001"
Αναφορά 2,{Οδηγίες
1-Έξοδος  3-Ξυλόφωνο 4-Πιάνο 5-Σαξόφωνο   9-Ρυθμός Ναι 0-Ρυθμός Όχι


||A|.|D|F|  |H|J|K| |;|||
|||Z|X|C|V|B|N|M|,|.|/|


Διάστημα - Δυναμώνει τις νότες
-- Γιώργος Καρράς --‘́
}
Οθόνη , Γραμμή+1
Σχέδιο.Νημάτων Διαδοχικο
Παίξε 0 \\ καθαρίζει το σύστημα
Αναμονή 1000
Παίξε 1,1 \\ επαναφέρει τα νήματα!
Γενική πλ$=" ", τέμπο=300, οργ=5, φ=0, εντ$="V90"
Τμήμα Πλήκτρο {
      Διάβασε α$, πατ
      αν πατ τοτε {
      Αν Θέση(πλ$,α$+"-")>0 τότε έξοδος
      Αν ΠΑΙΖΕΙΦΩΝΗ Αλλιώς πλ$<=" ": φ<=0
      Τύπωσε α$
      φ++ : αν φ>6 τότε φ<=1
      Φωνή φ, τεμπο, α$+εντ$ : πλ$<=πλ$+α$+"-": Παίξε φ, οργ
      } αλλιως {
            πλ$<=αλλαγή$(α$+"-","", πλ$)
      }
}
\\ κανάλι 10 είναι το drum machine
Νήμα { Φωνή 10,400,"CV90CC  ab Cd eCC" : Παίξε 10,1 } ως Λ κάθε 2000
Νήμα {
      πλήκτρο "A#2", πατημένο(κωδ("A"))
      πλήκτρο "B2", πατημένο(κωδ("Z"))
      πλήκτρο "C3", πατημένο(κωδ("X"))
      πλήκτρο "C#3", πατημένο(κωδ("D"))
      πλήκτρο "D3", πατημένο(κωδ("C"))
      πλήκτρο "D#3", πατημένο(κωδ("F"))
      πλήκτρο "E3", πατημένο(κωδ("V"))
      πλήκτρο "F3", πατημένο(κωδ("B"))
      πλήκτρο "F#3", πατημένο(κωδ("H"))
      πλήκτρο "G3", πατημένο(κωδ("N"))
      πλήκτρο "G#3", πατημένο(κωδ("J"))
      πλήκτρο "A3", πατημένο(κωδ("M"))
      πλήκτρο "A#3", πατημένο(κωδ("K"))
      \\ https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
      πλήκτρο "B3", πατημένο(0xBC) \\ VK_OEM_COMMA
      πλήκτρο "C4", πατημένο(0xBE) \\ VK_OEM_PERIOD
      πλήκτρο "C#4", πατημένο(0xBA) \\ VK_OEM_1
      πλήκτρο "D4", πατημένο(0xBF) \\VK_OEM_2  
} ως ΑΛ κάθε 50
Τύπωσε "οκ"
Νηματα
Κύριο.Έργο 100 {
      αν πατημένο(κωδ("1")) τότε έξοδος
      αν πατημένο(κωδ("3")) τότε οργ<=14 : τέμπο<=100 ' ξυλόφωνο
      αν πατημένο(κωδ("4")) τότε οργ<=5 : τέμπο<=300 ' Πιάνο
      αν πατημένο(κωδ("5")) τότε οργ<=65 : τέμπο<=500 ' Σαξόφωνο
      αν πατημένο(κωδ("9")) τότε Νήμα Λ Ξεκίνα
      αν πατημένο(κωδ("0")) τότε Νήμα Λ Κράτα
      αν πατημένο(32) τότε { εντ$<="V127" } Αλλιώς εντ$<="V90"
      Τύπωσε "--------"
}
Τύπωσε "Τέλος"