version 1.40, 2002/05/03 19:44:13
|
version 1.41, 2002/05/03 20:13:14
|
Line 200 sub whichfoils {
|
Line 200 sub whichfoils {
|
|
|
my @truelist; |
my @truelist; |
my @falselist; |
my @falselist; |
|
my @whichfalse =(); |
|
|
my @names; |
my @names; |
if ( $Apache::response::foilgroup{'names'} ) { |
if ( $Apache::response::foilgroup{'names'} ) { |
@names= @{ $Apache::response::foilgroup{'names'} }; |
@names= @{ $Apache::response::foilgroup{'names'} }; |
} |
} |
foreach my $name (@names) { |
if (&Apache::response::showallfoils()) { |
#result.="<br /><b>$name</b> is <i> $Apache::response::foilgroup{$name.'.value'} </i>"; |
@whichfalse=@names; |
if ($Apache::response::foilgroup{$name.'.value'} eq 'true') { |
} else { |
push (@truelist,$name); |
foreach my $name (@names) { |
} elsif ($Apache::response::foilgroup{$name.'.value'} eq 'false') { |
#result.="<br /><b>$name</b> is <i> $Apache::response::foilgroup{$name.'.value'} </i>"; |
push (@falselist,$name); |
if ($Apache::response::foilgroup{$name.'.value'} eq 'true') { |
} elsif ($Apache::response::foilgroup{$name.'.value'} eq 'unused') { |
push (@truelist,$name); |
} else { |
} elsif ($Apache::response::foilgroup{$name.'.value'} eq 'false') { |
&Apache::lonxml::error(&HTML::Entites::encode("No valid value assigned ($Apache::response::foilgroup{$name.'.value'}) for foil $name in <foilgroup>")); |
push (@falselist,$name); |
|
} elsif ($Apache::response::foilgroup{$name.'.value'} eq 'unused') { |
|
} else { |
|
&Apache::lonxml::error(&HTML::Entites::encode("No valid value assigned ($Apache::response::foilgroup{$name.'.value'}) for foil $name in <foilgroup>")); |
|
} |
} |
} |
|
my $whichtrue = int(rand($#truelist+1)); |
|
&Apache::lonxml::debug("Max is $max, From $#truelist elms, picking $whichtrue"); |
|
while ((($#whichfalse+1) < $max-1) && ($#falselist > -1)) { |
|
&Apache::lonxml::debug("Have $#whichfalse max is $max"); |
|
my $afalse=int(rand($#falselist+1)); |
|
&Apache::lonxml::debug("From $#falselist elms, picking $afalse"); |
|
$afalse=splice(@falselist,$afalse,1); |
|
&Apache::lonxml::debug("Picked $afalse"); |
|
push (@whichfalse,$afalse); |
|
} |
|
splice(@whichfalse,$answer,0,$truelist[$whichtrue]); |
|
&Apache::lonxml::debug("the true statement is $answer"); |
} |
} |
my $whichtrue = int(rand($#truelist+1)); |
|
&Apache::lonxml::debug("Max is $max, From $#truelist elms, picking $whichtrue"); |
|
my @whichfalse =(); |
|
while ((($#whichfalse+1) < $max-1) && ($#falselist > -1)) { |
|
&Apache::lonxml::debug("Have $#whichfalse max is $max"); |
|
my $afalse=int(rand($#falselist+1)); |
|
&Apache::lonxml::debug("From $#falselist elms, picking $afalse"); |
|
$afalse=splice(@falselist,$afalse,1); |
|
&Apache::lonxml::debug("Picked $afalse"); |
|
push (@whichfalse,$afalse); |
|
} |
|
splice(@whichfalse,$answer,0,$truelist[$whichtrue]); |
|
&Apache::lonxml::debug("the true statement is $answer"); |
|
return @whichfalse; |
return @whichfalse; |
} |
} |
|
|
Line 357 sub end_foil {
|
Line 361 sub end_foil {
|
if ($value ne 'unused') { |
if ($value ne 'unused') { |
my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval); |
my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval); |
if (!$name) { $name=$Apache::lonxml::curdepth; } |
if (!$name) { $name=$Apache::lonxml::curdepth; } |
if ( $Apache::radiobuttonresponse::conceptgroup ) { |
if ( $Apache::radiobuttonresponse::conceptgroup |
|
&& !&Apache::response::showallfoils() ) { |
push @{ $Apache::response::conceptgroup{'names'} }, $name; |
push @{ $Apache::response::conceptgroup{'names'} }, $name; |
$Apache::response::conceptgroup{"$name.value"} = $value; |
$Apache::response::conceptgroup{"$name.value"} = $value; |
$Apache::response::conceptgroup{"$name.text"} = $text; |
$Apache::response::conceptgroup{"$name.text"} = $text; |