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

Kółko Krzyżyk Gra konsolowa.

Ostatnio zmodyfikowano 2012-11-07 20:10
Autor Wiadomość
kruku13
Temat założony przez niniejszego użytkownika
Kółko Krzyżyk Gra konsolowa.
» 2012-11-07 00:14:55
Witam, robię gra konsolową kółko krzyżyk z tym że nie taką standardową tylko na więcej pól. Mam jeden problem nie wiem jak zabrać się aby program sprawdzał który gracz wygrał.
Myślę aby zrobić na tablicach, z tym że nie wiem jak za bardzo się zabrać.
Gdy by ktoś mógł mnie nakierować na dobrą drogę, albo wytłumaczyć coś nie coś był bym wdzięczny

Poniżej kod źródłowy:

C/C++
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <ctime>
#include <string>

using namespace std;

int x = 11, y = 11, a = 1, i, n, p = 1, oy = 0, ox = 0;

int asd = 0;
int r[ 1000 ], q[ 1000 ];

int gotoxy( int x, int y ) // Funkcja gotoxy
{
    COORD coord;
    coord.X = x;
    coord.Y = y;
    SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );
}

int plansza() {
   
    for( i = 0; i < 21; i++ ) // pętla odpowiedzialna za ilość wierszy
    {
        for( n = 0; n < 21; n++ ) //pętla odpowiedzialna za ilość kolumn
        {
            if( i % 2 == 0 ) cout << "-"; //rysujemy kreski poziome do planszy
            else if( n % 2 == 0 || i % 2 == 0 && i % 2 == 0 ) cout << "|"; //Rysujemy kreski pionowe do planszy
            else cout << " ";
           
        }
       
        cout << endl;
    }
}

int kursor() {
    gotoxy( x, y ); //idz do współrzaednych zadeklarowanych  na poczatku programy
    cout << ""; //Kursor
}

int O() { cout << "O"; }

int X() { cout << "X"; }

//Funkcja która pisze nam który z graczy ma kolejkę
int napis() {
    gotoxy( 30, 5 );
    cout << "Gra Kolko i krzyzyk \n";
    gotoxy( 30, 7 );
    if( p == 1 ) { cout << "Kolejka Gracza nr.1" << endl; }
    else if( p == 2 ) { cout << "Kolejka Gracza nr.2" << endl; }
}

int main() {
   
    char c; //zmienna do której przypisujemy litere W A S D w zależnośxi w którą strone chce iść gracz.
    int a = 1, n;
    plansza();
   
    do {
        pomin:
        napis();
        kursor();
       
        c = getch();
       
        switch( c ) {
           
        case 'w':
            y = y - 2;
            break;
        case 's':
            y = y + 2;
            break;
        case 'a':
            x = x - 2;
            break;
        case 'd':
            x = x + 2;
            break;
        case ' ':
            if( p == 1 ) {
                for( int u = 0; u <= asd; u++ )
                {
                    if( x == r[ u ] && y == q[ u ] ) goto pomin;
                   
                }
                O();
                p++;
            }
            else if( p == 2 ) {
                for( int u = 0; u <= asd; u++ )
                {
                    if( x == r[ u ] && y == q[ u ] ) goto pomin;
                   
                }
                X();
                p--;
            }
            r[ asd ] = x;
            q[ asd ] = y;
            asd++;
        }
        gotoxy( x, y );
       
    }
    while( a == 1 );
   
}

Wstawiaj kody, a nie linki do nich - xevuel
P-68690
DejaVu
» 2012-11-07 01:07:43
Zacznij od zrobienia zwykłego kółka i krzyżyk - jak nie masz pojęcia jak się zabrać to zdobywanie doświadczenia na prostszych projektach jest wskazane.
P-68692
kruku13
Temat założony przez niniejszego użytkownika
» 2012-11-07 08:46:45
Zwykłe wiem jak zrobić. Plansza składa się tylko z 9 pól i wtedy nie ma problemu z sprawdzeniem który gracz wygrał, problem zaczyna się gdy jest to kwadrat o wymiarach np 20x20.
P-68695
DejaVu
» 2012-11-07 12:57:37
Skoro tak to znaczy, że nie zrobiłeś sprawdzania rozwiązań za pomocą pętli, tylko wpisałeś ręcznie wszystkie możliwe kombinacje.
P-68705
crash
» 2012-11-07 20:10:57
W twoim przypadku musisz przeszukać tablicę T[x][y] po przekątnych, w pionie, poziomie w poszukiwaniu trzech takich samych wartości. Ustawienia wstępne: tablica typu char, każdy element na '0'. Gracz 1 w polu (x,y) - dane pole T[x][y] ustawiasz na 1, analogicznie gracz 2. Co ruch - przetrzepanie tablicy :)

W ramach testów zrób sobie fikcyjne ruchy i sprawdzaj swój algorytm szukania.
P-68748
« 1 »
  Strona 1 z 1