Zadatak u Allegru, tri kruga unutar kojih su brojevi

Zadatak u Allegru, tri kruga unutar kojih su brojevi

offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3898
  • Gde živiš: Novi Sad,Klisa

Profesor mi je zadao neki zadatak da ga uradim u Allegru. Trazi da nacrtam tri kruga (koje crtam na nasumicnim pozicijama na ekranu), i da se unutar tih krugova poajave neki brojevi. Posle npr 2 sekunde brojevi nestaju i korisnik treba da isklikce krugove od onog u kom je bio upisan najmanji broj, do onog u kom je bio upisan najveci broj. Medjutim ja na samom startu imam problem. Ne znam kako da pozicioniram krugove na tri razlicita mesta posto mi se uvek iscrta samo jedan krug.

krug.h
#ifndef KRUG_H_INCLUDED #define KRUG_H_INCLUDED #include<allegro.h> struct krug {     int x;     int y;     krug();    void CrtajKrug()     {     circlefill(screen, x, y, 20, makecol(255,255, 255));     } }; #endif // KRUG_H_INCLUDED

krug.cpp
#include"krug.h" #include<allegro.h> #include<time.h> krug::krug() {     srand(time(NULL));     x = rand() % 800;     y = rand() % 600; }
i na kraju main
#include<allegro.h> #include <cstdlib> #include "krug.h" using namespace std; int main() {     allegro_init();     install_mouse();     install_keyboard();     set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0);     krug kr[3];     /*Pomislio sam da su mi svi krugovi iscrtani     jedan na drugi pa sam ovako probao da resim taj problem, medjutim bezuspesno */     for(int i = 0; i < 3;i ++)         for(int j = i + 1; j < 3; j++)     {         if(kr[i].x == kr[j].x)         {             srand(time(NULL));             kr[j].x = rand() % 800;         }     }     for(int i = 0; i < 3; i++)     {         kr[i].CrtajKrug();     }     readkey();     allegro_exit(); } END_OF_MAIN();



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 19 Maj 2011
  • Poruke: 297

srand funkciju treba da pozoves samo jedanput!
Stavi je recimo odmah na pocetku main i obrisi ostale:
int main() {     srand(time(NULL));     ... // ostalo

Ne znam kako ces da resis ako se krugovi seku pa se brojevi zamrse? Mr. Green



offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3898
  • Gde živiš: Novi Sad,Klisa

Napisano: 30 Apr 2013 20:54

to je najmanji problem Smile

Dopuna: 30 Apr 2013 21:04

Hvala! To je pomoglo Ziveli

Ko je trenutno na forumu
 

Ukupno su 841 korisnika na forumu :: 6 registrovanih, 0 sakrivenih i 835 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Rade, draggan, Koridor, Shilok, simazr, Vlajman1957