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

Rysowanie planszy w konsoli - gra kółko i krzyżyk

Ostatnio zmodyfikowano 2013-04-11 10:37
Autor Wiadomość
Zenjubo
Temat założony przez niniejszego użytkownika
Rysowanie planszy w konsoli - gra kółko i krzyżyk
» 2012-04-23 14:29:17
Witam,
Mam pytanie odnosnie fragmentu poniższego kodu, funkcja ta rysuje plansze do gry "Kółko i Krzyżyk", niestety... nie rozumiem jak :/ ja np zrobiłbym tablice [3][3] a tu jest jedno wymiarowa, dla cyfry 3 i 6 program przenosi sie do nastepnej lini, dzieje sie tak z pewnościa przez (i % 3)... jeśli ktoś mógł by mi to "łopatologicznie" wytłumaczyc, jak to się dzieje.. bede wdzięczny :)
Pozdrawiam


C/C++
// Funkcja rysuje planszę gry w kółko i krzyżyk
//---------------------------------------------
void plansza( char t[] )
{
    for( int i = 1; i <= 9; i++ )
    {
        cout << " " << t[ i ] << " ";
        if( i % 3 )
             cout << "|";
        else if( i != 9 )
             cout << "\n---+---+---\n";
        else cout << endl;
       
    }
}
P-55053
DejaVu
» 2012-04-23 14:37:20
W uproszczeniu:
1. Wypisz liczbę.
2. Jeżeli licznik nie jest podzielny przez 3 to rysuj pionową kreskę.
3. Jeżeli licznik jest podzielny przez 3 to przejdź do nowej linii.
4. Jeżeli jest podzielne przez 3 to przejdź do nowej linii.
Reasumując: » KursyKurs C++ kurs

PS. Ten kod da się dużo prościej napisać :P nawet na tej jednej tablicy :)
P-55054
Zenjubo
Temat założony przez niniejszego użytkownika
» 2012-04-23 16:15:54
Dziekuje za szybka odp, mam jednak jeszcze watpliwosci...

jak dla mnie:
1. Wypisz liczbę.
2. Jeżeli licznik nie jest podzielny przez 3 to rysuj pionową kreskę.
3. Jeżeli licznik jest podzielny przez 3 to...i tu mam problem.. bo jest warunek else if( i != 9 )i tu liczba jes np rozna od 9 to powinien narysowac \n---+---+---\n"; a w przeciwnym wypadku dopiero przejsc do nowej lini :/ pewnie to banalne.... dzieki




P-55075
DejaVu
» 2012-04-23 16:18:08
To samo zapisane inaczej (czytelniej):
C/C++
if( i % 3 != 0 )
{
    cout << "|";
}
else
{
    if( i != 9 )
    {
        cout << "\n---+---+---\n";
    } else
    {
        cout << endl;
    }
}
P-55076
Zenjubo
Temat założony przez niniejszego użytkownika
» 2012-04-23 16:30:40
To rozumiem, tylko ze jeśli program przejdzie do tego
C/C++
if( i != 9 )
{
    cout << "\n---+---+---\n";
}
i np 3 jest rozne to wykona sie to cout << "\n---+---+---\n";, i jak dla mnie nie powinno sie wtedy wykonac to bo if zostal spelniony... wiec dlaczego przechodzi do else?
C/C++
} else
{
cout << endl;
}


P-55078
DejaVu
» 2012-04-23 16:35:07
Kod wykonuje się tak jak napisałem z rozpisaniem nawiasów. Jeżeli nie rozumiesz to » Kurs C++ » Poziom 1Instrukcja warunkowa if ... else lekcja.
P-55079
corthell
» 2013-04-10 09:25:27
Witam.

Podepnę się pod temat, ponieważ też pracuję nad grą kółko i krzyżyk, jednak w trochę rozszerzonej wersji.

Jest to wersja z planszą 10x10 a wygrywa gracz, który jako pierwszy zdobędzie 4 pola (poziom, pion i skos). Problem mój polega na tym, że nie mam pomysłu jak zrobić funkcję sprawdzającą fakt, że dany gracz zajął 4 sąsiadujące pola ;/ W wersji 3x3 (standart) poszdłem trochę na piechotę i napisałem dwie funkcje, które za każdym razem sprawdzały wszystkie kombinacje (3 poziom, 3 pion i 2 skos) dla danego gracza. Jeśli któraś z 8 kombinacji nie była spełniona to gramy dalej :). Jednak w rozszerzonej wersji, z moich obliczeń wynika, że takich kombinacji jest aż 218! więc to chyba trochę za dużo, żeby co kolejkę komputer wykonywał tyle sprawdzeń, mam rację? :) Proszę o jakąś podpowiedź lub nakierowanie mnie, bo patrząc na to, iż początkujący ze mnie programista trochę ciężko będzie mi wymyśleć coś lepszego i szybszego. Proszę o pomoc.

Pozdrawiam.
P-80310
usmiech
» 2013-04-11 03:33:42
Zastosuj:
 // bool TicTacToe::searchLine(const int &x, const int &y, const int &xAdd, const int &yAdd, const int &howManyToWin, const int      //&playerPiece)

Ale nie jest to proste.... Pozdrawiam :)

ps Nie wiem jak to robisz, ale w tym przypadku gra ta napisana jest z class TicTacToe, stad // bool TicTacToe::
P-80348
« 1 » 2
  Strona 1 z 2 Następna strona