Problem prostym programem (allegro a konsola)

Problem prostym programem (allegro a konsola)
0

Witam

Od paru godzin siedzę nad prostym programem i mnie zaraz krew zaleje. Muszę zrobić program gdzie użytkownik wprowadza liczbę, i jeżeli liczba jest parzysta to program rysuje na ekranie poruszające się koło, jeżeli liczba jest nieparzysta to program rysuje nieparzystą liczbę czerwonych kwadratów.
Problem polega na tym, że program który napisałem się kompiluje pięknie, jednak nie ma tego "menu" gdzie proszę o podanie liczby. Program po uruchomieniu od razu rysuje mi kółko i czeka na zakończenie.
Gdzie tkwi błąd?
Pozdrawiam serdecznie i z góry dziękuję za odp.

Kopiuj
#include <allegro.h>
#include <iostream>
#include <stdlib.h>

using namespace std;

int kolo()
{
    allegro_init();
    install_keyboard();
    
    int a=50;
    int b=50;
    int licznik;
    
    set_color_depth(32);
    set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 700, 0, 0);
    
    BITMAP *buffer = create_bitmap(640, 700);

    for (licznik=50; licznik<590; ++licznik)
    {
        clear_to_color( screen, makecol( 128, 128, 128 ) );
        circle( screen, ++a, ++b, 50, makecol( 0, 255, 48 ) );
        _sleep(8);
    }
}

int kwadraty()
{
    int wybor2;
    
    allegro_init();
    install_keyboard();
    set_color_depth(32);
    set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 700, 0, 0);
    
    BITMAP *buffer = create_bitmap(640, 700);
    
    rect( screen, 490, 390, 710, 510, makecol( 255, 0, 0 ) );
    
}
    
	
int main() 
{	
    int wybor;
    
    cout<<"Podaj cyfre: ";
    cin>>wybor;
    
    if (wybor%2==0)
    {
       kolo();
    }
    else
    {
        kwadraty();
    }
    readkey();
    allegro_exit();


}
END_OF_MAIN();

 
edytowany 1x, ostatnio: madmike
msm
Administrator
  • Rejestracja:prawie 16 lat
  • Ostatnio:5 miesięcy
0
Kopiuj
   cout<<"Podaj cyfre: ";
    cin>>wybor;

Zamień na

Kopiuj
   cout<<"Podaj cyfre: ";
    cin.sync();
    cin.get();
    cin>>wybor;

Powinno zadziałać.

edytowany 1x, ostatnio: msm
0

Nie działa...
Podejrzewam, że problem leży w tym, że ja utworzyłem project Allegro a nie konsolowy, ale nie wiem jak teraz zrobić by rozwiązać mój problem :(

msm
Administrator
  • Rejestracja:prawie 16 lat
  • Ostatnio:5 miesięcy
0

Ale masz konsolę w ogóle wyświetlaną na ekranie? Czy aplikacja jest tylko okienkowa...?

0

Nie.. mam normalne okienko "windowsowe". Nie otwiera się żadna konsola.

JA
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 6 lat
  • Lokalizacja:Białystok
  • Postów:258
0

Ja bym zrobił wszystko w allegro ;-)
Widzę trzy możliwości.

  1. Wyrzuć jakiś monit o podanie liczby, potem Readkey(), a następnie sprawdzenie, czy ostatni naciśnięty klawisz był parzysty/nieparzysty (nawet zwykłe 10 if'ów). Wiem, że to brzydkie i wredne rozwiązanie, ale działa i tu będzie najłatwiejsze w dodaniu.

  2. Użycie Allegro GUI (mi by się nie chciało tego tu wplątywać ;-P)

  3. Użycie http://old.devpaks.org/show.php?devpak=72 (to by mi się nie chciało martwić jak zintegrować dodatkowy moduł.)

Pozdrawiam,
Jadeszek

EDIT: http://4programmers.net/Forum/C_i_C++/59887-Bibliteka_allegro_i_pobieranie_danych

edytowany 1x, ostatnio: Jadeszek

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.