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

Wygrana, jezeli try X w linni lub po skosie

Ostatnio zmodyfikowano 2012-09-18 15:58
Autor Wiadomość
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
Wygrana, jezeli try X w linni lub po skosie
» 2012-09-18 14:59:18
Robie gre w kolko i krzyzyk i mam maly problem. Chodzi o sprawdzenie, czy uzytkownik wygral.

Pewnie jest inny sposob ale ja chcialem zrobic cos takiego:

Jezeli map[1][1]=3 i map[1][3]=3 i map[1][5]=3, to win();

Ale cos takiego nie dziala:

if(map[1][1]=3 && map[1][3]=3 && map[1][5]=3)

ani to:
C/C++
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <time.h>

using namespace std;

int map[ 6 ][ 6 ] {
    0, 0, 0, 0, 0, 0,
    0, 0, 1, 0, 1, 0,
    0, 2, 1, 2, 1, 2,
    0, 0, 1, 0, 1, 0,
    0, 2, 1, 2, 1, 2,
    0, 0, 1, 0, 1, 0
};

class Game
{
   
public:
    void win()
    {
        system( "cls" );
        cout << "gz\n";
        getch();
    }
   
    void czy_wygrana()
    {
        if( map[ 1 ][ 1 ] = 3 && map[ 1 ][ 3 ] = 3 )
        {
            if( map[ 1 ][ 5 ] = 3 )
            {
                win();
            }
        }
    }
   
    void ruch_gracza()
    {
        char ruch = getch();
       
        switch( ruch )
        {
        case '7':
            if( map[ 1 ][ 1 ] != 4 )
                 map[ 1 ][ 1 ] = 3;
           
            break;
           
        case '8':
            if( map[ 1 ][ 3 ] != 4 )
                 map[ 1 ][ 3 ] = 3;
           
            break;
           
        case '9':
            if( map[ 1 ][ 5 ] != 4 )
                 map[ 1 ][ 5 ] = 3;
           
            break;
           
        case '4':
            if( map[ 3 ][ 1 ] != 4 )
                 map[ 3 ][ 1 ] = 3;
           
            break;
           
        case '5':
            if( map[ 3 ][ 3 ] != 4 )
                 map[ 3 ][ 3 ] = 3;
           
            break;
           
        case '6':
            if( map[ 3 ][ 5 ] != 4 )
                 map[ 3 ][ 5 ] = 3;
           
            break;
           
        case '1':
            if( map[ 5 ][ 1 ] != 4 )
                 map[ 5 ][ 1 ] = 3;
           
            break;
           
        case '2':
            if( map[ 5 ][ 3 ] != 4 )
                 map[ 5 ][ 3 ] = 3;
           
            break;
           
        case '3':
            if( map[ 5 ][ 5 ] != 4 )
                 map[ 5 ][ 5 ] = 3;
           
            break;
           
           
        }
       
    }
   
    void draw_map()
    {
        for( int i = 0; i < 6; i++ )
        {
            for( int j = 0; j < 6; j++ )
            {
                switch( map[ i ][ j ] )
                {
                case 0:
                    cout << " ";
                    break;
                   
                case 1:
                    cout << "|";
                    break;
                   
                case 2:
                    cout << "-";
                    break;
                   
                case 3:
                    cout << "X";
                    break;
                   
                case 4:
                    cout << "0";
                    break;
                }
            }
            cout << endl;
        }
        {
           
        }
       
    }
};

int main()
{
    Game g;
    for(;; )
    {
        system( "cls" );
        g.draw_map();
        g.ruch_gracza();
        g.czy_wygrana();
    }
    return 0;
}

Czy moge zrobic tym pierwszym sposobem w jakis sposob?

PS:Sorry za blad w nazwie tematu ;p
P-65141
SeaMonster131
» 2012-09-18 15:05:19
= to operator przypisania
== to operator porównania..
P-65144
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
» 2012-09-18 15:10:21
Taka mala pomylka ;p.
Dzieki
P-65145
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
» 2012-09-18 15:58:55
Czemu program sam się zamyka po okolo 16 sekundach?

C/C++
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <time.h>

using namespace std;

int score_pc = 0, score_player = 0, xd;

int map[ 6 ][ 6 ] {
    0, 0, 0, 0, 0, 0,
    0, 0, 1, 0, 1, 0,
    0, 2, 1, 2, 1, 2,
    0, 0, 1, 0, 1, 0,
    0, 2, 1, 2, 1, 2,
    0, 0, 1, 0, 1, 0
};

class Game
{
   
public:
   
    void reset_map()
    {
        map[ 1 ][ 1 ] = 0;
        map[ 1 ][ 3 ] = 0;
        map[ 1 ][ 5 ] = 0;
       
        map[ 3 ][ 1 ] = 0;
        map[ 3 ][ 3 ] = 0;
        map[ 3 ][ 5 ] = 0;
       
        map[ 5 ][ 1 ] = 0;
        map[ 5 ][ 3 ] = 0;
        map[ 5 ][ 5 ] = 0;
    }
   
    void win()
    {
        score_player++;
        reset_map();
    }
   
    void noob()
    {
        score_pc++;
        reset_map();
    }
   
    void wygrana_kompa()
    {
        //Pozioma
        if( map[ 1 ][ 1 ] == 4 && map[ 1 ][ 3 ] == 4 && map[ 1 ][ 5 ] == 4 )
             noob();
       
        if( map[ 3 ][ 1 ] == 4 && map[ 3 ][ 3 ] == 4 && map[ 3 ][ 5 ] == 4 )
             noob();
       
        if( map[ 5 ][ 1 ] == 4 && map[ 5 ][ 3 ] == 4 && map[ 5 ][ 5 ] == 4 )
             noob();
        //Pionowa
        if( map[ 1 ][ 1 ] == 4 && map[ 3 ][ 1 ] == 4 && map[ 5 ][ 1 ] == 4 )
             noob();
       
        if( map[ 1 ][ 3 ] == 4 && map[ 3 ][ 3 ] == 4 && map[ 5 ][ 3 ] == 4 )
             noob();
       
        if( map[ 1 ][ 5 ] == 4 && map[ 3 ][ 5 ] == 4 && map[ 5 ][ 5 ] == 4 )
             noob();
        //Skos
        if( map[ 1 ][ 1 ] == 4 && map[ 3 ][ 3 ] == 4 && map[ 5 ][ 5 ] == 4 )
             noob();
       
        if( map[ 5 ][ 1 ] == 4 && map[ 3 ][ 3 ] == 4 && map[ 1 ][ 5 ] == 4 )
             noob();
       
    }
   
    void wygrana_gracza()
    {
        //Pozioma
        if( map[ 1 ][ 1 ] == 3 && map[ 1 ][ 3 ] == 3 && map[ 1 ][ 5 ] == 3 )
             win();
       
        if( map[ 3 ][ 1 ] == 3 && map[ 3 ][ 3 ] == 3 && map[ 3 ][ 5 ] == 3 )
             win();
       
        if( map[ 5 ][ 1 ] == 3 && map[ 5 ][ 3 ] == 3 && map[ 5 ][ 5 ] == 3 )
             win();
        //Pionowa
        if( map[ 1 ][ 1 ] == 3 && map[ 3 ][ 1 ] == 3 && map[ 5 ][ 1 ] == 3 )
             win();
       
        if( map[ 1 ][ 3 ] == 3 && map[ 3 ][ 3 ] == 3 && map[ 5 ][ 3 ] == 3 )
             win();
       
        if( map[ 1 ][ 5 ] == 3 && map[ 3 ][ 5 ] == 3 && map[ 5 ][ 5 ] == 3 )
             win();
        //Skos
        if( map[ 1 ][ 1 ] == 3 && map[ 3 ][ 3 ] == 3 && map[ 5 ][ 5 ] == 3 )
             win();
       
        if( map[ 5 ][ 1 ] == 3 && map[ 3 ][ 3 ] == 3 && map[ 1 ][ 5 ] == 3 )
             win();
       
    }
   
    void ruch_gracza()
    {
        char ruch = getch();
       
        switch( ruch )
        {
        case '7':
            if( map[ 1 ][ 1 ] != 4 )
                 map[ 1 ][ 1 ] = 3;
           
            break;
           
        case '8':
            if( map[ 1 ][ 3 ] != 4 )
                 map[ 1 ][ 3 ] = 3;
           
            break;
           
        case '9':
            if( map[ 1 ][ 5 ] != 4 )
                 map[ 1 ][ 5 ] = 3;
           
            break;
           
        case '4':
            if( map[ 3 ][ 1 ] != 4 )
                 map[ 3 ][ 1 ] = 3;
           
            break;
           
        case '5':
            if( map[ 3 ][ 3 ] != 4 )
                 map[ 3 ][ 3 ] = 3;
           
            break;
           
        case '6':
            if( map[ 3 ][ 5 ] != 4 )
                 map[ 3 ][ 5 ] = 3;
           
            break;
           
        case '1':
            if( map[ 5 ][ 1 ] != 4 )
                 map[ 5 ][ 1 ] = 3;
           
            break;
           
        case '2':
            if( map[ 5 ][ 3 ] != 4 )
                 map[ 5 ][ 3 ] = 3;
           
            break;
           
        case '3':
            if( map[ 5 ][ 5 ] != 4 )
                 map[ 5 ][ 5 ] = 3;
           
            break;
           
           
        }
       
    }
   
    void draw_map()
    {
        for( int i = 0; i < 6; i++ )
        {
            for( int j = 0; j < 6; j++ )
            {
                switch( map[ i ][ j ] )
                {
                case 0:
                    cout << " ";
                    break;
                   
                case 1:
                    cout << "|";
                    break;
                   
                case 2:
                    cout << "-";
                    break;
                   
                case 3:
                    cout << "X";
                    break;
                   
                case 4:
                    cout << "0";
                    break;
                }
            }
            cout << endl;
        }
       
    }
   
    void czy_wygrana()
    {
        wygrana_kompa();
        wygrana_gracza();
    }
   
};

int main()
{
    Game g;
    for(;; )
    {
        system( "cls" );
       
        cout << "\n  " << score_player << ":" << score_pc;
        cout << endl;
       
        g.draw_map();
        g.ruch_gracza();
        g.czy_wygrana();
    }
    return 0;
   
}
P-65147
« 1 »
  Strona 1 z 1