数独javascript,数独在线

JavaScript怎么设计一个数独游戏?

createSdArr:function(){

创新互联公司主营企业营销型网站建设,为众多企业提供了品牌网站建设服务,建网站哪家好?拥有多年的全网整合营销推广流程,能够为企业定制化制作网站服务,在公司网站建设维护方面成绩突出。

//生成数独数组。

var that = this;

try{

this.sdArr = [];

this.setThird(2,2);

this.setThird(5,5);

this.setThird(8,8);

var allNum = [1,2,3,4,5,6,7,8,9];

outerfor:

for(var i=1;i=9;i++){

innerfor:

for(var j=1;j=9;j++){

if(this.sdArr[parseInt(i+''+j)]){

continue innerfor;

}

var XArr = this.getXArr(j,this.sdArr);

var YArr = this.getYArr(i,this.sdArr);

var thArr = this.getThArr(i,j,this.sdArr);

var arr = getConnect(getConnect(XArr,YArr),thArr);

var ableArr = arrMinus(allNum,arr);

if(ableArr.length == 0){

this.createSdArr();

return;

break outerfor;

}

var item;

//如果生成的重复了就重新生成。

do{

item = ableArr[getRandom(ableArr.length)-1];

}while(($.inArray(item, arr)-1));

this.sdArr[parseInt(i+''+j)] = item;

}

}

this.backupSdArr = this.sdArr.slice();

}catch(e){

//如果因为超出浏览器的栈限制出错,就重新运行。

that.createSdArr();

}

},

getXArr:function(j,sdArr){

//获取所在行的值。

var arr = [];

for(var a =1;a=9;a++){

if(this.sdArr[parseInt(a+""+j)]){

arr.push(sdArr[parseInt(a+""+j)])

}

}

return arr;

},

getYArr:function(i,sdArr){

//获取所在列的值。

var arr = [];

for(var a =1;a=9;a++){

if(sdArr[parseInt(i+''+a)]){

arr.push(sdArr[parseInt(i+''+a)])

}

}

return arr;

},

getThArr:function(i,j,sdArr){

//获取所在三宫格的值。

var arr = [];

var cenNum = this.getTh(i,j);

var thIndexArr = [cenNum-11,cenNum-1,cenNum+9,cenNum-10,cenNum,cenNum+10,cenNum-9,cenNum+1,cenNum+11];

for(var a =0;a9;a++){

if(sdArr[thIndexArr[a]]){

arr.push(sdArr[thIndexArr[a]]);

}

}

return arr;

},

getTh:function(i,j){

//获取所在三宫格的中间位坐标。

var cenArr = [22,52,82,25,55,85,28,58,88];

var index = (Math.ceil(j/3)-1) * 3 +Math.ceil(i/3) -1;

var cenNum = cenArr[index];

return cenNum;

},

setThird:function(i,j){

//为对角线上的三个三宫格随机生成。

var numArr = [1,2,3,4,5,6,7,8,9];

var sortedNumArr= numArr.sort(function(){return Math.random()-0.50?-1:1});

var cenNum = parseInt(i+''+j);

var thIndexArr = [cenNum-11,cenNum-1,cenNum+9,cenNum-10,cenNum,cenNum+10,cenNum-9,cenNum+1,cenNum+11];

for(var a=0;a9;a++){

this.sdArr[thIndexArr[a]] = sortedNumArr[a];

}

}

我想学习编程,但是不知道该怎么开始。

我建议最好是从基础入手,而不是一开始就进行可视化编程。虽然如今国内绝大多数pc都是使用的windows,但是毕竟这知识这个世界的冰山一角。扎实的基础自然会更有用处。编程其实重要的是程序思维,然后是算法和数据结构。这些都是超出语言的,就是说不管是学c学java学delphi还是别的什么,这一部分都是一致的。因此培养这部分的知识可以说是一本万利的事情。初学肯定是通过语言熟悉思想熟悉算法和数据结构,到一定的时候就是纯粹的思想和算法数据结构的学习,便已经脱离程序语言了。经历过这些阶段,换一种语言不过是重新了解一下描述的方式,就像你了解了中文思维,山东话和四川话的差别就不会太大;了解了拉丁语的思维,整个语系的语言都不过是简简单单的记忆工作,应用就好。入门的语言,理论上是怎么方便学哪个,看那个顺眼学哪个。当然这里面还是有不同的推荐的。一般来说我比较推荐pascal、c/c++、java。并不是因为这三个东西很通用很有前途,而是它们实在是严整而有规则(c/c++还显得稍微的宽松了一点),而严谨的语法要求和明确的概念区分是有利于编程思维的形成和算法数据结构的学习的。同样的因为这个理由我不推荐vb,而并不是因为它功能不强大(事实上vb在windows环境中是相当牛的语言)另外一个建议是,如果学c,不要一开始就用vc。ms提供的很多东西很方便,有很多很简单的实现方法,但是它们不标准。vc与ansi

c标准是有很大的差距的。首先一个不遵循标准的c/c++程序是不通用的,换个编译器说不定就不被承认了。所以我非常推崇gcc,理由之一是它完全符合

ansi

c标准,无论它的c还是c++编译器都很严整,功能上一点也不缺乏(有人说gcc不能做图形界面的程序,这一点完全错误,到处都有的qt库和gtk库都能做出很好的界面),另外一个理由便是它免费,毕竟稍微大一点的软件企业就不会屈从与微软的编译器和平台,而一个免费的c编译器无疑可以创造更多的利益;就算要转vc,标准的c程序也是几乎不要作任何改动的。当然,这一切的前提是,你真的很想很好的学编程,做一个这方面的精英。如果只不过是兴趣,或者只是想拿一个ms的工程师认证然后在国内企业找份诸如设计vf、vb程序之类的工作,那完全可以忽略我上面的话,去找个认证培训班,认认真真听听课,好好完成练习,从vb或者vc入手,考好认证是很不会太难的。毕竟现在很多很好的大学里都从来不缺乏计算机的课程,不会缺少算法或者编译原理的课程,不会没有计算机科学的研究院,而那里面出来的人一般都具备了很好的基础知识,会更加容易成为前面所说的精英。

关于编程语言的选择问题。

编程语言常用的有30种左右,开始做项目时,我们如何选择适合的编程语言呢?不同的编程语言有着不同的优势,要根据实际项目的特性去选择编程语言,今天给大家分享30种编程语言的比较选择问题,希望能对大家有所参考的价值。本文涉及到的编程语言:C、C++、Java、C#、Prolog、VB、Scala、Clojure、Haskell、Ada、Python、Ruby、Pascal(Delphi)、Fortran、Lisp、matlab、Perl、Erlang、Boo、Tcl、Bash、C shell、Objective-C、PHP、PL-SQL、Transact-SQL、ASP、JSP、Lua、smalltalk、R、D涉及到的工具:sed、awk、grep我们现在学一门语言,大部分是要用到了才学(基本上是中国的公司用什么我们学什么),基于兴趣的不多。比如,大头肯定是C++和java,因为这个最容易混饭吃。最近多玩用了Erlang,还有不少公司跟风上了Erlang,让这个沉默了好久的语言忽然被明星了。大公司一般除了C++外,都会招Java,事实上,互联网公司,Java占了半壁江山(当然,没选java架构的除外,有不少.net族的)。所以,生活在贫困线上的广大中国程序猿很少有人会去看看诸如scala之类的玩意。不过作为胶水,python、perl还是有一定的用户量的。似乎,我们生活中只有这么几种语言。。。貌似,遇到一个问题,我们该选择什么语言呢?虽然每个语言本质上都是图灵完备的,但是能用prolog写出来的东西,如果用别的语言写,会无比痛苦。这就是不同语言存在的原因:不同的问题,不同思考方式(编程范式)。解决问题case:已知大量事实,和事实之间的约束,要求挖掘关系。果断用prolog族语言。例如,汉诺塔、地图着色、数独问题、八皇后问题等这种考验智商,并且需要从已知规则中发现模式的问题。拥有一大堆已知案例的应用(例如大部分的人工智能情况)应用程序case:从小到超大型应用程序,非完全互联网应用这也是大部分软件公司遇到的情况。一般有几种没办法分出高下的解决方案:C++,Java,C#,VB。当然,这里面可以有CLR和JVM的不同衍生。例如,理论上,你也可以用scala来代替(不过估计大型公司不会冒这个险)。还是在理论上,你也可以用函数式编程的Clojure和Haskell来做(估计没人会那么傻)。还是在理论上,也可以用Ada这种强悍的通用语言,但估计没人愿意接收比C++还复杂的编程语言。理论上(基本只能在理论上),不嫌弃的话smalltalk也行。还是在理论上,python、ruby等配合一定的图形界面库也可以胜任(但项目大到一定的程度是,你会欲哭无泪)。但是,我另起一行。有个语言:D语言。我个人不认为不可以列入首选名单。但是貌似知名度不行啊。企业支持少啊。确实是门优秀的语言。C++太尾大不掉,需要一种语言,让C++成为纯粹的C++。稍小一点规模的,无法接受面向对象的程序员,有不少用C的。虽然OOP程序员看他们像是不开化的人,但是他们有他们的哲学(我从嵌入式开发过来,相当长时间内也摆脱不了C,总本能的排斥OOP)解决问题case:程序规模不是很大的偏数学问题曾经很多人用Pascal(包括扩展的Delphi),曾经很多人用Fortran,但是都明显在退步。大型通用语言(C++、Java、C#)表明了他们在各种环境的适应能力。lisp系列也在一些问题上展现出古老的魅力。(但这个语言远没有《黑客与画家》的作者给我们描述的那样神奇,个人认为。不过我的C++风格思想占了主导,可能没办法公正的评价lisp,但是据我的使用lisp经验,在大部分情况下,我最后还是放弃了它。因为大部分情况下我总能找到用C++(或其他OOP语言)更好的原因)另外,读研的一般都用过matlab。这个工具,两个字:强大!不过仅指科学计算方面。脱离了这个方面,就得考虑合不合适了,毕竟固定的矩阵思维不是啥情况都有效的。我用matlab最多的是神经网络,图片和信号处理。毫不夸张的说,matlab活脱脱一个photoshop啊。。。(当然,你得会用。。。)不过matlab的神经网络确实不行,做的太差了,小规模的网络可以,3层不用BP的F网,几十个就挂掉了。有这个需求的用ANN吧。(还是C++,偷笑)特殊应用case:需要大量处理字符串的应用首选利器是Perl,不过如果你习惯了sed、awk、grep,也能很方便的完成相同的功能,但perl是吸收三家所长做的。其次是C++,别拍我。诸位用过regex吗?就是boost里的那个,最近被并入C++11啦。有了正则表达式的C++,处理字符,无敌了很多哇。当然,Java程序员别拍我,我知道这种库一个大型的通用语言都会有。我提C++,一般顺带着不否定Java和C#能以相似的代价完成相同的功能。特殊应用case:需要一个胶水,粘结不同语言写出来的程序首选是python。俩字:精简(呀,这么说一个强大的语言有点太轻浮了,但比起ruby,确实简单呐。。。)(另外Boo在.net是可以用来取代python)其次是ruby。俩字:复杂毕竟,没有rails,ruby根本火不起来。事实证明,python的哲学很对。当然两种语言有很多细节的不同,甚至在编程范式上不同(真想不明白白ruby支持多种范式怎么可能是个优点?市场证明了python的纯粹)特殊应用case:自动化测试不用问了,肯定是tcl了。由于这个特殊应用,所以个人用户基本用不到,大部分是嵌入式公司。华为、数通、迈普等。。。特殊应用case:系统底层这个肯定是C了。操作系统,驱动,底层软件,大部分都是C写的,调用API,如果不用微软的Activex之类的技术,还是得老老实实用C API的。特殊应用case:系统管理这个系统管理,一般指linux的。首选肯定是各种shell啦:Bash、C shell特殊情况case:苹果平台我们没得选。。。。objective-C特殊领域:嵌入式大部分都是C了。不过andriod平台和苹果平台就得听话了。gmszone 网友建议把Ada也放在这里,我不否定Ada在嵌入式领域的广阔未来和实实在在的实力。但C主导了嵌入式这么久,程序员基本没办法接受别的思维了。比如ARM,三年前我用的Xscale,我实在不愿意想象放弃C。嵌入式的玩意对错有时候根本没办法说,所以很重要的是经验,前人的积累,所以就像垄断一样,不是革命性的优秀根本无法动摇根基的。我用过spartan的FPGA,我记得当时选的core也全部是用C做编程接口。所以,很抱歉这里我无法接收该网友的意见。特殊应用:网页嵌入网页内的,最火的肯定是PHP(后端)和javascript(前端)了。前者代替了古老的cgi。但是,java系的jsp内嵌java,asp内嵌C#,都是php的强劲对手。通用语言在各个方面咄咄逼人。特殊应用:数据库就是比哪个SQL版本更被人接收。标准sql自然不必说,根据排名,PL(SQL)/Transact-SQL上榜。特殊应用:并行,分布式并行越来越重要了。首选Erlang。但是,基于已有的条件,还是考虑选用通用语言的并行优化。C++、Java、C#等都在这方面做了很多优秀的工作。特殊应用:特定语言的功能增强不用问了,我想说的是Lua。用C++写实现,用Lua写逻辑是好多游戏的经典开发策略。(当然像Unity用的javascript,Unreal用的自己的。)在通用大型语言的基础上学会用Lua加速,是一种很有趣的实践。特殊应用:人工智能人工智能上,prolog和lisp是宠儿。R语言有时也被用于数据挖掘(但是太慢了)

怎样让计时器在数独游戏界面显示

pre t="code" l="html"!DOCTYPE html;

html;

head;

meta charset=;utf8;;

title;555/title;

style type=;text/css;;

/style;

/head;

body;

div id=;flash;;/div;

/body;

script type=;text/JavaScript;;

function flashText(){

var myDate = new Date();

var myTime = myDate.toLocaleTimeString();

document.getElementById(;flash;).innerText = myDate.toLocaleString();

}

flashText();

window.setInterval(;flashText();,1000);

/script;

/html; 用计时器每秒获取当前时间就OK

java该怎么自学?

在学java一定要问问自己喜欢吗?只要喜欢一切没问题,这是我的建议:多敲代码,多敲代码,多敲代码,重要的事情说三遍

学习Java决不能听完敲一遍就过,一定要多敲几遍,第一遍可以跟着老师的思路,后面一定要有自己的思路,慢慢培养自己的编程思想和实现功能的逻辑。甚至可以自己给自己出题,完全靠自己实现一些有意思的小功能,对提升自己的能力和代码熟练度都有不小的帮助。

多看视频,多练习,主要是练习一些算法的运用,建议下载一些编程练习题,一道一道弄通弄懂。经常做笔记,用记事本把一些经典问题保存下来,以备复习。

如果是零基础的话,就看视频,b站上高旗老师讲得不错,每看到视频出现一段代码就马上在电脑上给他跑出来,不要直接拿源码光盘来复制,不要把视频看完半段了才开始敲代码。这样几天后你会找到一些感觉,然后没事就想些代码来写写,比如想下怎样把名字转换成乱码,然后再用另一个方法转换回来,模拟步话机发送几条消息什么的。这样下去不出3月你定牛逼,这时再把教材拿出来仔细看每一句话,掌握原理。

希望你早日学成,有苦恼一起讨论一下。


分享名称:数独javascript,数独在线
分享路径:http://pwwzsj.com/article/dsijdis.html