Forum FAQForum FAQSearchSearch MemberlistMemberlist Forum ignore listForum ignore list RegisterRegister ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in
kako isipsati 7 random unikatnih brojeva od 1 do 39

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Flash
View previous topic :: View next topic  
Author Message
sinisa.kusic



Joined: 26 Jul 2005
Posts: 728
Location: Rijeka

PostPosted: 13.03.2006 23:40    Post subject: kako isipsati 7 random unikatnih brojeva od 1 do 39 Add user to your forum ignore list Reply with quote

Molim vas, ako znate, kako ispisati 7 random brojeva "unikatnih", dakle da se neoponavljaju u 7 različitih text polja?

Dakle, imam ( primjera radi ) tih 7 polja kojih pritiskom na gumb trebam pouniti s 7 unikatnih brojeva u rasponu od 1 do 39. Sve super sve pet, šala, zezazncija do dijela di trebam ubacit baš unikatne brojeve.

Molim vas ako imate kakvu ideju da to napravim.
Kako provjeriti da mi broj već nije izašao tako da ga neponovim?



Unaprijed zahvalan,

feelfree
Back to top
View user's profile Send private message Send e-mail MSN Messenger
sinisa.kusic



Joined: 26 Jul 2005
Posts: 728
Location: Rijeka

PostPosted: 14.03.2006 03:40    Post subject: Add user to your forum ignore list Reply with quote

Evo 2:35 je u jutro, oči su mi ko' krafne i mislim da sam riješio stvar. Pa da isložim riješenje:
Code:

_root.dugme.onRelease = function()
{
   brojeviArray = new Array(1,2,3,4,5,6,7,8,9,10,
                      11,12,13,14,15,16,17,
                      18,19,20,21,22,23,24,
                      25,26,27,28,29,30,31,
                      32,33,34,35,36,37,38,39);
   
   total = brojeviArray.length;
   
   /*================================================================
   |   BROJ 1                                                        |
   =================================================================*/
   rdm = Math.round(Math.random() * 38);
   _root.broj1.text = brojeviArray[rdm];
   
   /*================================================================
   |   BROJ 2                                                        |
   =================================================================*/
   rdm = Math.round(Math.random() * 38);
   if(brojeviArray[rdm] == _root.broj1.text)
   {
      if((rdm >= 1) || (rdm <= 38))
      {
         rdm++;
         _root.broj2.text = brojeviArray[rdm];
      }
      else
      {
         rdm--;
         _root.broj2.text = brojeviArray[rdm];
      }
   }
   else
   {
      _root.broj2.text = brojeviArray[rdm];
   }
   
   /*================================================================
   |   BROJ 3                                                        |
   =================================================================*/
   rdm = Math.round(Math.random() * 38);
   if((brojeviArray[rdm] == _root.broj1.text)
                || (brojeviArray[rdm] == _root.broj2.text))
   {
      if((rdm >= 1) || (rdm <= 38))
      {
         rdm++;
         _root.broj3.text = brojeviArray[rdm];
      }
      else
      {
         rdm--;
         _root.broj3.text = brojeviArray[rdm];;
      }
   }
   else
   {
      _root.broj3.text = brojeviArray[rdm];
   }
   
   /*================================================================
   |   BROJ 4                                                        |
   =================================================================*/
   rdm = Math.round(Math.random() * 38);
   if((brojeviArray[rdm] == _root.broj1.text)
                || (brojeviArray[rdm] == _root.broj2.text)
                || (brojeviArray[rdm] == _root.broj3.text))
   {
      if((rdm >= 1) || (rdm <= 38))
      {
         rdm++;
         _root.broj4.text = brojeviArray[rdm];
      }
      else
      {
         rdm--;
         _root.broj4.text = brojeviArray[rdm];
      }
   }
   else
   {
      _root.broj4.text = brojeviArray[rdm];
   }
   
   /*================================================================
   |   BROJ 5                                                        |
   =================================================================*/
   rdm = Math.round(Math.random() * 38);
   if((brojeviArray[rdm] == _root.broj1.text)
                || (brojeviArray[rdm] == _root.broj2.text)
                || (brojeviArray[rdm] == _root.broj3.text)
                || (brojeviArray[rdm] == _root.broj4.text))
   {
      if((rdm >= 1) || (rdm <= 38))
      {
         rdm++;
         _root.broj5.text = brojeviArray[rdm];
      }
      else
      {
         rdm--;
         _root.broj5.text = brojeviArray[rdm];
      }
   }
   else
   {
      _root.broj5.text = brojeviArray[rdm];
   }
   
   /*================================================================
   |   BROJ 6                                                        |
   =================================================================*/
   rdm = Math.round(Math.random() * 38);
   if((brojeviArray[rdm] == _root.broj1.text)
                || (brojeviArray[rdm] == _root.broj2.text)
                || (brojeviArray[rdm] == _root.broj3.text)
                || (brojeviArray[rdm] == _root.broj4.text)
                || (brojeviArray[rdm] == _root.broj5.text))
   {
      if((rdm >= 1) || (rdm <= 38))
      {
         rdm++;
         _root.broj6.text = brojeviArray[rdm];
      }
      else
      {
         rdm--;
         _root.broj6.text = brojeviArray[rdm];
      }
   }
   else
   {
      _root.broj6.text = brojeviArray[rdm];
   }
   
   /*================================================================
   |   BROJ 7                                                       |
   =================================================================*/
   rdm = Math.round(Math.random() * 38);
   if((brojeviArray[rdm] == _root.broj1.text)
                || (brojeviArray[rdm] == _root.broj2.text)
                || (brojeviArray[rdm] == _root.broj3.text)
                || (brojeviArray[rdm] == _root.broj4.text)
                || (brojeviArray[rdm] == _root.broj5.text)
                || (brojeviArray[rdm] == _root.broj6.text))
   {
      if((rdm >= 1) || (rdm <= 38))
      {
         rdm++;
         _root.broj7.text = brojeviArray[rdm];;
      }
      else
      {
         rdm++;
         _root.broj7.text = brojeviArray[rdm];
      }
   }
   else
   {
      _root.broj7.text = brojeviArray[rdm];
   }
}


Hvala iako niste stigli posat, da ste imali vremena znam da bi Smile

PS: Znam da nije najelegantje riješenje i sigurno ima bolji način ali ja sam umoran a ovo radi Cool
Back to top
View user's profile Send private message Send e-mail MSN Messenger
sinisa.kusic



Joined: 26 Jul 2005
Posts: 728
Location: Rijeka

PostPosted: 14.03.2006 03:51    Post subject: Add user to your forum ignore list Reply with quote

aaaaaaaaaaaaaaa je...... mu ne radi. Nakon podosta klikanja izbaci mi dva ista broja. Ima li ko riješenje, savjet, bilo šta??? Crying or Very sad

pleeeeeeeeeeeaseeeeeeeee
Back to top
View user's profile Send private message Send e-mail MSN Messenger
Granda



Joined: 11 Aug 2005
Posts: 51

PostPosted: 14.03.2006 09:49    Post subject: Add user to your forum ignore list Reply with quote

nemam ti sad vremena pisat kod, no logika je slljedeča ;

Trebaš imat array sa brojevima koje koristiš u ovom slučaju "brojeviArray" i još jedan array gdje imaš iskorištene brojeve npr "pushed_brojeviArray", sve to u _root-u.

Pogledaj funkcije od array-a na macromedia site-u, jednostavne su.

Onda napraviš za svaki gumb Onrelease uzmi Rand broj iz array-a, pogledaj dali je več iskorišten(vidiš u array-u "pushed_brojeviArray"), ako nije stavi ga u prvo polje ako je dalje vrti loop dok ne nađeš neki koji nije iskorišten. tj. nije u "pushed_brojeviArray".

To ti je unique rješenje za bezbroj gumba a ne samo 7.
Back to top
View user's profile Send private message
Ivan Podrug - e1



Joined: 15 Apr 2005
Posts: 316
Location: Solin

PostPosted: 14.03.2006 10:35    Post subject: Add user to your forum ignore list Reply with quote

bez uspoređivanja ide brže.

imaš Array.slice

sa random funkcijom "čupkaš" jedan po jedan element iz seta brojeva i guraš u novi Array sa rezultatom (Array.push).
Back to top
View user's profile Send private message
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 14.03.2006 11:35    Post subject: Add user to your forum ignore list Reply with quote

Dobro su ti likovi rekli... inače program ima 3 linije koda, stvarno nisi normalan što si ono gore pisao Surprised
Back to top
View user's profile Send private message Send e-mail Visit poster's website
astolitu



Joined: 26 Jun 2004
Posts: 547
Location: Zagreb

PostPosted: 14.03.2006 12:25    Post subject: Add user to your forum ignore list Reply with quote

Sulien wrote:
Dobro su ti likovi rekli... inače program ima 3 linije koda, stvarno nisi normalan što si ono gore pisao Surprised


pa napisi tri jebene linije Question

_________________
http://www.markobjedov.com/
Back to top
View user's profile Send private message Visit poster's website Twitter profile
carr



Joined: 13 Nov 2003
Posts: 1397
Location: Karlovac

PostPosted: 14.03.2006 12:46    Post subject: Add user to your forum ignore list Reply with quote

Code:
// obzirom da se vjerojatno radi o lutriji polje se puni dinamicki
// tako da mozes napraviti jednom ako oces i loto 6/45
total = 39;
limit = 7;

// polje s oridjidji brojevima
brojeviArray = new Array();
// polje se izvucenim brojevima
brojevi = new Array();

// puni polje
for(i=1;i<=total;i++)
   brojeviArray.push(i);

// napuni ga
while(brojevi.length < limit){
 rnd = Math.round(Math.random() * 38);
 brojevi.push( brojeviArray.slice(rnd, rnd+1)[0] );
}

for(i=0;i<brojevi.length;i++)
   trace(brojevi[i]);

_________________
Bolje biti malo lud, nego malo pametan.
Back to top
View user's profile Send private message Visit poster's website
sinisa.kusic



Joined: 26 Jul 2005
Posts: 728
Location: Rijeka

PostPosted: 14.03.2006 12:55    Post subject: Add user to your forum ignore list Reply with quote

hvala na logici, hvala na idejama, care evo sad ću probat tvoje riješenje.
@Sulien nemam razvijenu progamersku logiku, nisam programer i znam nisam normalan Smile

Hvala svima
Back to top
View user's profile Send private message Send e-mail MSN Messenger
sinisa.kusic



Joined: 26 Jul 2005
Posts: 728
Location: Rijeka

PostPosted: 14.03.2006 13:30    Post subject: Add user to your forum ignore list Reply with quote

@Carr tvoj kod iako paktičniji, čitljiviji i logičniji radi istu stvar kao i moj, ponavlja dva ista broja Crying or Very sad
Back to top
View user's profile Send private message Send e-mail MSN Messenger
carr



Joined: 13 Nov 2003
Posts: 1397
Location: Karlovac

PostPosted: 14.03.2006 14:49    Post subject: Add user to your forum ignore list Reply with quote

moj zajeb, pobrkao sam slice i splice funkcije
evo ispravljeno
Code:
// obzirom da se vjerojatno radi o lutriji polje se puni dinamicki
// tako da mozes napraviti jednom ako oces i loto 6/45
total = 39;
limit = 7;

// polje s oridjidji brojevima
brojeviArray = new Array();
// polje se izvucenim brojevima
brojevi = new Array();

// puni polje
for(i=1;i<=total;i++)
   brojeviArray.push(i);

// napuni ga
while(brojevi.length < limit){
 rnd = Math.round(Math.random() * (brojeviArray.length-1));
 brojevi.push( brojeviArray.splice(rnd, 1)[0] );
}

for(i=0;i<brojevi.length;i++)
   trace(brojevi[i]);

_________________
Bolje biti malo lud, nego malo pametan.
Back to top
View user's profile Send private message Visit poster's website
sarma



Joined: 02 Nov 2004
Posts: 99
Location: Osijek/ZG, Croatia

PostPosted: 14.03.2006 15:02    Post subject: Add user to your forum ignore list Reply with quote

-- možeš probati i ovo Wink
Code:
//*******************************************************************************
//ispiši 7 različitih brojeva od 1 - 39
function getSerious(){
   var Brojevi:Array = new Array();
   for(var i:Number =0;i<40;i++){
      Brojevi[i] = i;
   }
   //TextBox ti je primjer za tvoje tekstove :)
   var TextBox:Array = new Array(6);
   for(var n:Number=0;n<7;n++){
      TextBox[n] = Brojevi[random(i)];
      trace("TextBox"+n+" "+TextBox[n]);
   }
}
//udri brigu na veselje .......
getSerious();
//*********************************************************************************


--par puta CTRL+ENTER pa vidi

HELLO MR. SCIENTIST!!!111

_________________
-- 45th generation Roman --
Back to top
View user's profile Send private message
sinisa.kusic



Joined: 26 Jul 2005
Posts: 728
Location: Rijeka

PostPosted: 14.03.2006 15:36    Post subject: Add user to your forum ignore list Reply with quote

super sad sve radi. Hvala na quick riješenju. Hvala svima.
Na meni je sada da dooobro proučim vaše primjere i pokušam nešto naučit.

@Carr Budemo se dogovorili za postotak Wink
Back to top
View user's profile Send private message Send e-mail MSN Messenger
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 14.03.2006 15:54    Post subject: Add user to your forum ignore list Reply with quote

astolitu wrote:
Sulien wrote:
Dobro su ti likovi rekli... inače program ima 3 linije koda, stvarno nisi normalan što si ono gore pisao Surprised

pa napisi tri jebene linije Question

pa neću valjda sve radit, vidiš da su drugi uskočili

ali eto ti te 3 linije u PHP, nije teško prevest

Code:
function loto($num, $size){
   $results = array();
   while(count($results)<$num) if(!in_array(($n=rand(1,$size)),$results)) $results[]=$n;
   return $results;
}


EDIT: sad sam se zaletio u reference i vidim da ActionScript nema array search... Confused hm hm onda se ipak ne može prevest bez da se doda još koja linija

...svejedno, dodatna linija ili ne, primijeti kontrast između ovoga i svojeg prvog rješenja, Feelfree Smile
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Flash All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group