Computer Science Canada

Tournament Help

Author:  l0tt0 [ Thu Dec 04, 2003 10:56 pm ]
Post subject:  Tournament Help

Hey Everyone, I made this tournament code for my site to find out who's where in the tournament. I haven't learned how to do tony's proc to check to make sure two numbers are the same so i just used the big exit when line. What i want to know is if there's anyway to amke it run faster besides a better system of making sure no matches are the same?

Thanks.

code:


 var l: array 1..8 of int       % First Set Of Numbers
 var r: array 1..8 of int       % Second Set Of Numbers
 var n: array 1..16 of string   % Name Of People Competing In Tournament

 
for x: 1..16                    % Getting The Names of People In The Tournament
    put "Please enter a name in the tournament(",x,")"
    get n(x)
end for
 
 
loop   
    cls
    for z: 1..8
        l(z):=Rand.Int(1,8)    % First Set Of Random Numbers
        r(z):=Rand.Int(1,8)    % Second Set Of Random Numbers
    end for
   
exit when l(1) not=l(2) and l(1) not=l(3) and l(1) not=l(4) and l(1) not=l(5) and l(1) not=l(6) and l(1) not=l(7) and l(1) not=l(8)
     and  l(2) not=l(3) and l(2) not=l(4) and l(2) not=l(5) and l(2) not=l(6) and l(2) not=l(7) and l(2) not=l(8)
     and  l(3) not=l(4) and l(3) not=l(5) and l(3) not=l(6) and l(3) not=l(7) and l(3) not=l(8)
     and  l(4) not=l(5) and l(4) not=l(6) and l(4) not=l(7) and l(4) not=l(8)
     and  l(5) not=l(6) and l(5) not=l(7) and l(5) not=l(8)
     and  l(6) not=l(7) and l(6) not=l(8)
     and  l(7) not=l(8)     
     and  r(1) not=r(2) and r(1) not=r(3) and r(1) not=r(4) and r(1) not=r(5) and r(1) not=r(6) and r(1) not=r(7) and r(1) not=r(8)
     and  r(2) not=r(3) and r(2) not=r(4) and r(2) not=r(5) and r(2) not=r(6) and r(2) not=r(7) and r(2) not=r(8)
     and  r(3) not=r(4) and r(3) not=r(5) and r(3) not=r(6) and r(3) not=r(7) and r(3) not=r(8)
     and  r(4) not=r(5) and r(4) not=r(6) and r(4) not=r(7) and r(4) not=r(8)
     and  r(5) not=r(6) and r(5) not=r(7) and r(5) not=r(8)
     and  r(6) not=r(7) and r(6) not=r(8)
     and  r(7) not=r(8)     
end loop

for a: 1..8
    put n(a),"-",l(a)         % Displays First 1-8 Names With Number
end for

for b: 1..8
    put n(b+8),"-",r(b)       % Displays Second Set of Names With Number
end for


Author:  Tony [ Thu Dec 04, 2003 11:53 pm ]
Post subject: 

Shocked

wow man... could you do yourself a favor and take Data Managment in grade 12?

When generating 8 random numbers (from 1 to 8), what are the chances of them to generate an unique list?

well chances of first to not repeat are 1/1
second - 7/8
third - 6/8
...
eighth - 1/8...

multiply all those numbers together... you get 0.0025

they translate into 1:400 odds of you generating a unique list Rolling Eyes

Author:  l0tt0 [ Sun Dec 07, 2003 11:59 pm ]
Post subject: 

huh?

im only in grade 10...but i think i understand what u said...almost

taht there's practically no chance of gettin those numbers...?

Author:  DanShadow [ Mon Dec 08, 2003 12:06 am ]
Post subject:  ..

ok....is this code s upposed to go through long random pointless (algorithyms) to find 1 person from each list to go against each other in a tournament? If so, its so much easier that that.
code:

var tournlist_1,tournlist_2:array 1..20 of int
var tourn_num1,tourn_num2:int:=1
randint(tourn_num1,1,20)
randint(tourn_num2,1,20)
put tournlist_1(tourn_num1)
put "faces off against"
put tournlist_2(tourn_num2)

Just ask for the names of the tournament people under the variables.
Hopefully I understood what your program was doing. (Maybe make a couple comments?)

Author:  AsianSensation [ Mon Dec 08, 2003 12:09 am ]
Post subject: 

but with your code, a person could go against him or herself.

Also, in a tournament, I think you only play each person once. Or something like that, so a bit of math is involved. just use the stuff you learned in data management.

Author:  Tony [ Mon Dec 08, 2003 10:09 am ]
Post subject: 

the guy is not in data managment, he's in grade 10 Rolling Eyes

anyways, here's the link to the source code for that random list generator. Try to understand how it works.

Author:  DanShadow [ Mon Dec 08, 2003 12:05 pm ]
Post subject:  ..

Ok, just make a new array...like for people who already played. Like.....
code:

var tournie_used_people:array 1..40 of int
%Do the script that makes a random name, and check if its not fighting itself...
%Then check this array to see if names have been picked, if they have, redo randint


: