Показать сообщение отдельно
  #28 (permalink)  
Старый 21.12.2015, 05:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Cм. Спойлер:
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="robots" content="noindex">
  <title> Sudoku </title>
<script src='http://code.jquery.com/jquery-1.11.0.js'></script>
<style>
#out {
 table-layout:fixed;
}
#out td{
 width:34px;
 height:34px;
 text-align:center;
 vaertical-align: middle;
}
#out,
#out tr,
#out td{
 padding: 0px;
 margin: 0px;
 border:none 0;
 border-collapse:collapse;
}
#out td{
 border: rgba(0,0,0,.1) solid 1px;
}
</style>
</head>
<body>
<div id=wrap><table id=out><tbody></tbody></table></div>
<p></p>
<p></p>
<input type="number" min="2" max="20"  value="4" id="in00"><input type="button" value="go" onclick="randomSudoku(+(in00.value))">

<script>
  function indexRandom(lng){
     var a = {},i,out=[],n=0;
     for(i=0;i<lng;i++)a[i]=i;
     while (n!=lng){
       i = Math.floor(lng*Math.random());
       if(typeof(a[i])!='undefined'){
         out.push(a[i]);
         delete a[i];
         n++;
       }
     }
    return out;
  } 
 
randomSudoku = function (lng) {
    var ind = indexRandom(lng); //рандом первой строки;
    var ranTR = indexRandom(lng); //рандом перекида порядка строк в таблице;
    var ranCols = indexRandom(lng); //рандом перекида порядка стобцов в таблице;
    var ar0 = [],arr = [],i,j;
    ar0[0]=ind;             //Рандом для первой строки

    for(i=1;i<lng;i++){    //Формируем табличку
      ar0[i]=ar0[i-1].slice(0);
      ar0[i].unshift(ar0[i].pop());
    }
    for(i=0;i<lng;i++){    //рандом стобцов;
      arr[i]=[];
      for(j=0;j<lng;j++)arr[i][j]=ar0[i][ranCols[j]];
    }

    var out=[];$('#out tr').remove();
    for(i=0;i<lng;i++){
      out[i]=arr[ranTR[i]];//рандом строк;
      var str ='<tr>';
      for(j=0;j<lng;j++)str+='<td>'+out[i][j]+'</td>';
      str+='</tr>';$('#out tbody').append(str)
    }

  }


</script>

</body>
</html>

==========================
Гы, хотя это может еще не судоку - посмотрел Вики(я то неповторяемость по строкам и столбцам смотрел, а там ток с 9Х9 и чоб в 3Х3 не повторялось); Можа завтра докую...
А может и Судоку... (Засыпаю ... нужон критик...)

Последний раз редактировалось Deff, 22.12.2015 в 17:54.
Ответить с цитированием