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

Program sam sie wylacza po okolo 16 sekundach

Ostatnio zmodyfikowano 2012-09-22 11:21
Autor Wiadomość
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
Program sam sie wylacza po okolo 16 sekundach
» 2012-09-19 18:49:05
Prosze zobaczyc:

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

using namespace std;

int score_pc = 0, score_player = 0, ktopierwszy;

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 start()
    {
        cout << "Siema XD\n";
        getch();
    }
   
    void ruch_gracza2()
    {
        char ruch2 = getch();
       
        switch( ruch2 )
        {
        case 'q':
            if( map[ 1 ][ 1 ] != 3 )
                 map[ 1 ][ 1 ] = 4;
           
            break;
           
        case 'w':
            if( map[ 1 ][ 3 ] != 3 )
                 map[ 1 ][ 3 ] = 4;
           
            break;
           
        case 'e':
            if( map[ 1 ][ 5 ] != 3 )
                 map[ 1 ][ 5 ] = 4;
           
            break;
           
        case 'a':
            if( map[ 3 ][ 1 ] != 3 )
                 map[ 3 ][ 1 ] = 4;
           
            break;
           
        case 's':
            if( map[ 3 ][ 3 ] != 3 )
                 map[ 3 ][ 3 ] = 4;
           
            break;
           
        case 'd':
            if( map[ 3 ][ 5 ] != 3 )
                 map[ 3 ][ 5 ] = 4;
           
            break;
           
        case 'z':
            if( map[ 5 ][ 1 ] != 3 )
                 map[ 5 ][ 1 ] = 4;
           
            break;
           
        case 'x':
            if( map[ 5 ][ 3 ] != 3 )
                 map[ 5 ][ 3 ] = 4;
           
            break;
           
        case 'c':
            if( map[ 5 ][ 5 ] != 3 )
                 map[ 5 ][ 5 ] = 4;
           
            break;
           
           
        }
       
    }
   
    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;
   
    g.start();
    system( "cls" );
    srand( time( 0 ) );
    ktopierwszy = rand() % 50;
    cout << "ZACZYNA:";
    /*   if(ktopierwszy>50 || ktopierwszy==50)
        {
            cout<<" Gracz A";
        }
   
        if(ktopierwszy<50)
        {
            cout<<" Gracz B";
        }
        getch();*/
    system( "cls" );
   
    if( ktopierwszy == 1 || ktopierwszy == 0 )
    {
        for(;; )
        {
            cout << "\n  " << score_player << ":" << score_pc;
            cout << endl;
            g.draw_map();
            g.ruch_gracza2();
            g.czy_wygrana();
            system( "cls" );
            cout << "\n  " << score_player << ":" << score_pc;
            cout << endl;
            g.draw_map();
            g.ruch_gracza();
            g.czy_wygrana();
            system( "cls" );
        }
       
    }
   
    if( ktopierwszy == 2 )
    {
        for(;; )
        {
            cout << "\n  " << score_player << ":" << score_pc;
            cout << endl;
            g.draw_map();
            g.ruch_gracza();
            g.czy_wygrana();
            system( "cls" );
            cout << "\n  " << score_player << ":" << score_pc;
            cout << endl;
            g.draw_map();
            g.ruch_gracza2();
            g.czy_wygrana();
            system( "cls" );
        }
       
    }
   
   
   
    return 0;
   
}
P-65205
Mrovqa
» 2012-09-19 19:00:52
Debuguj. Myślisz, że chciałoby się komuś sprawdzać tyle kodu?
P-65212
poldek
» 2012-09-19 19:06:17
C/C++
srand( time( 0 ) );
ktopierwszy = rand() % 50;
i
C/C++
if( ktopierwszy == 1 || ktopierwszy == 0 )
{
    for(;; )
    {
        [...]
    }
   
}

if( ktopierwszy == 2 )
{
    for(;; )
    {
        [...]
    }
}
W ogole rozumiesz co piszesz ? Od razu po uruchomieniu program mi sie zamyka ... zgadni dlaczego...

Jak cos znajde to ci napisze.
Btw.
rozdziel ten kod na kilka plikow i pisz czytelniej ledwo sie moge z tego odczytac.
Powinienes sobie sam znalesc takie bledy w programie, to twoj program :)
P-65214
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
» 2012-09-19 21:32:59
To z ktopierwszy znalazlem juz.
Wiem, ale pomyslalem, ze moze to byc cos z brakiem konstruktorow czy cos takiego. Czy w tym moze byc problem?
P-65262
DejaVu
» 2012-09-19 22:35:10
Czy w tym moze byc problem?
Wydawało mi się, że programowanie polega na samodzielnym rozwiązywaniu problemów, a nie pytaniu co i rusz na forum 'gdzie jest błąd'. Od dłuższego czasu zadajesz pytania w stylu "znajdźcie mi błąd bo coś nie działa". Większość problemów wynika z braku znajomości podstaw programowania - weź sobie to do serca i zacznij pracować nad tym. Jeżeli pytasz nas 'gdzie jest błąd' to jest to równoważne z tym, że nie rozumiesz co piszesz, a zatem zlepiasz kod z innych zamiast go tworzyć na podstawie zdobytej wiedzy.
P-65269
bingo009
» 2012-09-20 21:46:22
Wez ta klase wpakuj do innego pliku i nie pisz odrazu cial funkcji w klasie. Przepraszam za brak polskich znakow, ale nie mam ich w telefonie.
P-65319
GoldWolf
» 2012-09-21 08:23:18
PoldekCię naprowadził błąd jest tutaj
ktopierwszy = rand() % 50;
Nie znając podstaw i tak tego nie ruszysz.

Mam inne pytanie bo u mnie jest błąd już na początku:
error C2470: 'map' : looks like a function definition, but there is no parameter list; skipping apparent body
C/C++
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
};
Dla mnie tutaj jest błąd, ale nie wiem inne kompilatory to puszczają, albo ja o czymś nie wiem? Używam - Microsoft Visual Studio 2010 Version 10.0.30319.1 (Installed Version: VC Express).
P-65323
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
» 2012-09-21 19:10:53
Jak juz mowilem zauwazylem to wczesniej, ale nie to jest przyczyna wylaczenia po 16 sekundach. Sprobuje zrobic petle opozniajaca, ale teraz mam powazniejszy problem.

PS: Cos musi byc u cb, bo moj kompilator uznaje to za poprawne (uzywam Code-Blocks)

Dodanie opozniacza jednak nie zalatwilo sprawy... Bede jeszcze myslal.
P-65356
« 1 » 2
  Strona 1 z 2 Następna strona