Program z dwoma równoległymi pętlami

0

Witam chciałem stworzyć program, który rysowałby pionową kreske a po dojściu owej kreski do jakiegoś punktu rysowałaby się druga kreska równolegle z tą pierwszą ale coś nie idze :-/ Oto kod:

#include <iostream>
#include <cstdlib>
#include <winbgim.h>


using namespace std;

int main(int argc, char *argv[])
{
    int x = 0,y;
    
    initwindow(400,300);
    setfillstyle(SOLID_FILL, BLUE);
    bar (0,0,getmaxx(),getmaxy());
    

    while (x < 50)
    {    
           putpixel(30,x+40,GREEN);
           cout << x;
           x++;
           delay(100);
              
           while (x >= 20) 
           {
               
              putpixel(50,60,GREEN);
              cout << y;
              y++;
              delay(100);  
               
           }    
    }

    while(!kbhit());
    closegraph();
    
  system("PAUSE");	
  return 0;
}
0

może dlatego, że w tej drugiej pętli rysujesz piksel cały czas w tym samym miejscu :)

0

Jeśli chodzi o to aby ta kreska rysowała się równocześnie z pierwszą to będzie tak:

#include <iostream>
#include <cstdlib>
#include <winbgim.h>


using namespace std;

int main(int argc, char *argv[])
{
    int x = 0;
   
    initwindow(400,300);
    setfillstyle(SOLID_FILL, BLUE);
    bar (0,0,getmaxx(),getmaxy());
   

    while (x < 50)
    {   
           putpixel(30,x+40,GREEN);
           cout << x;
           x++;
           delay(100);   

           if (x >= 20)
           {    
                  putpixel(50,x+40,GREEN);
                  cout << x;
                  delay(100);     
           }
    }

    while(!kbhit());
    closegraph();
   
  system("PAUSE");       
  return 0;
}

A jak pierwsza ma się zatrzymać, a druga rysować dalej, to będzie tak:

#include <iostream>
#include <cstdlib>
#include <winbgim.h>


using namespace std;

int main(int argc, char *argv[])
{
    int x = 0,y;
   
    initwindow(400,300);
    setfillstyle(SOLID_FILL, BLUE);
    bar (0,0,getmaxx(),getmaxy());
   

    while (x < 50)
    {   
           putpixel(30,x+40,GREEN);
           cout << x;
           x++;
           delay(100);
             
           while (x >= 20)
           {
               
              putpixel(50,x+40,GREEN);
              cout << x;
              x++;
              delay(100);
 
              if(x>100)
              {
                     break;
              } 
           }   
    }

    while(!kbhit());
    closegraph();
   
  system("PAUSE");       
  return 0;
}

Po co w twoim kodzie zmienna y skoro jej nie używasz do niczego poza wypisaniem jej na ekran?

1 użytkowników online, w tym zalogowanych: 0, gości: 1