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

Wyświetla źle zmienną (zamiast 'x' to '88')

Ostatnio zmodyfikowano 2015-09-22 16:01
Autor Wiadomość
Crisu
Temat założony przez niniejszego użytkownika
Wyświetla źle zmienną (zamiast 'x' to '88')
» 2015-09-20 15:08:19
Hej! na początek kod:
C/C++
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
int main()
{
    int a, b, c, d, e, f, g, h, i;
    int p, q, spr = 1;
    string imie;
    const char z = 'X', y = 'O';
    a = 1;
    b = 2;
    c = 3;
    d = 4;
    e = 5;
    f = 6;
    g = 7;
    h = 8;
    i = 9;
    {
        cout << "Kolko i krzyzyk\n";
        cout << "Jak sie nazywasz??";
        cin >> imie;
        cout << "Czesc, " << imie;
       
        do {
           
            system( "cls" );
           
            if( a == z && b == z && c == z )
            { cout << "Wygrałes!!\n"; spr = 2; }
            else if( d == z && e == z && f == z )
            { cout << "Wygrałes!!\n"; spr = 2; }
            else if( g == z && h == z && i == z )
            { cout << "Wygrałes!!\n"; spr = 2; }
            else if( a == z && d == z && g == z )
            { cout << "Wygrałes!!\n"; spr = 2; }
            else if( b == z && e == z && h == z )
            { cout << "Wygrałes!!\n"; spr = 2; }
            else if( c == z && f == z && i == z )
            { cout << "Wygrałes!!\n"; spr = 2; }
            else if( a == z && e == z && i == z )
            { cout << "Wygrałes!!\n"; spr = 2; }
            else if( c == z && e == z && g == z )
            { cout << "Wygrałes!!\n"; spr = 2; }
            else if( a == y && b == y && c == y )
            { cout << "Przegrales!!\n"; spr = 2; }
            else if( d == y && e == y && f == y )
            { cout << "Przegrales!!\n"; spr = 2; }
            else if( g == y && h == y && i == y )
            { cout << "Przegrales!!\n"; spr = 2; }
            else if( a == y && d == y && g == y )
            { cout << "Przegrales!!\n"; spr = 2; }
            else if( b == y && e == y && h == y )
            { cout << "Przegrales!!\n"; spr = 2; }
            else if( c == y && f == y && i == y )
            { cout << "Przegrales!!\n"; spr = 2; }
            else if( a == y && e == y && i == y )
            { cout << "Przegrales!!\n"; spr = 2; }
            else if( c == y && e == y && g == y )
            { cout << "Przegrales!!\n"; spr = 2; }
           
            else {
                cout << "Czesc, " << imie;
               
                cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n";
                cout << "\n\nGdzie chcesz postawic krzyzyk??\n";
                cin >> p;
                system( "cls" );
               
                if( p == 1 )
                { if( a == 1 )
                    { a = z;
                        cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; }
                    else
                    { cout << "Wprowadz inny znak\n";
                        cin >> p; } }
                else if( p == 2 )
                { if( b == 2 )
                    { b = z;
                        cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; }
                    else
                    { cout << "Wprowadz inny znak\n";
                        cin >> p; } }
                else if( p == 3 )
                { if( c == 3 )
                    { c = z;
                        cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; }
                    else
                    { cout << "Wprowadz inny znak\n";
                        cin >> p; } }
                else if( p == 4 )
                { if( d == 4 )
                    { d = z;
                        cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; }
                    else
                    { cout << "Wprowadz inny znak\n";
                        cin >> p; } }
                else if( p == 5 )
                { if( e == 5 )
                    { e = z;
                        cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; }
                    else
                    { cout << "Wprowadz inny znak\n";
                        cin >> p; } }
                else if( p == 6 )
                { if( f == 6 )
                    { f = z;
                        cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; }
                    else
                    { cout << "Wprowadz inny znak\n";
                        cin >> p; } }
                else if( p == 7 )
                { if( g == 7 )
                    { g = z;
                        cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; }
                    else
                    { cout << "Wprowadz inny znak\n";
                        cin >> p; } }
                else if( p == 8 )
                { if( h == 8 )
                    { h = z;
                        cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; }
                    else
                    { cout << "Wprowadz inny znak\n";
                        cin >> p; } }
                else if( p == 9 )
                { if( i == 9 )
                    { i = z;
                        cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; }
                    else
                    { cout << "Wprowadz inny znak\n";
                        cin >> p; } }
                else
                { cout << "Wprowadz inny znak\n";
                    cin >> p; }
            } }
        while( spr == 1 );
       
        system( "pause" );
        return 0;
    } }


i taki problem: jak kompiluje i wprowadzam "p", to powinno mi podstawić pod wskazane p 'X', tymczasem wyświetla 88.
I drugie pytanko:gdy da się dwa razy to samo miejsce lub znak z poza 1-9 to wyskakuje okno podaj inny znak i my wpisujemy, jednak program co bysmy nie wpisali spyta się poraz kolejny o wpisanie, a nie wstawi X tam gdzie podamy. Nie miało by to wiekszego znaczenia, ale gdy dokoncze program to miedzy "wstaw inny znak" a następną prośbą i wpisanie bedzie wstawienie znaku przez komputer, tak wiec gracz, który poda zle miejsce straci miejsce.

Dziękuje
P-137711
notabigthreat
» 2015-09-20 16:00:34
C/C++
int a;
a = 'X';
cout << a;
P-137712
Crisu
Temat założony przez niniejszego użytkownika
» 2015-09-20 16:10:35
Czyli potem mam sprawdzać to tak??

C/C++
if( a == 'X' && b == 'X' && c == 'X' )
{ cout << "Wygrałes!!\n"; spr = 2; }

a co z drugą częścią??
P-137714
notabigthreat
» 2015-09-20 16:20:50
W przykładzie
a
 jest typu
int
, ale
'X'
 jest typu
char
.
C/C++
int a;
a = 'X'; //tu 'X' musi zostać zamienione na int
//teraz a przechowuje 88
http://www.theasciicode.com.ar​/ascii-printable-characters​/capital-letter-x-uppercase-ascii-code-88.html
P-137715
Crisu
Temat założony przez niniejszego użytkownika
» 2015-09-20 18:41:44
No dobra. Czyli muszę pod a podstawić z. Ktoś mi powie jak to zrobić, skoro to są dwa inne typy?
Widziałem coś takiego:

liczba na znak - char (liczba lub zmienna typu int) np char(66) -> B

ale to działa gdy chcę podstawić konkretny znak, a ja potrzebuje tam zmiennej, no chyba że mogę porównać potem czy w miejscu zmiennej a pisze X (jeśli tak to powiedzcie jak).

BTW, żeby program wylosował mi jakas liczbe z zakresu od 1 do 9 moge po prostu napisać:
C/C++
int p;
p = 1 || p = 2 || p = 3( itd.)
??
P-137729
wojownik266
» 2015-09-20 18:55:01
Żeby wylosować jakąś liczbe to wydaje mi się że powinieneś użyć tych funkcji:
C/C++
include < ctime >

srand( time( NULL ) );
rand() % 9;
P-137730
Flozze
Program
» 2015-09-22 16:01:34
Jeśli można uznać to za właściwą poradę, to polecałbym Ci przeczytanie lekcji na temat instrukcji SWITCH i tablic jednowymiarowych i napisanie programu od nowa. Wydaje mi się, że to by było najprostsze i najlepsze rozwiązanie ;)
P-137805
« 1 »
  Strona 1 z 1