Wpis z mikrobloga

#cpp

Mam taki kod:

#include
#include
#include
#include // biblioteka dla generatora liczb losowych
#include
#include

using namespace std;

char sciany (int i, int j){
for (int z = 0; z < 15; ++z){ // b---a
for (int y = 0; y < 10; ++y) //sciany
for (int x = 0; x < 20; ++x){ //sciany
if(y==0||y==9||x==0||x==19){
if (x==19) printf("#\n");
else printf("#");
}
else if (z==y && x==i){
textcolor(13);
putch(1);

}
else printf (" ");
}
Sleep(300);
system("CLS");
}
}

int main()
{
char j='a';
while (j!='j'){
system("CLS");
srand(time(0));

int i=(rand()%8)+1;
j=sciany(i,j);
}
getch();
return 0;
}

I chciałbym, aby, przy zetknięciu z podłożem, opadający element znikał (+ żeby podłoże znikało), ale jeśli element będzie ponownie przechodził tą samą drogą to ma przelatywać dalej. Jakaś podpowiedź? Kompletnie nie mam pomysłu jak rozbudować kod..
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@CoffeeBreak: jeżeli dobrze to rozumiem - generujesz sobie klocek, który spada pionowo w dół. Masz podłoże gdzieś zapisane i jeżeli klocek ma kolizję z podłożem oba znikają.
Musisz gdzieś przechowywać współrzędne podłoża - najprościej w wektorze, i jak kontakt - usuwasz element podłoża z kontenera i na współrzędnych usuwanego obiektu wstawiasz spację.
  • Odpowiedz
Fakt z komentarzami, a raczej ich brakiem to dałem ciała po całości..

@anonimowy_anonim: Dokładnie tak. Tak to ma wyglądać. Ok chyba czaję o co chodzi. Tylko, jeżeli zostawię pętlę for 'iksową' odpowiedzialną za wstawianie 'podłoża (czyli znaczków: #), to jeżeli przypiszę nowy wektor z rzędem x, to czy przypadkiem znaki # nie będą dalej wyświetlane?
  • Odpowiedz
@CoffeeBreak: po co chcesz to za każdą iteracją pętli odświeżać? tylko raz rysujesz podłoże, potem modyfikujesz.
najprościej opisowo:
1. wypełnij kontener podłoża współrzędnymi podłoża i narysuj na ekranie
2. generuj obiekt spadający (masz współrzędne x,y)
--- 2.1 wykonaj ruch w dół (staw ' ' w aktualną pozycję klocka, zmień pozycję (dodajesz +1 do y), rysuj w nowej pozycji - wstaw np '#');
--- 2.2 sprawdź kolizję z podłożem (przeglądasz obiekty podłoża - gdy współrzędna któregokolwiek się zgadza z klockiem - jeśli nie ma kolizji (następna iteracja pętli),
  • Odpowiedz