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

[Konsola] Rozsuwająca się plansza przy grze w kółko i krzyżyk

Ostatnio zmodyfikowano 2013-03-21 22:30
Autor Wiadomość
David
Temat założony przez niniejszego użytkownika
[Konsola] Rozsuwająca się plansza przy grze w kółko i krzyżyk
» 2013-03-21 21:42:57
Potrzebuje małej pomocy, ewentualnie wskazania błędu mojego rozumowania, chciałem napisać grę w kółko i krzyżyk w wersji pvp, niestety podczas gry przy wybraniu innego pola niż 1 plansza się "rozsuwa". Moglibyście mi pomóc? :)
C/C++
#include<iostream>
using namespace std;
/// ZMIENNE GLOBALNE ///
//******************///
char tab[ 5 ][ 5 ];
int poziom = 196;
int pion = 179;
bool gracz = true;

/// DEKLARACJA FUNKCJI ///
//********************///
void plansza();
void ruch();
void rysowanie();

/// MAIN ///
int main()
{
    plansza();
    ruch();
    system( "PAUSE" );
    return 0;
}

/// DEFINICJA FUNKCJI ///
//*******************///

void plansza()
{
    for( int i = 0; i < 5; i++ )
    {
        for( int j = 0; j < 5; j++ )
        {
            if( i % 2 == 0 && j % 2 == 0 ) cout <<( tab[ i ][ j ] = ' ' ); // wypelnianie rubryk spacjami
           
            if( i % 2 == 1 ) cout <<( tab[ i ][ j ] = poziom ); // rysowanie lini poziomych siatki
           
            if( i % 2 == 0 && j % 2 == 1 ) cout <<( tab[ i ][ j ] = pion ); // rysowanie lini pionowych siatki
           
        }
        cout << endl;
    }
   
}
void rysowanie()
{
    for( int i = 0; i < 5; i++ )
    {
        for( int j = 0; j < 5; j++ )
        {
            if( i % 2 == 0 && j % 2 == 0 )
            {
                if( tab[ i ][ j ] != ' ' ) { } // Jesli w komorce znajduje sie co innego niz ' ' nie robi nic.
                else cout <<( tab[ i ][ j ] = ' ' ); // Jeśli w komorce nie znajduje sie X lub O ponownie rysuje wolne pole ' '
               
            }
            if( i % 2 == 1 ) cout <<( tab[ i ][ j ] = poziom ); // rysowanie lini poziomych siatki
           
            if( i % 2 == 0 && j % 2 == 1 ) cout <<( tab[ i ][ j ] = pion ); // rysowanie lini pionowych siatki
           
        }
        cout << endl;
    }
   
}
void ruch()
{
    for( int postep = 0; postep < 9; postep++ )
    {
       
        cout << "Podaj pole: ";
        unsigned int pole = 0;
        cin >> pole;
        system( "cls" );
        // Obsługa błednego pola //
        if( pole < 1 || pole > 9 )
        {
            cout << "Bledne pole!";
            _sleep( 1500 );
            system( "cls" );
        }
        // Obsluga kolejnosci gracza i wpisywanie ruchow
        if( gracz == true )
        {
            if( pole == 1 ) cout <<( tab[ 0 ][ 0 ] = 'X' );
           
            if( pole == 2 ) cout <<( tab[ 2 ][ 0 ] = 'X' );
           
            if( pole == 3 ) cout <<( tab[ 4 ][ 0 ] = 'X' );
           
            if( pole == 4 ) cout <<( tab[ 0 ][ 2 ] = 'X' );
           
            if( pole == 5 ) cout <<( tab[ 2 ][ 2 ] = 'X' );
           
            if( pole == 6 ) cout <<( tab[ 4 ][ 2 ] = 'X' );
           
            if( pole == 7 ) cout <<( tab[ 0 ][ 4 ] = 'X' );
           
            if( pole == 8 ) cout <<( tab[ 2 ][ 4 ] = 'X' );
           
            if( pole == 9 ) cout <<( tab[ 4 ][ 4 ] = 'X' );
           
            gracz = false;
        }
        else
        {
            if( pole == 1 ) cout <<( tab[ 0 ][ 0 ] = 'O' );
           
            if( pole == 2 ) cout <<( tab[ 2 ][ 0 ] = 'O' );
           
            if( pole == 3 ) cout <<( tab[ 4 ][ 0 ] = 'O' );
           
            if( pole == 4 ) cout <<( tab[ 0 ][ 2 ] = 'O' );
           
            if( pole == 5 ) cout <<( tab[ 2 ][ 2 ] = 'O' );
           
            if( pole == 6 ) cout <<( tab[ 4 ][ 2 ] = 'O' );
           
            if( pole == 7 ) cout <<( tab[ 0 ][ 4 ] = 'O' );
           
            if( pole == 8 ) cout <<( tab[ 2 ][ 4 ] = 'O' );
           
            if( pole == 9 ) cout <<( tab[ 4 ][ 4 ] = 'O' );
           
            gracz = true;
        }
        rysowanie();
    }
   
}
P-79098
pekfos
» 2013-03-21 22:13:12
C/C++
if( pole == 1 ) cout <<( tab[ 0 ][ 0 ] = 'O' );
//itd..
C/C++
if( tab[ i ][ j ] != ' ' ) { } // Jesli w komorce znajduje sie co innego niz ' ' nie robi nic.
else cout <<( tab[ i ][ j ] = ' ' ); // Jeśli w komorce nie znajduje sie X lub O ponownie rysuje wolne pole ' '

Zastanów się nad sensem tych fragmentów (nad sensem wypisywania w pierwszym fragmencie i sensem przypisania w drugim).
P-79100
David
Temat założony przez niniejszego użytkownika
» 2013-03-21 22:30:08
Dobra, bardzo dziękuje przeanalizuje jeszcze raz te fragmenty.
P-79103
« 1 »
  Strona 1 z 1