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

Snake czy ... wirus?

Ostatnio zmodyfikowano 2013-03-01 23:04
Autor Wiadomość
Berux
Temat założony przez niniejszego użytkownika
Snake czy ... wirus?
» 2013-03-01 22:38:26
Witam drogich forumowiczów. Zacząłem pisać sobie snake. Napisałem sobie pętlę wypisującą mapkę i uruchomiłem aplikację, aby sprawdzić czy działa poprawnie. Co zobaczyłem? Ujrzałem w konsoli różne "krzaczki", które wypisywały się na ekran bez końca. Przy tym jeszcze zaczął "piszczeć" komputer. Próbowałem przerwać proces przez menadżer zadań, ale nie udało mi się :(. W końcu zdecydowałem się wyłączyć komputer w sposób taki sam jak się go włącza. Gdy komputer się uruchamiał bałem się czy się uruchomi (trochę bez sensu to zdanie). Na szczęście wszystko się udało(uff...co za ulga...). Oto kod mojego snake'owego wirusa:

C/C++
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <ctime>

using namespace std;

int x = 50; // szerokosc
int y = 50; // gora/dol

class OBIEKT
{
public:
    int x;
    int y;
};

int main()
{
    srand( time( NULL ) );
   
    char znak;
    //MAPA
    char mapa[ y ][ x ];
   
    //WAZ
    OBIEKT waz;
    waz.y =( rand() % 10 );
    waz.x =( rand() % 10 );
    mapa[ waz.y ][ waz.x ] = 'N';
   
    //obiekty dodatkowe
    OBIEKT dodatek;
    dodatek.y =( rand() % 10 );
    dodatek.x =( rand() % 10 );
    mapa[ dodatek.y ][ dodatek.x ] = '$';
   
    while( znak != 27 )
    {
        for( int i = 0; i < 50; i++ )
        {
            for( int j = 0; j < 50; j++ )
            {
                if(( i % 9 ) == 0 )
                     cout << mapa[ i ][ j ] << endl;
               
                else
                     cout << mapa[ i ][ j ];
               
            }
        }
        if( kbhit() )
        {
            znak = getch();
           
        }
       
    }
   
    return 0;
}

Jeśli ktoś to coś skompiluje i uruchomi oraz zepsuje mu się komputer - nie odpowiadam za to :) -  to tak w razie czego

Proszę jedynie o wytłumaczenie, dlaczego kod nie działa jak powinien. Snake to, czy wirus?
P-77416
DejaVu
» 2013-03-01 22:40:08
C/C++
char mapa[ y ][ x ];
zamień na char na int lub wyczyść tablicę spacjami.
P-77417
Berux
Temat założony przez niniejszego użytkownika
» 2013-03-01 22:42:22
@DejaVu

Ale przecież ta tablica nie przechowuje liczb całkowitych, tylko znaki ('N', '$').

/edit:
Rzeczywiście. Całkiem zapomniałem o "czyszczeniu" tablicy , mimo tego, że ostatnio tak robiłem. Dzięki :)

@down:
Problem już rozwiązałem. A jeśli chodzi o minimalną wartość, to zdaje mi się, że domyślna jest 0, a o taką mi właśnie chodzi.
P-77418
megatron
» 2013-03-01 23:04:05
Mi sie wydaje ze to dla tego ze nie masz minimalnej wartosci podanej w losowaniu
P-77420
« 1 »
  Strona 1 z 1