----------------------------------- johnbobbit Sun Jan 18, 2004 10:04 am Randomizing 5 different blocks ----------------------------------- thanks to some kind person who read my message i was able to get this far. I am trying to make my userInput procedure run 5 different sized boxes appear on the screen, each a different color according to size. The catch is that each time the program is run the order of the boxes has to change. I was unable to do this so can someone read my code and tell me how please. thanks %user input procedure userInput var x:array 1..5 of int:=init(60,80,100,120,140) var y:array 1..5 of int:=init(60,80,100,120,140) var space:array 1..5 of int:=init(-50,20,110,220,350) for i:1..5 randomize drawfillbox(space(i)+x(i),100,space(i)+x(i)+x(i),y(i)+100,i) end for end userInput userInput ----------------------------------- shorthair Sun Jan 18, 2004 10:34 am ----------------------------------- Rename the topic title please ,you will get more help , we know you need help because you posted in the HELP forum , ----------------------------------- johnbobbit Sun Jan 18, 2004 4:53 pm ok, i changed it ----------------------------------- ok i changed it, can u help me on the program? ----------------------------------- Tony Sun Jan 18, 2004 5:54 pm ----------------------------------- wow :lol: what the? :? all your values are hardcoded. And randomize is obsolite and does nothing. you need to use Rand.Int(). as in loop put Rand.Int(0,100) end loop ----------------------------------- johnbobbit Sun Jan 18, 2004 6:33 pm hello tony ----------------------------------- hello tony i've tried the randint command and it doesnt make anything better. What do u sugest i randomize or change %user input procedure userInput var x:array 1..5 of int:=init(60,80,100,120,140) var y:array 1..5 of int:=init(60,80,100,120,140) var space:array 1..5 of int:=init(-50,20,110,220,350) for i:1..5 randint(x(i),x(1),x(5)) drawfillbox(space(i)+x(i),200,space(i)+x(i)+x(i),y(i)+200,i) end for end userInput userInput thanks ----------------------------------- McKenzie Sun Jan 18, 2004 10:01 pm ----------------------------------- It's still hard to tell exactly what you need to do. The best I can understand by your description; the size and location of your boxes are the same each time but you want the order to change. Please clarify. (why have a -50 size ?) Must each of the 5 appear exactly once? Or is it the case that you want 5 randomly sized and located boxes (by what criteria does size translate to colour?) ----------------------------------- johnbobbit Sun Jan 18, 2004 10:09 pm Hi macKenzie ----------------------------------- for this program i need the size of the boxes to stay the same but for their x location to change everytime the program is run, in the order that it is right now it goes smallest to largest(1,2,3,4,5) but i need it to run different each time like( 2,3,4,1,5) for example. Also each time it is run i need the color to stay with the specific sized sqaure, for example the small square is always blue. thanks ----------------------------------- Boarder16 Sun Jan 18, 2004 10:40 pm ----------------------------------- if you wanted to go really simple (in my opinion0 you could do seperate procedures.. heres an EXAMPLE var box, boxx, boxy, boxc :int proc box1 drawfillbox(boxx,boxy,boxx+20(width of box),boxy+20(height of box),boxc(color of box) end box1 proc box2 drawfillbox(boxx,boxy,boxx+10(width of box),boxy+10(height of box),boxc(color of box) end box2 proc box3 drawfillbox(boxx,boxy,boxx+25(width of box),boxy+25(height of box),boxc(color of box) end box3 proc box4 drawfillbox(boxx,boxy,boxx+43(width of box),boxy+43(height of box),boxc(color of box) end box4 proc box5 drawfillbox(boxx,boxy,boxx+30(width of box),boxy+30(height of box),boxc(color of box) end box5 proc box6 drawfillbox(boxx,boxy,boxx+40(width of box),boxy+40(height of box),boxc(color of box) end box6 loop randint(boxx, 1, (maximum - however wide the box will be)(in other words how wide) randint(boxy, 1, (maximum - however tall teh box will be)(in other word how tall) randint(box, 1,6) if box = 1 then box1 elsif box = 2 then box2 elsif box = 3 then box3 elsif box = 4 then box4 elsif box = 5 then box5 elsif box = 6 then box6 end if %I'M NOT SURE HOW BUT YOU MUST FIND OUT HOW TO TAKE AWAY ONE VALUE FROM THE RANDINTS CHOICES, SO IT CANNOT CALL TEH SAME COLOR, OR BOX PROCEDURE TWICE... THIS IS A MORE SIMPLIER/EASIER WAY TO SEE OR UNDERSTAND IT..FOR ME ANYWAY BUT IT IS ALOT LENGTHIER THAN IT CAN BE DONE IN..I MEAN THIS IS VERY LONG LOL....BUT IF U DON'T CARE IT WILL BE FINE end loop MIND YOU THIS IS NOT THE COMPLETE CODE TO DO THIS..SOME TINKERING WILL HAVE TO BE DONE.. CASUE I JSUT TYPED IT NOW.. BUT IT IS A BASIC STRUCTURE FOR SOMETHIN LIKE THAT... OK