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

[C++]Prosty blad z klasa

Ostatnio zmodyfikowano 2012-09-10 07:32
Autor Wiadomość
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
» 2012-09-07 22:41:05
Widze, ze praktycznie jednoczesnie edytowalismy posty. ;p
Teraz wszystko ok, dzieki za pomoc, postaram sie byc uwazniejszym. Tematu narazie nie zamykam, moze sie jeszcze czegos zapytam, a nie bede otwierac nowych tematow, zeby spamu nie bylo.

EDIT:
Bede juz kolorowac skladnie.
P-64557
cyklopek11
» 2012-09-07 22:47:58
Ale muszę przyznać że crash Twojego programu jest świetny. Program zaczął wypisywać na konsoli zawartość przestrzeni wirtualnej własnego procesu :-)

<<Removed By DejaVu - szlaczków nie ma sensu wklejać na forum :) >>

OK.
P-64558
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
» 2012-09-07 23:24:27
Nawet nie wiem co sie stalo: Gdy kompiluje i jednoczesnie wlaczam program program to pisze, ze progam przestal dzialac (ot tak bez powodu), a w samym C:B pisze, ze proces returned <bardzo mala liczba minusowa>

U was jest to samo?

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


char map[ 5 ][ 10 ] {
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'
};

using namespace std;

struct Position2D
{
    int x, y;
};

class Game //KLASA GRY
{
    Position2D player;
    int ruch;
   
   
public:
   
   
    void move()
    {
        char ruch = getch();
       
        switch( ruch )
        {
        case 'w':
            if( map[ player.y-- ][ player.x ] = '.' )
                 player.y--;
           
            map[ player.x ][ player.y++ ] = '.';
            break;
           
        case 's':
            if( map[ player.y++ ][ player.x ] = '.' )
                 player.y++;
           
            map[ player.x ][ player.y-- ] = '.';
            break;
           
        case 'a':
            if( map[ player.y ][ player.x-- ] = '.' )
                 player.x--;
           
            map[ player.x++ ][ player.y ] = '.';
            break;
           
        case 'd':
            if( map[ player.y ][ player.x++ ] = '.' )
                 player.x++;
           
            map[ player.x-- ][ player.y ] = '.';
            break;
           
        }
    }
   
    void put_player()
    {
        map[ player.y ][ player.x ] = '&';
    }
   
    void draw_map()
    {
       
        for( int i = 0; i < 5; i++ )
        {
            for( int j = 0; j < 10; j++ )
            {
                cout << map[ i ][ j ];
            }
            cout << endl;
        }
       
    } //draw_map
   
}; //KONIEC KLASY GRY

int main()
{
    Game g;
    for(;; )
    {
        g.draw_map();
        g.put_player();
        g.move();
    }
    return 0;
}
P-64559
ison
» 2012-09-07 23:46:03
nie zerujesz zmiennych w Position2D player więc pewnie w tym miejscu się wywala
map[ player.y ][ player.x ] = '&';
P-64560
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
» 2012-09-08 17:51:22
Chodzi o zrobienie czegos takiego?

C/C++
Game()
    : score( 0 )
{
    player.x = 1;
    player.y = 1;
   
}
Jezeli tak, to czemu nie dziala move()?

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


char map[ 5 ][ 10 ] {
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
    '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'
};

using namespace std;

struct Position2D
{
    int x, y;
};

class Game //KLASA GRY
{
    Position2D player;
    int ruch, score;
   
   
public:
   
    Game()
        : score( 0 )
    {
        player.x = 1;
        player.y = 1;
       
    }
   
    void move()
    {
        char ruch = getch();
       
        switch( ruch )
        {
        case 'w':
            if( map[ player.y-- ][ player.x ] = '.' )
                 player.y--;
           
            break;
           
        case 's':
            if( map[ player.y++ ][ player.x ] = '.' )
                 player.y++;
           
            break;
           
        case 'a':
            if( map[ player.y ][ player.x-- ] = '.' )
                 player.x--;
           
            break;
           
        case 'd':
            if( map[ player.y ][ player.x++ ] = '.' )
                 player.x++;
           
            break;
           
        }
    }
   
    void put_player()
    {
        map[ player.y ][ player.x ] = '&';
    }
   
    void draw_map()
    {
       
        for( int i = 0; i < 5; i++ )
        {
            for( int j = 0; j < 10; j++ )
            {
                cout << map[ i ][ j ];
            }
            cout << endl;
        }
       
    } //draw_map
   
}; //KONIEC KLASY GRY

int main()
{
    Game g;
    for(;; )
    {
        system( "cls" );
        g.draw_map();
        g.put_player();
        g.move();
    }
    return 0;
}
P-64600
ison
» 2012-09-08 18:25:29
Jezeli tak, to czemu nie dziala move()?
bo zrobiłeś mnóstwo bezsensownych rzeczy w kodzie, wróć do kursu
P-64612
Giedzu
» 2012-09-10 07:32:43
"=" - przypisanie
"==" - porównanie
P-64749
1 « 2 »
Poprzednia strona Strona 2 z 2