Diff for /loncom/homework/response.pm between versions 1.118 and 1.119

version 1.118, 2005/04/04 10:04:09 version 1.119, 2005/04/04 18:14:58
Line 119  sub setrandomnumber { Line 119  sub setrandomnumber {
     #  $rndseed=unpack("%32i",$rndseed);      #  $rndseed=unpack("%32i",$rndseed);
     my $rand_alg=&Apache::lonnet::get_rand_alg();      my $rand_alg=&Apache::lonnet::get_rand_alg();
     my $rndmod;      my $rndmod;
     if (!$rand_alg || $rand_alg eq '32bit' || $rand_alg eq '64bit' ||  
  $rand_alg eq '64bit2') {      my ($id1,$id2,$shift_amt);
  $rndmod=(&Apache::lonnet::numval($Apache::inputtags::part) << 10);      if ($Apache::lonhomework::parsing_a_problem) {
    $id1=$Apache::inputtags::part;
  if (defined($Apache::inputtags::response[-1])) {   if (defined($Apache::inputtags::response[-1])) {
     $rndmod+=&Apache::lonnet::numval($Apache::inputtags::response[-1]);      $id2=$Apache::inputtags::response[-1];
  }   }
     } elsif ($rand_alg eq '64bit3') {   $shift_amt=scalar(@Apache::inputtags::responselist);
  $rndmod=(&Apache::lonnet::numval2($Apache::inputtags::part) << 10);      } elsif ($Apache::lonhomework::parsing_a_task) {
  if (defined($Apache::inputtags::response[-1])) {   $id1=$Apache::bridgetask::dimension;
     $rndmod+=&Apache::lonnet::numval2($Apache::inputtags::response[-1]);   if (defined($Apache::bridgetask::instance[-1])) {
       $id2=$Apache::bridgetask::instance[-1];
  }   }
    $shift_amt=scalar(@Apache::bridgetask::instance);
       } 
       &Apache::lonxml::debug("id1: $id1, id2: $id2, shift_amt: $shift_amt");
       if (!$rand_alg || $rand_alg eq '32bit' || $rand_alg eq '64bit' ||
    $rand_alg eq '64bit2') {
    $rndmod=(&Apache::lonnet::numval($id1) << 10);
    if (defined($id2)) { $rndmod+=&Apache::lonnet::numval($id2); }
       } elsif ($rand_alg eq '64bit3') {
    $rndmod=(&Apache::lonnet::numval2($id1) << 10);
    if (defined($id2)) { $rndmod+=&Apache::lonnet::numval2($id2); }
     } else {      } else {
  my $shift=(4*scalar(@Apache::inputtags::responselist))%30;   my $shift=(4*$shift_amt)%30;
  $rndmod=(&Apache::lonnet::numval3($Apache::inputtags::part) << (($shift+15)%30));   $rndmod=(&Apache::lonnet::numval3($id1) << (($shift+15)%30));
  if (defined($Apache::inputtags::response[-1])) {   if (defined($id2)) {
     $rndmod+=(&Apache::lonnet::numval3($Apache::inputtags::response[-1]) << $shift );      $rndmod+=(&Apache::lonnet::numval3($id2) << $shift );
  }   }
     }      }
     if ($rndseed =~/([,:])/) {      if ($rndseed =~/([,:])/) {

Removed from v.1.118  
changed lines
  Added in v.1.119


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>