Senso Programmierung



  • Moin,
    ich mache für die schule ein Projekt und muss das spiel Senso(auch Simon Sagt) nachprogrammieren. Ich benutzte ein Vellemann Board und an dem Board ist eine Hardware angeschlossen halt der spielplatine( sprich 4 taster 4 lampen usw) wie man das spiel halt kennt.
    Das board erkennt die Signale und gibt sie an den pc weiter usw.

    Das ganze natürlich grafisch
    hier einmal die Form http://s1.directupload.net/file/d/2491/5r8axar6_jpg.htm

    Wenn offline bitte melden.

    so und hier der Quellcode

    //Deklaration
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm2 *Form2;
    int iZufallszahl;
    bool bSpieler1= false;
    bool bSpieler2= false;
    bool bSpielGestartet="false";
    bool bA = ReadDigitalChannel(1);
    bool bB = ReadDigitalChannel(2);
    bool bC = ReadDigitalChannel(3);
    bool bD = ReadDigitalChannel(4);
    //---------------------------------------------------------------------------
    // Methoden
    //Player vs CPU
    PVC()
    {
    if(iZufallszahl==1)
    {
    bool Spieler1= true;
    lbl1->Caption="Spieler1";
    }
    else
    {
    bool Spieler2= true ;
    lbl1->Caption="Computer";
    }
    
    }
    // Player vs Player
    PVP ()
    {
    if(iZufallszahl==1)
    {
    bool Spieler1= true;
    lbl1->Caption="Spieler1";
    }
    else
    {
    bool Spieler2= true;
    lbl1->Caption="Spieler 2";
    }
    d
    }
    //Player vs Self
    PVS()
    {
    lbl1->Caption="Spieler1";
    }
    
    //---------------------------------------------------------------------------
    void __fastcall TForm2::Timer1Timer(TObject *Sender)
    {
    bool bA = ReadDigitalChannel(1);
    bool bB = ReadDigitalChannel(2);
    bool bC = ReadDigitalChannel(3);
    bool bD = ReadDigitalChannel(4);
    }
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    void __fastcall TForm2::btnSpielClick(TObject *Sender)
    {
    bSpielgestartet = true;
    Timer1->Enabled=true;
    if(bA==true)
    {
    Shape3->Brush->Color=clWhite;
    }
    else
    if(bB==true)
    {
    Shape2->Brush->Color=clLime;
    }
    else
    if(bC==true)
    {
    Shape1->Brush->Color=clYellow;
    }
    else
    if(bD==true)
    {
    Shape4->Brush->Color=clRed;
    }
    if (Rbtn1->Checked == true)
    PVC();
    else
    if (Rbtn2->Checked == true)
    PVP();
    else
    if (Rbtn3->Checked == true)
    PVS();
    else
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm2::btnCloseClick(TObject *Sender)
    {
    Close();
    }
    //---------------------------------------------------------------------------
    

    so erste frage ob das richtig iss das der Timer jetzt so wie er ist alle 1 sek abfragt ob jemand gedrückt hat?
    Zweite und wichtigere:
    ich will jetzt erstmal die PVP methode fertig machen halt spieler gegen spieler.
    ich komm einfach nich weiter wie ich das machen soll das der sich merkt in welche reihenfolge gedrückt wurde + abfragt ob er falsch gedrückt hat... hat vllt. jemand eine idee?

    Edit akari : Bitte beim nächsten Mal die cpp-Tags anstelle der code-Tags benutzen!



  • Hi,

    ich sehe nirgends wo Du den Timerintervall setzt, standar ist 1000ms also 1 sek. So wie ich das Spiel kenne - Runde für Runde schneller werdend - wirst Du aber mit einer Sekunde nicht weit kommen. Ich denke mit 50ms bist Du da eher im Geschäft.
    Was der PVP Mode ist weiß ich nicht aber zum Speichern der Zugreihenfolge solltest Du Dir mal std::vector ansehen. Damit kannst Du jede Eingabe speichern und vergleichen.

    Gruß myerscola



  • PVP = player vs Player sry wenn habe ich vergessen mir das aufzuschreiben.

    aber der timer ist richtig oder? also wen ich den aktiviere macht der das hier solange wie ich eingestellt habe?

    void __fastcall TForm2::Timer1Timer(TObject *Sender)
    {
    bool bA = ReadDigitalChannel(1);
    bool bB = ReadDigitalChannel(2);
    bool bC = ReadDigitalChannel(3);
    bool bD = ReadDigitalChannel(4);
    }
    

    mit dem timer hatte ich leider noch nicht gearbeitet deswegen kann ich mir nur denken was er tut.

    ich guck mir std::vector mal an thx


Anmelden zum Antworten