version 1.50, 2002/09/25 19:39:49
|
version 1.51, 2002/09/26 20:45:00
|
Line 218 sub whichfoils {
|
Line 218 sub whichfoils {
|
my $count=0; |
my $count=0; |
# we will add in 1 of the true statements |
# we will add in 1 of the true statements |
if (($falsecnt+1)>$max) { $count=$max } else { $count=$falsecnt+1; } |
if (($falsecnt+1)>$max) { $count=$max } else { $count=$falsecnt+1; } |
my $answer=int(rand($count)); |
my $answer=int(&Math::Random::random_uniform() * ($count)); |
&Apache::lonxml::debug("Count is $count, $answer is $answer"); |
&Apache::lonxml::debug("Count is $count, $answer is $answer"); |
my @names; |
my @names; |
if ( $Apache::response::foilgroup{'names'} ) { |
if ( $Apache::response::foilgroup{'names'} ) { |
Line 268 sub whichfoils {
|
Line 268 sub whichfoils {
|
} |
} |
} |
} |
#pick a true statement |
#pick a true statement |
my $whichtrue = int(rand($#truelist+1)); |
my $whichtrue = int(&Math::Random::random_uniform() * ($#truelist+1)); |
&Apache::lonxml::debug("Max is $max, From $#truelist elms, picking $whichtrue"); |
&Apache::lonxml::debug("Max is $max, From $#truelist elms, picking $whichtrue"); |
my $numinserted; |
my $numinserted; |
my (@toplist, @bottomlist); |
my (@toplist, @bottomlist); |
Line 277 sub whichfoils {
|
Line 277 sub whichfoils {
|
# which false is randomized, toplist bottomlist are in order |
# which false is randomized, toplist bottomlist are in order |
while ((($numinserted) < $max-1) && ($#falselist > -1)) { |
while ((($numinserted) < $max-1) && ($#falselist > -1)) { |
&Apache::lonxml::debug("Have $#whichfalse max is $max"); |
&Apache::lonxml::debug("Have $#whichfalse max is $max"); |
my $afalse=int(rand($#falselist+1)); |
my $afalse=int(&Math::Random::random_uniform() * ($#falselist+1)); |
&Apache::lonxml::debug("From $#falselist elms, picking $afalse"); |
&Apache::lonxml::debug("From $#falselist elms, picking $afalse"); |
$afalse=splice(@falselist,$afalse,1); |
$afalse=splice(@falselist,$afalse,1); |
&Apache::lonxml::debug("Picked $afalse"); |
&Apache::lonxml::debug("Picked $afalse"); |
Line 313 sub whichfoils {
|
Line 313 sub whichfoils {
|
$answer+=$topcount+$#whichfalse+1; |
$answer+=$topcount+$#whichfalse+1; |
$dosplice=0; |
$dosplice=0; |
} else { |
} else { |
if ($topcount>0) { $answer = int(rand($#whichfalse+1))+$topcount; } |
if ($topcount>0) { |
|
$answer = int(&Math::Random::random_uniform() * ($#whichfalse+1)) |
|
+ $topcount; |
|
} |
} |
} |
#add the top items to the top, bottom items to the bottom |
#add the top items to the top, bottom items to the bottom |
for (my $i=0;$i<=$#toplist;$i++) { |
for (my $i=0;$i<=$#toplist;$i++) { |
Line 412 sub end_conceptgroup {
|
Line 415 sub end_conceptgroup {
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') { |
if (defined(@{ $Apache::response::conceptgroup{'names'} })) { |
if (defined(@{ $Apache::response::conceptgroup{'names'} })) { |
my @names = @{ $Apache::response::conceptgroup{'names'} }; |
my @names = @{ $Apache::response::conceptgroup{'names'} }; |
my $pick=int(rand($#names+1)); |
my $pick=int(&Math::Random::random_uniform() * ($#names+1)); |
my $name=$names[$pick]; |
my $name=$names[$pick]; |
push @{ $Apache::response::foilgroup{'names'} }, $name; |
push @{ $Apache::response::foilgroup{'names'} }, $name; |
$Apache::response::foilgroup{"$name.text"} = $Apache::response::conceptgroup{"$name.text"}; |
$Apache::response::foilgroup{"$name.text"} = $Apache::response::conceptgroup{"$name.text"}; |
Line 443 sub start_foil {
|
Line 446 sub start_foil {
|
$result.=&Apache::edit::text_arg('Name:','name',$token); |
$result.=&Apache::edit::text_arg('Name:','name',$token); |
$result.=&Apache::edit::select_or_text_arg('Correct Option:','value', |
$result.=&Apache::edit::select_or_text_arg('Correct Option:','value', |
['unused','true','false'],$token); |
['unused','true','false'],$token); |
$result.=&Apache::edit::select_arg('Location:','location', |
my $randomize=&Apache::lonxml::get_param('randomize',$parstack, |
['random','bottom','top'],$token); |
$safeeval,'-3'); |
|
if ($randomize eq 'yes') { |
|
$result.=&Apache::edit::select_arg('Location:','location', |
|
['random','bottom','top'],$token); |
|
} |
$result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
$result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval, |
my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval, |