一个初学jq的初学者求指导!!!
jquery部分
// JavaScript Document
$(document).ready(function() {
var dif=prompt("请输入您的难度系数 1.地狱 2.困难 3.凡人 4.弱鸡");
switch(dif){
case "1":dif = parseInt(Math.random()*5+65); break;
case "2":dif = parseInt(Math.random()*5+55); break;
case "3":dif = parseInt(Math.random()*5+45); break;
case "4":dif = parseInt(Math.random()*5+35); break;
default:dif = parseInt(Math.random()*5+25);
}//该方法用于生成游戏的难度系统
var a=new Array(81);//首先生成一个length=81的数组
function selArr(a,n){
var x=new Array();
var y=new Array();
var z=new Array();
var b=new Array();
var bingo=new Array();
var x1=[1,2,3,4,5,6,7,8,9];
var y1=[1,2,3,4,5,6,7,8,9];
var z1=[1,2,3,4,5,6,7,8,9];
var xi=0;
var yi=0;
var zi=0;
var bi=0;
var bingoi=0;
var px=parseInt(n/9);
var py=n-parseInt(n/9)*9;
var gy=parseInt(px/3);
var gx=parseInt(py/3);
var pz=gx*3+gy*27;
for(var i=0;i<9;i++){
if(a[px*9+i]!=""){
x[xi]=parseInt(a[px*9+i]);
xi++;
}
}
for(var i2=0;i2<x.length;i2++){
for(var i1=0;i1<x1.length;i1++){
if(x[i2]==x1[i1]){
x1.splice(i1,1);
}
}
}
//alert(x1);
//横
for(var j=0;j<9;j++){
if(a[py+j*9]!=""){
y[yi]=parseInt(a[py+j*9]);
yi++;
}
}
for(var j2=0;j2<y.length;j2++){
for(var j1=0;j1<y1.length;j1++){
if(y[j2]==y1[j1]){
y1.splice(j1,1);
}
}
}
//alert(y1);
//竖
for(var h0=0;h0<3;h0++){
for(var h1=0;h1<3;h1++){
if(a[pz+h0+h1*9]!=""){
z[zi]=parseInt(a[pz+h0+h1*9]);
zi++;
}
}
}
for(var h2=0;h2<z.length;h2++){
for(var h3=0;h3<z1.length;h3++){
if(z[h2]==z1[h3]){
z1.splice(h3,1);
}
}
}
//alert(z1);
//格
for(var q=0;q<x1.length;q++){
for(var q0=0;q0<y1.length;q0++){
if(x1[q]==y1[q0]){
b[bi]=y1[q0];
bi++;
}
}
}
for(var q1=0;q1<b.length;q1++){
for(var q2=0;q2<z1.length;q2++){
if(b[q1]==z1[q2]){
bingo[bingoi]=z1[q2];
bingoi++;
}
}
}
//alert(bingo);
return bingo;
}
//根据数独的规则查找一个小格里可以填写数字的数组
function create(a){
for(var i=0;i<3;i++){
for(var j=0;j<3;j++){
for(var h=0;h<3;h++){
a[(i*30)+(j*9)+h]=ran(selArr(a,((i*30)+(j*9)+h)));
}
}
}
out:
for(var j=0;j<81;j++){
if(a[j]==undefined){
var a1=new Array();
var b=new Array();
var j1=0;
var flag=true;
do{
a1=and(selArr(a,j),b);
b[j1]=ran(a1);
if(b[j1]!=undefined){
a[j]=b[j1];
}else{
break out;
}
j1++;
flag=success(a);
}while(flag);
}
}
}
//该方法为该数独的核心算法用于生成一个完整的数独解
function succeed(a){
for(var i=0;i<81;i++){
if(a[i]==undefined){
return true;
}
}
return false;
}
//该方法用于判定数独是否生成成功
function and(a,b){
for(var z=0;z<a.length;z++){
for(var z1=0;z1<b.length;z1++){
if(a[z]==b[z1]){
a.splice(z,1);
}
}
}
return a;
}
//该方法是求两个数组的并集的算法
function success(a){
for(var i=0;i<81;i++){
if(a[i]==undefined){
if(selArr(a,i).length==0){
return true;
}
}
}
return false;
}
//该方法和create()方法配合使用
function ran(n){
var n1=new Array();
n1=n;
return n1[parseInt(Math.random()*(n.length))];
}
//该方法和selArr()方法合用用于随机选取一个数组里的一个元素
while(succeed(a)){
var a=new Array();
create(a);
}
//因为create()方法会有失败的数独集所以通过该循环来过滤
for(var j=0;j<81;j++){
$("#a"+j).val(a[j]);
}
//将数独解集先赋给事先写好的表格中
for(var h=0;h<dif;h++){
$("#a"+parseInt(Math.random()*82+1)).val("");
}
//根据难度系统在删去格子中元素值;
//从而生成一个数独游戏
});
html部分
<!doctype html>
<html>
<head>
<script src="../js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="../js/action.js"></script>
<link type="text/css" href="../css/style.css" rel="stylesheet">
<meta charset="UTF-8">
<title>数独</title>
</head>
<body>
<center>
<div id="d">
<h2>数独游戏</h2>
<table width="450" border="1">
<tbody>
<tr>
<td><input class="m1" id="a0"></td>
<td><input class="m1" id="a1"></td>
<td><input class="m1" id="a2"></td>
<td><input class="m" id="a3"></td>
<td><input class="m" id="a4"></td>
<td><input class="m" id="a5"></td>
<td><input class="m1" id="a6"></td>
<td><input class="m1" id="a7"></td>
<td><input class="m1" id="a8"></td>
</tr>
<tr>
<td><input class="m1" id="a9"></td>
<td><input class="m1" id="a10"></td>
<td><input class="m1" id="a11"></td>
<td><input class="m" id="a12"></td>
<td><input class="m" id="a13"></td>
<td><input class="m" id="a14"></td>
<td><input class="m1" id="a15"></td>
<td><input class="m1" id="a16"></td>
<td><input class="m1" id="a17"></td>
</tr>
<tr>
<td><input class="m1" id="a18"></td>
<td><input class="m1" id="a19"></td>
<td><input class="m1" id="a20"></td>
<td><input class="m" id="a21"></td>
<td><input class="m" id="a22"></td>
<td><input class="m" id="a23"></td>
<td><input class="m1" id="a24"></td>
<td><input class="m1" id="a25"></td>
<td><input class="m1" id="a26"></td>
</tr>
<tr>
<td><input class="m" id="a27"></td>
<td><input class="m" id="a28"></td>
<td><input class="m" id="a29"></td>
<td><input class="m1" id="a30"></td>
<td><input class="m1" id="a31"></td>
<td><input class="m1" id="a32"></td>
<td><input class="m" id="a33"></td>
<td><input class="m" id="a34"></td>
<td><input class="m" id="a35"></td>
</tr>
<tr>
<td><input class="m" id="a36"></td>
<td><input class="m" id="a37"></td>
<td><input class="m" id="a38"></td>
<td><input class="m1" id="a39"></td>
<td><input class="m1" id="a40"></td>
<td><input class="m1" id="a41"></td>
<td><input class="m" id="a42"></td>
<td><input class="m" id="a43"></td>
<td><input class="m" id="a44"></td>
</tr>
<tr>
<td><input class="m" id="a45"></td>
<td><input class="m" id="a46"></td>
<td><input class="m" id="a47"></td>
<td><input class="m1" id="a48"></td>
<td><input class="m1" id="a49"></td>
<td><input class="m1" id="a50"></td>
<td><input class="m" id="a51"></td>
<td><input class="m" id="a52"></td>
<td><input class="m" id="a53"></td>
</tr>
<tr>
<td><input class="m1" id="a54"></td>
<td><input class="m1" id="a55"></td>
<td><input class="m1" id="a56"></td>
<td><input class="m" id="a57"></td>
<td><input class="m" id="a58"></td>
<td><input class="m" id="a59"></td>
<td><input class="m1" id="a60"></td>
<td><input class="m1" id="a61"></td>
<td><input class="m1" id="a62"></td>
</tr>
<tr>
<td><input class="m1" id="a63"></td>
<td><input class="m1" id="a64"></td>
<td><input class="m1" id="a65"></td>
<td><input class="m" id="a66"></td>
<td><input class="m" id="a67"></td>
<td><input class="m" id="a68"></td>
<td><input class="m1" id="a69"></td>
<td><input class="m1" id="a70"></td>
<td><input class="m1" id="a71"></td>
</tr>
<tr>
<td><input class="m1" id="a72"></td>
<td><input class="m1" id="a73"></td>
<td><input class="m1" id="a74"></td>
<td><input class="m" id="a75"></td>
<td><input class="m" id="a76"></td>
<td><input class="m" id="a77"></td>
<td><input class="m1" id="a78"></td>
<td><input class="m1" id="a79"></td>
<td><input class="m1" id="a80"></td>
</tr>
</tbody>
</table>
</div>
<div id="d0">
</div>
</center>
</body>
</html>
css部分
@charset "UTF-8";
td{
height:40px;
width:40px;
}
#d{
height:600px;
width:500px;
}
.m{
height:40px;
width:40px;
font-size:15px;
text-align:center;
}
.m1{
height:40px;
width:40px;
font-size:15px;
text-align:center;
background-color:#F5D49E;
}