Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kółko i krzyżyk

Ostatnio zmodyfikowano 2016-03-05 10:01
Autor Wiadomość
Garniturek
Temat założony przez niniejszego użytkownika
Kółko i krzyżyk
» 2016-02-27 16:16:26
Witam, próbuje napisać kółko i krzyżyk i mam pewien błąd. Kiedy rozpoczyna się 'nowa gra' automatycznie wstawia się 'x', a powinien się wstawić tylko po ruchu gracza, czyli kiedy wstawione jest 'o'. Widzi ktoś błąd? ;)

C/C++
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 * Form1;
int liczniko = 0, licznikx = 0;
char p1, p2, p3, p4, p5, p6, p7, p8, p9;
//pl..p9 pola w grze (ich zawartosc: p1='n'; nic lub 'x' lub'o' )
char kto;
void od_nowa()
{
    Form1->Pole1->Picture->LoadFromFile( "img/nic.bmp" );
    Form1->Pole2->Picture->LoadFromFile( "img/nic.bmp" );
    Form1->Pole3->Picture->LoadFromFile( "img/nic.bmp" );
    Form1->Pole4->Picture->LoadFromFile( "img/nic.bmp" );
    Form1->Pole5->Picture->LoadFromFile( "img/nic.bmp" );
    Form1->Pole6->Picture->LoadFromFile( "img/nic.bmp" );
    Form1->Pole7->Picture->LoadFromFile( "img/nic.bmp" );
    Form1->Pole8->Picture->LoadFromFile( "img/nic.bmp" );
    Form1->Pole9->Picture->LoadFromFile( "img/nic.bmp" );
    Form1->Tura->Picture->LoadFromFile( "img/osmall.bmp" );
    p1 = 'n';
    p4 = 'n';
    p7 = 'n';
    p2 = 'n';
    p5 = 'n';
    p8 = 'n';
    p3 = 'n';
    p6 = 'n';
    p9 = 'n';
    kto = 'o';
    Form1->Pole1->Enabled = true;
    Form1->Pole2->Enabled = true;
    Form1->Pole3->Enabled = true;
    Form1->Pole4->Enabled = true;
    Form1->Pole5->Enabled = true;
    Form1->Pole6->Enabled = true;
    Form1->Pole7->Enabled = true;
    Form1->Pole8->Enabled = true;
    Form1->Pole9->Enabled = true;
    Form1->Pole1->Tag = 0;
    Form1->Pole2->Tag = 0;
    Form1->Pole3->Tag = 0;
    Form1->Pole4->Tag = 0;
    Form1->Pole5->Tag = 0;
    Form1->Pole6->Tag = 0;
    Form1->Pole7->Tag = 0;
    Form1->Pole8->Tag = 0;
    Form1->Pole9->Tag = 0;
    Form1->Image1->Picture->LoadFromFile( "img/xsmall.bmp" );
    Form1->Image2->Picture->LoadFromFile( "img/osmall.bmp" );
}
void sprawdz()
{
    if(( p1 == p2 && p2 == p3 && p1 != 'n' ) ||
    ( p4 == p5 && p5 == p6 && p4 != 'n' ) ||
    ( p7 == p8 && p8 == p9 && p7 != 'n' ) ||
    ( p1 == p4 && p4 == p7 && p1 != 'n' ) ||
    ( p2 == p5 && p5 == p8 && p2 != 'n' ) ||
    ( p3 == p6 && p6 == p9 && p3 != 'n' ) ||
    ( p1 == p5 && p5 == p9 && p1 != 'n' ) ||
    ( p3 == p5 && p5 == p7 && p3 != 'n' ) )
    {
        char * w;
        if( kto == 'x' )
        {
            w = "Wygrywa kółko!";
            liczniko++;
            Form1->Wynik2->Caption = liczniko;
        }
        else
        {
            w = "Wygrywa krzyżyk!";
            licznikx++;
            Form1->wynik1->Caption = licznikx;
        }
        Application->MessageBox( w, "Koniec gry", MB_OK );
        od_nowa();
    }
}
komputer()
{
    while( 1 )
    {
        int liczba =(( rand() % 9 ) + 3 );
       
        if( liczba == 1 )
        {
            if( Form1->Pole1->Tag == 0 )
            {
                Form1->Pole1->Picture->LoadFromFile( "img/x.bmp" );
                kto = 'o';
                p1 = 'x';
                Form1->Pole1->Enabled = false;
                Form1->Pole1->Tag = 1;
                break;
            }
        }
       
        else if( liczba == 2 )
        {
            if( Form1->Pole2->Tag == 0 )
            {
                Form1->Pole2->Picture->LoadFromFile( "img/x.bmp" );
                kto = 'o';
                p2 = 'x';
                Form1->Pole2->Enabled = false;
                Form1->Pole2->Tag = 1;
                break;
            }
        }
        else if( liczba == 3 )
        {
            if( Form1->Pole3->Tag == 0 )
            {
                Form1->Pole3->Picture->LoadFromFile( "img/x.bmp" );
                kto = 'o';
                p3 = 'x';
                Form1->Pole3->Enabled = false;
                Form1->Pole3->Tag = 1;
                break;
            }
        }
        else if( liczba == 4 )
        {
            if( Form1->Pole4->Tag == 0 )
            {
                Form1->Pole4->Picture->LoadFromFile( "img/x.bmp" );
                kto = 'o';
                p4 = 'x';
                Form1->Pole4->Enabled = false;
                Form1->Pole4->Tag = 1;
                break;
            }
        }
        else if( liczba == 5 )
        {
            if( Form1->Pole5->Tag == 0 )
            {
                Form1->Pole5->Picture->LoadFromFile( "img/x.bmp" );
                kto = 'o';
                p5 = 'x';
                Form1->Pole5->Enabled = false;
                Form1->Pole5->Tag = 1;
                break;
            }
        }
        else if( liczba == 6 )
        {
            if( Form1->Pole6->Tag == 0 )
            {
                Form1->Pole6->Picture->LoadFromFile( "img/x.bmp" );
                kto = 'o';
                p6 = 'x';
                Form1->Pole6->Enabled = false;
                Form1->Pole6->Tag = 1;
                break;
            }
        }
        else if( liczba == 7 )
        {
            if( Form1->Pole7->Tag == 0 )
            {
                Form1->Pole7->Picture->LoadFromFile( "img/x.bmp" );
                kto = 'o';
                p7 = 'x';
                Form1->Pole7->Enabled = false;
                Form1->Pole7->Tag = 1;
                break;
            }
        }
        else if( liczba == 8 )
        {
            if( Form1->Pole8->Tag == 0 )
            {
                Form1->Pole8->Picture->LoadFromFile( "img/x.bmp" );
                kto = 'o';
                p8 = 'x';
                Form1->Pole8->Enabled = false;
                Form1->Pole8->Tag = 1;
                break;
            }
        }
        else if( liczba == 9 )
        {
            if( Form1->Pole9->Tag == 0 )
            {
                Form1->Pole9->Picture->LoadFromFile( "img/x.bmp" );
                kto = 'o';
                p9 = 'x';
                Form1->Pole9->Enabled = false;
                Form1->Pole9->Tag = 1;
               
                break;
            }
        }
    }
    sprawdz();
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1( TComponent * Owner )
    : TForm( Owner )
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate( TObject * Sender )
{
    Pole1->Picture->LoadFromFile( "img/nic.bmp" );
    Pole2->Picture->LoadFromFile( "img/nic.bmp" );
    Pole3->Picture->LoadFromFile( "img/nic.bmp" );
    Pole4->Picture->LoadFromFile( "img/nic.bmp" );
    Pole5->Picture->LoadFromFile( "img/nic.bmp" );
    Pole6->Picture->LoadFromFile( "img/nic.bmp" );
    Pole7->Picture->LoadFromFile( "img/nic.bmp" );
    Pole8->Picture->LoadFromFile( "img/nic.bmp" );
    Pole9->Picture->LoadFromFile( "img/nic.bmp" );
    Tura->Picture->LoadFromFile( "img/osmall.bmp" );
    p1 = 'n';
    p4 = 'n';
    p7 = 'n';
    p2 = 'n';
    p5 = 'n';
    p8 = 'n';
    p3 = 'n';
    p6 = 'n';
    p9 = 'n';
    kto = 'o';
    Pole1->Enabled = true;
    Pole2->Enabled = true;
    Pole3->Enabled = true;
    Pole4->Enabled = true;
    Pole5->Enabled = true;
    Pole6->Enabled = true;
    Pole7->Enabled = true;
    Pole8->Enabled = true;
    Pole9->Enabled = true;
    Pole1->Tag = 0;
    Pole2->Tag = 0;
    Pole3->Tag = 0;
    Pole4->Tag = 0;
    Pole5->Tag = 0;
    Pole6->Tag = 0;
    Pole7->Tag = 0;
    Pole8->Tag = 0;
    Pole9->Tag = 0;
    Image1->Picture->LoadFromFile( "img/xsmall.bmp" );
    Image2->Picture->LoadFromFile( "img/osmall.bmp" );
}
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click( TObject * Sender )
{
    Image1->Picture->LoadFromFile( "img/osmall.bmp" );
   
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image2Click( TObject * Sender )
{
    Image2->Picture->LoadFromFile( "img/osmall.bmp" );
   
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Pole1Click( TObject * Sender )
{
    if( p1 == 'n' )
    {
        Pole1->Picture->LoadFromFile( "img/o.bmp" );
        p1 = 'o';
        kto = 'x';
       
       
        Pole1->Enabled = false;
        sprawdz();
        Form1->Pole1->Tag = 1;
        komputer();
       
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Pole2Click( TObject * Sender )
{
    if( p2 == 'n' )
    {
       
        Pole2->Picture->LoadFromFile( "img/o.bmp" );
        p2 = 'o';
        kto = 'x';
       
        Pole2->Enabled = false;
        sprawdz();
        Form1->Pole2->Tag = 1;
        komputer();
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Pole3Click( TObject * Sender )
{
    if( p3 == 'n' )
    {
       
        Pole3->Picture->LoadFromFile( "img/o.bmp" );
        p3 = 'o';
        kto = 'x';
       
        Pole3->Enabled = false;
        sprawdz();
        Form1->Pole3->Tag = 1;
        komputer();
       
       
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Pole4Click( TObject * Sender )
{
    if( p4 == 'n' )
    {
       
        Pole4->Picture->LoadFromFile( "img/o.bmp" );
        p4 = 'o';
        kto = 'x';
       
        Pole4->Enabled = false;
        sprawdz();
        Form1->Pole4->Tag = 1;
        komputer();
       
       
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Pole5Click( TObject * Sender )
{
    if( p5 == 'n' )
    {
       
        Pole5->Picture->LoadFromFile( "img/o.bmp" );
        p5 = 'o';
        kto = 'x';
       
        Pole5->Enabled = false;
        sprawdz();
        Form1->Pole5->Tag = 1;
        komputer();
       
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Pole6Click( TObject * Sender )
{
    if( p6 == 'n' )
    {
       
        Pole6->Picture->LoadFromFile( "img/o.bmp" );
        p6 = 'o';
        kto = 'x';
       
        Pole6->Enabled = false;
        sprawdz();
        Form1->Pole6->Tag = 1;
        komputer();
       
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Pole7Click( TObject * Sender )
{
    if( p7 == 'n' )
    {
       
        Pole7->Picture->LoadFromFile( "img/o.bmp" );
        p7 = 'o';
        kto = 'x';
       
        Pole7->Enabled = false;
        sprawdz();
        Form1->Pole7->Tag = 1;
        komputer();
       
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Pole8Click( TObject * Sender )
{
    if( p8 == 'n' )
    {
       
        Pole8->Picture->LoadFromFile( "img/o.bmp" );
        p8 = 'o';
        kto = 'x';
       
       
        Pole8->Enabled = false;
        sprawdz();
        Form1->Pole8->Tag = 1;
        komputer();
       
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Pole9Click( TObject * Sender )
{
    if( p9 == 'n' )
    {
        Pole9->Picture->LoadFromFile( "img/o.bmp" );
        p9 = 'o';
        kto = 'x';
        Pole9->Enabled = false;
        sprawdz();
        Form1->Pole9->Tag = 1;
        komputer();
       
    }
}
P-145353
C-Objective
» 2016-03-05 10:01:40
Komputer rusza się pierwszy (chyba), użyj tablic do przechowania tych charów typu
char p1, p2, p3, p4, p5, p6, p7, p8, p9;
, i użyj TU pętli
C/C++
Form1->Pole1->Picture->LoadFromFile( "img/nic.bmp" );
Form1->Pole2->Picture->LoadFromFile( "img/nic.bmp" );
Form1->Pole3->Picture->LoadFromFile( "img/nic.bmp" );
Form1->Pole4->Picture->LoadFromFile( "img/nic.bmp" );
Form1->Pole5->Picture->LoadFromFile( "img/nic.bmp" );
Form1->Pole6->Picture->LoadFromFile( "img/nic.bmp" );
Form1->Pole7->Picture->LoadFromFile( "img/nic.bmp" );
Form1->Pole8->Picture->LoadFromFile( "img/nic.bmp" );
Form1->Pole9->Picture->LoadFromFile( "img/nic.bmp" );
Form1->Tura->Picture->LoadFromFile( "img/osmall.bmp" );
p1 = 'n';
p4 = 'n';
p7 = 'n';
p2 = 'n';
p5 = 'n';
p8 = 'n';
p3 = 'n';
p6 = 'n';
p9 = 'n';
kto = 'o';
Form1->Pole1->Enabled = true;
Form1->Pole2->Enabled = true;
Form1->Pole3->Enabled = true;
Form1->Pole4->Enabled = true;
Form1->Pole5->Enabled = true;
Form1->Pole6->Enabled = true;
Form1->Pole7->Enabled = true;
Form1->Pole8->Enabled = true;
Form1->Pole9->Enabled = true;
Form1->Pole1->Tag = 0;
Form1->Pole2->Tag = 0;
Form1->Pole3->Tag = 0;
Form1->Pole4->Tag = 0;
Form1->Pole5->Tag = 0;
Form1->Pole6->Tag = 0;
Form1->Pole7->Tag = 0;
Form1->Pole8->Tag = 0;
Form1->Pole9->Tag = 0;
Form1->Image1->Picture->LoadFromFile( "img/xsmall.bmp" );
Form1->Image2->Picture->LoadFromFile( "img/osmall.bmp" );
A i jeszcze się zdecyduj, czy C czy C++ używasz, bo funkcja komputer zwraca inta, a nie jest to napisane... Kompiluje się to w borlandzie w ogóle?
P-145569
« 1 »
  Strona 1 z 1