M2000 Γλώσσα Προγραμματισμού
Θέλετε να αντιδράσετε στο μήνυμα; Φτιάξτε έναν λογαριασμό και συνδεθείτε για να συνεχίσετε.

Παιχνίδι Pong2

Πήγαινε κάτω

Παιχνίδι Pong2 Empty Παιχνίδι Pong2

Δημοσίευση από m2000 Δευ Ιουν 13, 2016 12:58 am

Το γράφουμε σε αρχείο gsb (Σ "pong2.gsb" και επικόλληση και Esc και μετά Load pong2 και τρέχει άμεσα)

MODULE A {\\ Πρόγραμμα Μοναχός - Παιχνίδι τύπου Pong
\\ Version 2
γραμματοσειρά "Tahoma"
δυσκολια=2 \\ 3 περισσότερο
Σβήσε
Τύπος 18, 8000,2400
Κίνηση Κέντρο
Τμήμα Χτύπος {
              Φωνή 2, 100,"g"
              Παίξε 2, 127
}
Διαμέσου Συναρτήσεις
Περιθώριο 12 {
Ανανέωση 5000
Πίνακας Ψ$()
Ψ$()=Αρ$()
Οθόνη 5,0
Πένα 14
Ανανέωση 50
α$=""
β$=""
β1$=""
Θέση 0,0
Βάψε 300,Υ.σημεία, 15
θέση 0,0
Αντέγραψε 300,300 στο α$
Αντέγραψε 300,1800 στο β$
Αντέγραψε 300,Υ.σημεία στο β1$
Πάλι:
Δείκτη.Μορφή Κρύψε
οθόνη #222222,0
Τύπωσε @(5,5),
Πένα 7 {
      Αναφορά {Παιχνίδι Μοναχός
            Πάτησε P/Π για παύση
            Πάτησε διάστημα...
            ...για τερματισμό
            }
      }
Για ι=0 έως Υ.σημεία ανά ύψος.σημείου*2 { Θέση 0,ι : Χάραξε Χ.σημεία, 0, #555555 }
χκ=αΚ(χ.σημεία/2-150)
χκ0=χ.σημεία/2
χκ03=χ.σημεία/3
χκ1=χκ-300*7
χκ2=χκ+900
χα0=850
χα00=0
χα2=χα0+150
χα1=400

χδ1=χ.σημεία-1000
χδ2=χδ1+600
Για ι=0 έως Υ.σημεια-300 ανά 600 { Αντέγραψε χκ, ι με α$ }
Σκορ1=0
Σκορ2=0
Αντέγραψε χκ1, 900 με ψ$(Σκορ1)
Αντέγραψε χκ2, 900 με ψ$(Σκορ2)
Υα=-900
Υα1=Υα-Υ.σημεία/4
Υα2=Υα1+Υ.σημεία/2
Υβ=Υ.σημεία+900
Υαβ=30
Παίκτης 1, 850,Υα Με β1$
Παίκτης 2, χδ1,10000 Με β$
Παίκτης 3, 850,Υβ Με β1$
Υ2=Υ.Σημεια-900-1000
Χμ=Χκ
Υμ=3000+τυχαίος(2,5)*300
Παίκτης 4, Χμ,Υμ Με α$,1,0, 45 μέγεθος 2
Για ι=1 εως 4 { Παίκτης ι Δείξε }
Υ3=Υ.Σημεία-300
Χ3=Χ.Σημεία-300
Υ4=Υ.Σημεία/2
Τχ=120
Τμ=120
Υπ=Δείκτης.Υ
Υ=ΥΠ
Νήμα {
      Υπ=Υ : Υ=Δείκτης.Υ
} ως Νμ κάθε 25
Αναμονή 100
Σκορ=Ψευδές
Νήμα {
      Αν Υ<1900 τότε { Υ=1900: Υπ=1900 } αλλιώς.αν Υ>Υ2 τότε Υ=Υ2: Υπ=Υ2
      Αν Υμ<300 τότε { Τμ-! : Υμ+=Τμ } αλλιώς.αν Υμ>Υ3 τότε Τμ-! : Υμ+=Τμ
      Αν σύγκρουση(4, 80, χα1,Υα+Υ4, χα2, Υβ-Υ4) ή Σκορ τότε {
            Σκορ=Αληθές
      } Αλλιως.Αν σύγκρουση(4, 100, χα1,Υα-Υ4, χα2, Υα+Υ4) τότε {
            Τχ-! : Χμ=χα2+500
            Τχ*=1.5
            Χτύπος
       } αλλιώς.αν σύγκρουση(4, 100, χα1,Υβ-Υ4, χα2, Υβ+Υ4) τότε {
            Τχ-! : Χμ=χα2+500
            Τχ*=1.5
            Χτύπος
       } αλλιώς.αν σύγκρουση(4, 100, χδ1,Υ-900, χδ2, Υ+900) τότε {
       Τχ=-Απολ(Τχ) : Χμ+=Τχ*δυσκολια
       Τχ=μικρό.σειράς(-ακ(Λογ(Απολ(Υ-Υπ)+2))*45*δυσκολία, Τχ/2, -120)
       Τμ=Σημ(Υμ-Υ)*Απολ(Ακ((Υμ-Υ)/10))+Σημ(Τμ)*30*δυσκολια
       Χτύπος
      }
      Σημ 1 : δρομέας 0,ύψος-1 : Τύπωσε πάνω $(,8),Χμ, Υμ , Απολ(Υ-Υπ), Τχ, Τμ
      Παίκτης 2,,Υ
      'Παίκτης 4, Χμ,Υμ     
      Παίκτης 4, Χμ,Υμ Με α$,1,0, χμ υπολ 360 μέγεθος (2*χκ-απολ(χμ-χκ))/χκ
      Χμ+=Τχ
      Υμ+=Τμ
      } ως Μπ κάθε 10
Νήμα {
Πένα 7 {
      δρομέας 0,0 : Τύπωσε μέρος $(6,8),@(πλάτος -7), ~(Πένα,#555555),Γραφή$(Τώρα,"hh:mm:ss")
}
} ως Ττ κάθε 1000
Νήμα {
Αν Χμ>χκ0 και χα00=0 τότε {
      χα00=πλάτος.σημείου*20
}
} ως Δδ κάθε 10000
Ανανέωση 50
Κρ=Αληθές
τέρμα=Ψευδές
Κύριο.Έργο 100 {
      Αν Κρ Τότε {
      Υα+=Υαβ
      Υβ+=Υαβ
      Αν Υα>Υα2 Τότε { Υαβ-! } Αλλιώς.Αν Υα<Υα1 τότε Υαβ-!
      χα0+=χα00
      Αν χα0>χκ03 τότε {
      Αν Τχ>0 ή Χκ0 <χμ τότε {
      Νήμα Δδ Κράτα
       χα00=0
       }  αλλιώς χα00=-πλάτος.σημείου*20 : Νήμα Δδ Ξεκίνα
      }
      Αν χα0<850 τότε χα0=850 : χα00=0
      χα2=χα0+150
      Παίκτης 1,χα0,Υα
      Παίκτης 3,χα0,Υβ
      Σημ 2 : δρομέας 0,ύψος-1 : Τύπωσε πάνω $(,8), Υα, Υβ, Σκορ
      }
      Αν χμ>Χ3 ή χμ<850 τότε {
      Σκορ=Ψευδές
      Τχ=0
      Τμ=0
      Αν χμ>Χ3 τότε {
      Σκορ1++
      Αντέγραψε χκ1, 900 με ψ$(Σκορ1)
      } αλλιώς {
      Σκορ2++
      Αντέγραψε χκ2, 900 με ψ$(Σκορ2)
      }
      Αν Σκορ1=10 ή Σκορ2=10 τότε διέκοψε
            Χμ=Χκ
            Υμ=3000+τυχαίος(2,5)*150
            Παίκτης 4, Χμ,Υμ
            Υπ=Υμ
            Τχ=60*τυχαίος(2,5)/3+120
            Τμ=Τχ-60
            Σκορ=Ψευδές
      }
      Επίλεξε με Ενκομ$
      Με "π","p","Π","P"
            {
                  Αν Κρ τότε {
                        Νήμα Μπ Κράτα
                        Επίπεδο {
                              Οθόνη 0, 0
                              Πένα 15 {
                                    Δρομέας 0, ύψος/2-1
                                    Τύπωσε Πάνω $(6),"Πάτα το πλήκτρο P ή Π για συνέχεια.."
                                    Τύπωσε Υπό
                                    Τύπωσε Πάνω $(6)," ή διάστημα για να τερματίσω"
                              }
                              Άναψε
                        }
                  } Αλλιώς {
                  Επίπεδο {
                        Σβήσε
                        Οθόνη 5
                  }
                  Νήμα Μπ ξεκίνα
                  }
                  Κρ~
            }
      Με " "
            {  Αν όχι κρ τότε Επίπεδο {Σβήσε }: κρ~
                  Νήμα Μπ Κράτα
                  Δείκτη.Μορφή Δείξε
                  αν Ρώτα("Θες να σταματήσεις","Μοναχός","Ναι","Όχι")=1 τότε {
                  Επίπεδο {Οθόνη 5}
                        Τέρμα=Αληθές
                  } Αλλιώς Δείκτη.Μορφή Κρύψε
                  Νήμα Μπ ξεκίνα
            }
      Τέλος Επιλογής
      Αν τέρμα τότε Νήματα Σβήσε : έξοδος
}
Νήματα Σβήσε
Αν κρ Αλλιώς { Επίπεδο {Σβήσε : Οθόνη 5} : κρ~ }
Δείκτη.Μορφή Δείξε
Αν Ρώτα("Θα ξαναπαίξουμε","Μοναχός","Ναι","Όχι")=1 τότε προς Πάλι
Παίκτης 0
Οθόνη 5
}
Φόρμα 60,30
Άναψε
Τέλος
Συναρτήσεις:
Συνάρτηση Αρ$ {
Χ=0
Υ=0
Μηδέν$={_***_
                  *___*
                  *___*
                  *___*
                  *___*
                  *___*
                  _***_
                  }
Ένα$={__*__
                  _**__
                  *_*__
                  __*__
                  __*__
                  __*__
                  *****
                  }
Δύο$={_***_
                  *___*
                  ____*
                  _***_
                  *____
                  *____
                  *****
                  }
Τρία$={_***_
                  *___*
                  ____*
                  __**_
                  ____*
                  *___*
                  _***_
                  }
Τέσσερα$={___*_
                  __**_
                  _*_*_
                  *__*_
                  *****
                  ___*_
                  ___*_
                  }
Πέντε$={*****
                  *____
                  ****_
                  ____*
                  ____*
                  *___*
                  _***_
                  }
Έξι$={_***_
                  *___*
                  *____
                  ****_
                  *___*
                  *___*
                  _***_
                  }
Επτά$={*****
                  ____*
                  ___*_
                  __*__
                  __*__
                  __*__
                  __*__
                  }
Οκτώ$={_***_
                  *___*
                  *___*
                  _***_
                  *___*
                  *___*
                  _***_
                  }
Εννιά$={_***_
                  *___*
                  *___*
                  _****
                  ____*
                  *___*
                  _***_
                  }
Δέκα$={*__*_
                  *_*_*
                  *_*_*
                  *_*_*
                  *_*_*
                  *_*_*
                  *__*_
                  }
Πίνακας Ψ$(11), Ψ1$(11)
Πλ1=300
Ύψ1=300
Ψ$(0)=Μηδέν$,Ένα$, Δύο$, Τρία$, Τέσσερα$,Πέντε$, Έξι$, Επτά$, Οκτώ$, Εννιά$, Δέκα$
      Για Ψ=0 έως 10 {
      οθόνη #222222,0
      Για ι=0 έως 7*Ύψ1 ανά ύψος.σημείου*2 {
      Θέση 0,ι
      Χάραξε Χ.σημεία, 0, #555555
      }
      Θ=1
      Θέση Χ,Υ
      Για Κ=0 έως 7 {
            Για Ι=0 έως 4 {
                       Αν Μεσ$(Ψ$(Ψ),Θ,1)="*" τότε { Βάψε Πλ1, Ύψ1,15 } Αλλιώς Βήμα Πλ1, Ύψ1 'Αλλιώς Βάψε Πλ1, Ύψ1, #222222
                       βημα 0, -Ύψ1
                  Θ++
            }
            Βήμα -5*Πλ1, Ύψ1
            Θ+=2
      }
      Α$=""
      Θέση Χ,Υ
      Αντίγραψε Πλ1*5,Ύψ1*7 στο Α$
      Ψ1$(Ψ)=Α$
      }
=Ψ1$()
}
Επιστροφή
}
Άναψε : A : Τέλος
m2000
m2000
Admin

Posts : 27
Join date : 10/06/2016
Age : 57
Location : Kanallaki Greece

https://m2000.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

Επιστροφή στην κορυφή


 
Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης