Το πρόγραμμα έχει ανανεωθεί, για να εναλλάσει τον πρώτο (άνθρωπο ή υπολογιστή). Την τιμή του προηγούμενου τη κρατάμε σε μια στατική μεταβλητή (σβήνει με ΚΑΘΑΡΟ αν θέλουμε), Οπότε κάθε φορά δίνουμε το Α (αν έτσι λέμε το τμήμα που γράφουμε το κώδικα παρακάτω). παίζει ο επόμενος πρώτος.
Έχει φτιαχτεί έτσι ώσε μερικές φορές να χάνει και ο Υπολογιστής!
ΑΠΑΡΙΘΜΗΣΗ ποιος {Άνθρωπος=1, Υπολογιστής}
ΣΤΑΤΙΚΗ παίκτης1=ΤΥΧΑΙΟΣ(1,2)
παίκτης1=3-παίκτης1
ΜΕΤΑΒΛΗΤΗ Παίκτης ΩΣ ποιος
παίκτης=παίκτης1
ΟΘΟΝΗ
ΑΝΑΦΟΡΑ {
ΤΡΙΛΙΖΑ
Παίκτης εναντίον υπολογιστή!
(Ο υπολογιστής μπορεί να χάσει!)
}
ΤΜΗΜΑ ΤΡΙΛΙΖΑ (παίκτη ως ποιος){
ΠΙΝΑΚΑΣ Ταμπλό$(1 ΕΩΣ 3, 1 ΕΩΣ 3)=" "
ΛΟΓΙΚΟΣ ΈχουμεΝίκη=ΨΕΥΔΕΣ
ΜΕΤΑΒΛΗΤΗ π=Ταμπλό$()
Τυχαία_Θέση=ΛΑΜΔΑ -> {
=(ΤΥΧΑΙΟΣ(1,3), ΤΥΧΑΙΟΣ(1,3))
}
Κενή_θέση=ΛΑΜΔΑ π (α, β) -> {
=ΠΙΝΑΚΑΣ$(π, α, β)=" "
}
Βάλε_σε_θέση=ΛΑΜΔΑ π (α, β, λ$) -> {
ΕΝΩΣΕ π ΣΤΟ a$()
a$(α, β)=λ$
}
ΜΕΤΑΒΛΗΤΕΣ τ=9, γ=0, σ=0
ΕΠΑΝΕΛΑΒΕ
ΕΠΙΛΕΞΕ ΑΠΑΡΙΘΜΗΣΗ παίκτη
ΜΕ Υπολογιστής
{
παίκτη--
ΠΕΝΑ 15 {
ΤΥΠΩΣΕ "Η κίνησή μου:"
}
Κίνηση_Υπολογιστή()
τ--
Σχεδίασε_Ταμπλό()
Δες_νικητή()
ΑΝ ΈχουμεΝίκη ΤΟΤΕ ΠΕΝΑ 11{ΤΥΠΩΣΕ "Κέρδισα!"}: τ=0
}
ΜΕ Άνθρωπος
{
παίκτη++
ΕΠΑΝΕΛΑΒΕ
ΠάρεΓραμμήΣτήλη("Δώσε γραμμή", &γ)
ΠάρεΓραμμήΣτήλη("Δώσε στήλη", &σ)
ΑΝ Κενή_θέση(γ,σ) ΤΟΤΕ ΚΑΛΕΣΕ Βάλε_σε_θέση(γ,σ,"Ο") : ΕΞΟΔΟΣ
ΠΑΝΤΑ
τ--
Σχεδίασε_Ταμπλό()
Δες_νικητή()
ΑΝ ΈχουμεΝίκη ΤΟΤΕ ΠΕΝΑ 12 {ΤΥΠΩΣΕ "Κέρδισες!"}: τ=0
}
ΤΕΛΟΣ ΕΠΙΛΟΓΗΣ
ΜΕΧΡΙ τ=0 Η ΈχουμεΝίκη
ΑΝ ΔΕΝ ΈχουμεΝίκη ΤΟΤΕ ΤΥΠΩΣΕ "Ισοπαλία!"
ΤΕΛΟΣ
ΡΟΥΤΙΝΑ Σχεδίασε_Ταμπλό()
ΤΥΠΩΣΕ "Γ/Σ 1 2 3"
ΤΥΠΩΣΕ " 1) "; Ταμπλό$(1,1);"|";Ταμπλό$(1,2);"|";Ταμπλό$(1,3)
ΤΥΠΩΣΕ " -+-+-"
ΤΥΠΩΣΕ " 2) "; Ταμπλό$(2,1);"|";Ταμπλό$(2,2);"|";Ταμπλό$(2,3)
ΤΥΠΩΣΕ " -+-+-"
ΤΥΠΩΣΕ " 3) "; Ταμπλό$(3,1);"|";Ταμπλό$(3,2);"|";Ταμπλό$(3,3)
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ Δες_νικητή()
ΈχουμεΝίκη=ΨΕΥΔΕΣ
ΤΟΠΙΚΕΣ ι,κ,τρια$
ΓΙΑ ι=1 ΕΩΣ 3
τρια$=""
ΓΙΑ κ=1 ΕΩΣ 3 {τρια$+=Ταμπλό$(ι,κ)}
ΤσέκαρεΤριάδα()
τρια$=""
ΓΙΑ κ=1 ΕΩΣ 3 {τρια$+=Ταμπλό$(κ,ι)}
ΤσέκαρεΤριάδα()
ΕΠΟΜΕΝΟ
τρια$=""
ΓΙΑ ι=1 ΕΩΣ 3 {τρια$+=Ταμπλό$(ι,ι)}
ΤσέκαρεΤριάδα()
τρια$=""
ΓΙΑ ι=1 ΕΩΣ 3 {τρια$+=Ταμπλό$(ι,4-ι)}
ΤσέκαρεΤριάδα()
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΤσέκαρεΤριάδα()
ΑΝ ΘΕΣΗ(τρια$," ")=0 ΤΟΤΕ ΈχουμεΝίκη=ΈχουμεΝίκη Η ΦΙΛΤΡΟ$(τρια$, ΑΡΙΣ$(τρια$,1))=""
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ Κίνηση_Υπολογιστή()
ΑΝ τ<9 ΚΑΙ Ταμπλό$(2,2)=" " ΤΟΤΕ
ΚΑΛΕΣΕ Βάλε_σε_θέση(2,2,"Χ")
ΑΛΛΙΩΣ
ΤΟΠΙΚΕΣ ι=3, j3, βρέθηκε=ΨΕΥΔΕΣ
ΑΝ τ<=6 ΤΟΤΕ Σκέψη("Χ","Χ")
ΣΤΗ ι=3, κ=3
ΑΝ ΔΕΝ βρέθηκε ΚΑΙ τ<6 ΤΟΤΕ Σκέψη("Ο","Χ")
ΑΝ ΔΕΝ βρέθηκε ΤΟΤΕ
ΕΠΑΝΕΛΑΒΕ
η_θέση_μου=Τυχαία_Θέση()
ΑΝ Κενή_θέση(!η_θέση_μου) ΤΟΤΕ
ΚΑΛΕΣΕ Βάλε_σε_θέση(!η_θέση_μου, "Χ")
ΕΞΟΔΟΣ
ΤΕΛΟΣ ΑΝ
ΠΑΝΤΑ
ΤΕΛΟΣ ΑΝ
ΤΕΛΟΣ ΑΝ
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ Σκέψη(κακό$, καλό$)
ΕΝΩ ι>0
κ=3
ΕΝΩ κ>0
ΑΝ Ταμπλό$(ι,κ)=" " ΤΟΤΕ
Ταμπλό$(ι,κ)=κακό$
Δες_νικητή()
ΑΝ ΈχουμεΝίκη ΤΟΤΕ
Ταμπλό$(ι,κ)=καλό$:ι=0:κ=0: βρέθηκε=ΑΛΗΘΕΣ
ΑΛΛΙΩΣ
Ταμπλό$(ι,κ)=" "
ΤΕΛΟΣ ΑΝ
ΤΕΛΟΣ ΑΝ
κ--
ΤΕΛΟΣ ΕΝΩ
ι--
ΤΕΛΟΣ ΕΝΩ
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΠάρεΓραμμήΣτήλη(τι$, &λ)
ΤΥΠΩΣΕ τι$;":";
ΕΠΑΝΕΛΑΒΕ
λ=ΤΙΜΗ("0"+ΚΟΜ$)
ΜΕΧΡΙ λ>=1 ΚΑΙ λ<=3
ΤΥΠΩΣΕ ΓΡΑΦΗ$(λ,"")
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
}
ΤΡΙΛΙΖΑ παίκτης
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.