欢迎来到学术参考网
当前位置:发表论文>论文发表

研究五子棋论文

发布时间:2023-03-03 12:27

研究五子棋论文

<%@ page contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>五子棋</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body{ word-break:break-word;
}
#aboutstep{
position:absolute;
right:45px;
top:300px;
width:200px;
vertical-align:bottom;
}
</style>
<script language="javascript">
//五子棋棋子亦称“棋石”分黑、白两色,形状为扁圆形,有一面凸起或两面凸起等形状,厚度不超过0.8厘米,直径为2.0~2.3厘米;
//一副棋子总数为225枚,其中黑子113枚,白子112枚。
var presentperson=false; //true表示人先下,否则表示机器先下
//谁先只需要改为true或false就可以了,不需要改其它东西
var maxsize=15;
var personstep=0;
var machinestep=0;
var _stack=new Array();//needn't to allocate space
var chese=new Array(maxsize*maxsize);
var chesevalue=new Array(maxsize*maxsize);
for(var i=0;i<maxsize*maxsize;i++)//初始化棋盘
{ chese[i]=0;
}
</script>
</head>
<body onload=startup()">
<table id="chesetable" border="1px" width="auto" align="center" height="600px" style="background-color:#EED090;text-align:center;">
<%
for(int i=0;i<15;i++)
{("<tr>");
for(int j=0;j<15;j++)
{("<td onclick='putone(this,"+i+","+j+")' style='width:45px;height:45px;cursor:pointer;'>  </td>");
}
("</tr>");
}
%>
</table>
<div id="aboutstep"><!-- 加计时器会降低速度,这里就不加了 -->
  人 <img src="images/white_.gif" alt="white" width="50px" height="50px" style="vertical-align:middle;"/><span id="aboutsteppeople" style="position:inline;">0</span>
<span style="display:inline;"><input type="text" id="peopleusedtime" size=4 maxlength="8" /></span>
<br />
机器 <img src="images/black_.gif" alt="black" width="50px" height="50px" style="vertical-align:middle;"s/><span id="aboutstepmachine" style="position:inline;">0</span>
<span style="display:inline;"><input type="text" id="machineusedtime" size=4 maxlength="8" /></span>
</div>
<div align="center">
<input type="button" name="restart" value="重新开始" onclick=reload()"/><input type="button" name="turnout" value="交换顺序" />
<input type="button" name="undo" value="悔棋" onclick=popstack()"/>
</div>
<script language="JavaScript">
function startup()
{
if(!presentperson)//机器先下
{ var obj=mentById("chesetable").rows[7].cells[7];
putone(obj,7,7);
}
}
function putone(obj,i,j)
{ //if(lue=="◎"||lue=="●")
if(pe==1) //表示放了棋子
{ return false;}

var node=null;
if(presentperson)
{ //node=TextNode("◎"); //人的棋子颜色
if(ID) //IE
node=Element("<img src='images/white_.gif' alt='white' width='40px' height='40px' />");
else { //for Firefox,Opera
node=Element("img");
ribute("src","images/white_.gif");
ribute("alt","white");
ribute("width","40px");
ribute("height","40px");
}
presentperson=!presentperson;
chese[maxsize*i+j]=1;
personstep++;
mentById("aboutsteppeople")[xss_clean]=personstep;

}
else {//node=TextNode("●"); //机器的棋子颜色
if(ID) //IE
node=Element("<img src='images/black_.gif' alt='black' width='40px' height='40px' />");
else { node=Element("img");
ribute("src","images/black_.gif");
ribute("alt","black");
ribute("width","40px");
ribute("height","40px");
}presentperson=!presentperson;
chese[maxsize*i+j]=2;
machinestep++;
mentById("aboutstepmachine")[xss_clean]=machinestep;
}
eChild(node,hild);
_(i);
_(j); //避免数据冗余,就不存储presentperson
var result=checkfinish(!presentperson,i,j);
if(result)
{ if(!presentperson) alert("Congratulation!You win.");
else alert("I am sorry that the machine wins,try your best to win next time.");
setTimeout(reload,4000); //刷新页面
}
if(!presentperson) {machinedecideposition();} //机器走。如果选择全部由人走就去掉这个
}
function checkfinish(presentperson,i,j)
{ //persentperson为true时表示刚才人下了一步
var checkword;
var result=false; //nobody wins
if(presentperson) checkword=1;
else checkword=2;
var total=1;
var tempj=j+1;
while(tempj<maxsize) //横
{ if(chese[maxsize*i+tempj]==checkword)
{total++; tempj++;}
else break;
}
tempj=j-1;
while(tempj>=0)
{ if(chese[maxsize*i+tempj]==checkword)
{total++; tempj--;}
else break;
}
if(total>4) { return true;}

total=1;
var tempi=i+1; //竖
while(tempi<maxsize)
{ if(chese[maxsize*tempi+j]==checkword)
{total++; tempi++;}
else break;
}
tempi=i-1;
while(tempi>=0)
{ if(chese[maxsize*tempi+j]==checkword)
{total++; tempi--;}
else break;
}
if(total>4) { return true;}

total=1;
tempi=i+1; //一三象限斜
tempj=j+1;
while(tempi<maxsize&&tempj<maxsize)
{ if(chese[maxsize*tempi+tempj]==checkword)
{total++; tempi++; tempj++;}
else break;
}

tempi=i-1;
tempj=j-1;
while(tempi>=0&&tempj>=0)
{ if(chese[maxsize*tempi+tempj]==checkword)
{total++; tempi--; tempj--;}
else break;
}
if(total>4) { return true;}

total=1;
tempi=i+1; //二四象限斜
tempj=j-1;
while(tempi<maxsize&&tempj>=0)
{ if(chese[maxsize*tempi+tempj]==checkword)
{total++; tempi++; tempj--;}
else break;
}
tempi=i-1;
tempj=j+1;
while(tempi>=0&&tempj<maxsize)
{ if(chese[maxsize*tempi+tempj]==checkword)
{total++; tempi--; tempj++;}
else break;
}
if(total>4) { return true;}
return false;
}
function pushstack()
{
}
function popstack() //悔棋
{
if(_2<1) return;
//var ispresentperson=(_2)%2?true:false;//这个跟谁先下有关
var ispresentperson=presentperson; //now it has not matter with the length of _stack
var j=_();
var i=_();
removeone(ispresentperson,i,j);

}
function removeone(ispresentperson,i,j)
{ var obj=mentById("chesetable");
//text,tbody
var tbody=bling;
[i].cells[j][xss_clean]=" ";
chese[maxsize*i+j]=0; //也要初始化那个棋子所在的位置
presentperson=!presentperson;//也要回滚该谁走,who's turn now?
if(!ispresentperson) {personstep--;
mentById("aboutsteppeople")[xss_clean]=personstep;
}
else {machinestep--;
mentById("aboutstepmachine")[xss_clean]=machinestep;
}

}
function machinedecideposition() //机器决定下一步的位置
{ //在第一层节点选择的时候采用贪婪算法,直接找出相对分数比较高的几个形成第一层节点,目的是为了提高搜索速度和防止堆栈溢出。
if(machinestep==0) //机器走第一步
{ var obj=mentById("chesetable").rows[7].cells[7];
if(putone(obj,7,7)==false)
{ obj=mentById("chesetable").rows[6].cells[6];
putone(obj,6,6);
}
}
else if(machinestep==1) //机器走第二步
{ var obj=mentById("chesetable").rows[7].cells[7];
if(putone(obj,7,7)==false) //7,7位置被占用
{ obj=mentById("chesetable").rows[6].cells[6];
if(putone(obj,6,6)==false)//6,6位置被占用
{obj=mentById("chesetable").rows[6].cells[7];
putone(obj,6,7);
}
}

}
else { var checkword=2; //先判断机器的,在设置为1判断这个位置对人的贡献
for(var tttt=0;tttt<maxsize*maxsize;tttt++)
chesevalue[tttt]=-10;//初始化
for(var i=0;i<maxsize;i++)
for(var j=0;j<maxsize;j++)
{ if(chese[maxsize*i+j]!=0) //the position is occupied
continue;

var total=1;
var tempj=j+1;
var spacenumber=0; //中间空多少个
var befive=0; //成5,包括五连和长连
var livefour=0; //活四,有两个点可以成5地四
var befour=0; //冲四,只有一个点可以成为5的四
var deadfour=0; //死四,不能成为5的四
var livethree=0; //活三,再走一步就可以成为活四的三
//活三包括 连活三和跳活三
var bethree=0;
var livetwo=0;
var betwo=0;
//三三,一子落下同时形成两个活三
//四四,一子落下同时形成两个冲四
//四三,一子落下同时形成一个冲四和 活三
for(var tt=0;;tt++)
{ if(tt==0)
checkword=2; //machine
else checkword=1; //people
while(tempj<maxsize) //横
{ if(chese[maxsize*i+tempj]==checkword&&checkword==2) //是机器的
{total++; tempj++;}
else if(chese[maxsize*i+tempj]==0&&checkword==2) //对于防守不考虑空格
{ //is empty
spacenumber++; break;
if((++tempj)<maxsize&&chese[maxsize*i+tempj]==checkword&&spacenumber<2)
total++;
else break;
}
else if(chese[maxsize*i+tempj]==checkword&&checkword==1) //防守
{ total++; tempj++;
}
else break;
}
var endj=tempj;
tempj=j-1;
while(tempj>=0)
{ if(chese[maxsize*i+tempj]==checkword&&checkword==2)
{total++; tempj--;}
else if(chese[maxsize*i+tempj]==0&&checkword==2)
{ //is empty
spacenumber++; break;
if((--tempj)>=0&&chese[maxsize*i+tempj]==checkword&&spacenumber<2)
total++;
else break;
}
else if(chese[maxsize*i+tempj]==checkword&&checkword==1) //防守
{ total++; tempj--;
}
else break;
}
var startj=tempj;
//由于checkword==2先运行,所以可以直接用befive=1,也可以用befive++;
if(total>4) { //能组成五个或以上的
if(checkword==2)
{befive+=2
} //堵住成五
else befive++;
}//进攻要大于防守
else if(total==4) { //能组成四个
if(checkword==2) //表示考虑进攻
{ if(startj>=0&&endj<maxsize&&chese[maxsize*i+startj]!=1&&chese[maxsize*i+endj]!=1) //两边为空格
livefour+=2; //放在这里可以形成一个活四
else if((startj>=0&&chese[maxsize*i+startj]!=1)||(endj<maxsize&&chese[maxsize*i+endj]!=1))
befour+=2; //形成一个冲四
else deadfour+=2;
}
else //考虑防守
{ if(startj>=0&&endj<maxsize&&chese[maxsize*i+startj]!=2&&chese[maxsize*i+endj]!=2)
livefour+=1; //放在这里可以形成一个活四
else if((startj>=0&&chese[maxsize*i+startj]!=2)||(endj<maxsize&&chese[maxsize*i+endj]!=2))
befour+=1; //形成一个冲四
else deadfour+=1;

}
}
else if(total==3){if(checkword==2) //表示考虑进攻
{ if(startj>=0&&endj<maxsize&&chese[maxsize*i+startj]!=1&&chese[maxsize*i+endj]!=1) //两边为空格
livethree+=2; //放在这里可以形成一个活三(算做连活三)
else if((startj>=0&&chese[maxsize*i+startj]!=1)||(endj<maxsize&&chese[maxsize*i+endj]!=1))
bethree+=2; //形成一个眠三,即可以冲四的三
// else deadfour+=2;
//跳三
}
else //考虑防守
{ if(startj>=0&&endj<maxsize&&chese[maxsize*i+startj]!=2&&chese[maxsize*i+endj]!=2) //两边为空格
livethree+=1; //放在这里可以形成一个活三(算做连活三)
else if((startj>=0&&chese[maxsize*i+startj]!=2)||(endj<maxsize&&chese[maxsize*i+endj]!=2))
bethree+=1; //形成一个眠三,即可以冲四的三
}
}
else if(total==2){ if(checkword==2) //表示考虑进攻
{ if(startj>=0&&endj<maxsize&&chese[maxsize*i+startj]!=1&&chese[maxsize*i+endj]!=1) //两边为空格
livetwo++; //放在这里可以形成一个活三(算做连活三)
}
else //考虑防守
{ if(startj>=0&&endj<maxsize&&chese[maxsize*i+startj]!=2&&chese[maxsize*i+endj]!=2) //两边为空格
livetwo++; //放在这里可以形成一个活三(算做连活三)

}
}

人生如棋议论文

相信大家都经常接触到作文吧,特别是作为主要学习作文类别之一的议论文,议论文是以议论为主要表达方式,通过摆事实,讲道理,表达自己的观点和主张的文章体裁。那么大家知道优秀的议论文是怎么写的吗?下面是我精心整理的人生如棋议论文,仅供参考,欢迎大家阅读。

人生如棋,一着不慎,满盘皆输。

五子棋局有一秘决,搭建几个四子组成的“三角”,这样的三角进可攻,退可守,给对手造成威协伺机得胜,人生中也有这样的“三角”,我认为这四子便为“诚信、谦逊、智慧和健康“。

诚信是一角。“人无信不立”,诚信是你成功的基石,你重视它、珍惜它,它就会帮助你实现你的理想,成就你的未来。若你去随意浪费它、挥霍它,它就会给你带来厄运,让你寸步难行,以失败而告终。诚信是一种品格,一种修养,一种灵魂深处的清香,在不卑不亢中彰显出人性的高贵。一个人拥有了诚信,便有了更加广阔的发展空间;一个民族拥有了诚信,便能世代繁荣;一个国家拥有了诚信,便能屹立于世界强国之林。

谦逊是一角。一位作家说:“谦逊是人类最好的美德”。谦逊是沉稳的心态,是踏实的基础,与张扬浮躁形成鲜明对比,但谦逊不是沉默寡言,没有主见,也不是胆小怕事,软弱无能,而是在低调中前进,在无声中决断,是“该出手时才出手”的儒将风度,它能助你躲开不必要经过的艰难险阻,避开不必要经历的麻烦。

智慧是一角。智慧是一种力量,它可以化腐朽为神奇,化干戈为玉帛。智慧是一种圣物,它能充盈人的思想,净化人的心灵。智慧是无形无价的财富,它能在你两手空空的时候为你带来金玉满堂,在你山穷水尽的时候为你带来峰回路转。而作为一名智者,他则能领

悟人生,进退有度,始终生活在祥和与幸福之中。

健康是那最中间的棋子。身体的健康对每一个有理想、有抱负的人来说都是必要的保障,有了健康的身体和良好的心态,才有足够的精力和清醒的头脑去实现自己的人生目标和梦想。“出师未捷身先死”或者力不从心的时候,是谈不上去追寻自己的理想的。假设你有100万,健康就是前面的那个1,多一个0能使财富翻十倍,但没有健康这个1,一切就只能为0。五子棋中称此子为“眼”,它是这三角的中心,这里也是兵家必争之地,得“眼”,你的三角会四通八达,纵横驰骋。失“眼”,你的三角则会苟延残喘,威力消失殆尽。

五子棋的胜利秘决如此,人生的成功的秘决亦是如此,夯实你的基础,巩固你的三角,为即将到来的机遇与成功做好准备,以暂新的姿态去拥抱和实现你人生的远大理想。

人生就是一场棋,局里局外,黑白相间,有人看透全局,步步为营;而又有人窘迫交加,走投无路。举棋,落定,一场华丽的赛局便在这星星点点,简简疏疏中拉开帷幕。

棋逢绝境智者胜。内突外围,合兵夹击,以掎角之势包揽全局,这就是智者;沉稳自信,运筹帷幄,不言弃不落泪,看淡输赢的智者。

成为智者,你需有一颗沉稳平静的心。诸葛亮也是沉稳自信,端坐西城高楼,手抚三尺瑶琴,不费一兵一卒,击退司马懿的豹虎之师,投以敌手一个淡定从容的笑。危境中的安之若素,冗杂琐事中的不厌其烦,足以显示智者厚积薄发的风度。面对少好凌气的柳开,张景唯袖中藏一轴,金榜题名。面对俄国力士的铁拳,霍元甲冷静从容,纹丝不移。智者沉稳如冰壶清水。

智者懂得放长线,钓大鱼,深谋远虑,决胜千里之外,一举一动凌驾着骀荡的东风。

智者如庄子,以巨匏为船,大锷成荫,于落崖惊风,沧海霁月中选择了青山绿水,“吾将曳尾于途中”,道出了看破全局的高妙。人生如棋,智者敢于激流勇进,也懂得以退为进。

卡耐基和柯立芝教会我们如何成为懂退让的智者。在他的“肥皂水”哲学里,他们要取得你的利益,必先以一种退的方式处处为你着想。让你在温情脉脉的情绪中接受他人的意见,从而以退为击,以温柔的方式克胜敌人,谋取合乎情理的利益。这就是智者,懂得纷繁冗杂的`局面中化被动为主动,化退让为前进。

人生如棋。一棋招来腥风血雨,一棋惹来夜雨阴沉,一棋点出雁落鸿惊,一棋引来白荻劲风。因此,智慧的人永不会缺乏的是如钢铁般坚硬的意志与决心,勇往直前。

智者同样懂得坚守阵地,筑基意念的堡垒。麦凯恩说过:“当你在旋转时,世界很大,而当你勇往直前时,世界很小。”在困难的巍巍高山前,要有“踏破铁鞋”的决心和“不破楼兰终不还”的'傲骨,方可去领略“黄尘清水三山下,变更千年如走马”的美景。在智者的眼里,冰雪堵塞的黄河,飞雪垅断的太行山道只不过是又一项富有刺激的挑战。“飞雪连天射白鹿,笑书神侠倚碧鸳”,当然与朋友的结伴而行也不容忽视。

人生如棋,智者搏弈。日朗晴空,正照当头,品上一口甜酒,铺好棋盘于绿苹枝头,开启一段智慧无穷的棋海之旅吧!

我从小就喜欢棋,读小学的时候,最先学会的是中国象棋,之后不久,用象棋子学会了摆五子棋,小学毕业那年的夏天学会了围棋。棋,也许不在于学,更多的时候在于悟,我对棋的悟性不高,所以,棋艺很差,但是,我还是喜欢下棋,喜欢“闲敲棋子落花灯的闲适”。

“人生如棋,落棋无悔”,多数会弈棋的人喜欢说这句话,我虽然早早就会下棋,但是唯不知人生如棋的内在含义,随着年龄增长以及弈棋兴趣渐渐浓厚,慢慢的才悟出了一点其中的道理。

最近一段时期,我跟单位同事学国际象棋,国际象棋的走法与中国象棋的走法截然不同,中国象棋其特点就是运动战,我记得《宋史·岳飞传》中有这么一句话:“阵而后战,兵法之常,运用之妙,存乎一心”。中国象棋就是“以战争之象为棋势”,它的战略战术近似于战争中的军事原则,那就是消灭敌人,保存自己。

而国际象棋的走法,让我想到了人事管理模式,如果中国企业能够研究国际象棋的规则并且去借鉴,那么,我们国家就不会有那么的企业倒闭,也就不会有那么多的'人下岗。

中国象棋的“将”活动范围就在九宫之内,闭门造车,企业中有很多的领导就像这个“将”一样,很早以前我看过一篇文章,记得文章中说:中国象棋的马会别自己的腿,产生内耗,象不过界河,没有发展平台,兵永远是兵,沉到底没有战斗力。而国际象棋中的王可以全盘移动,象也没有界河,马谁的腿也不别,兵坚持到最后会成为强大的棋子。当时我不会国际象棋,看完文章,悟不出国际象棋与企业管理的内在联系。

人生如棋,变化无常,生活,落在那小小的棋盘上,就会遇到各类棋手,每走一步,都处心积虑。

五月份我单位将进行一次人事大洗牌,局里从基层、中层到高层,多数的干部将会变动,每个人都是一枚棋子,精心的谋略撕拼,如中国象棋的战略,那就是想办法消灭“敌人”,保存自己,能别马的腿尽量去别,能堵死象眼的就不能让他有缝。

作为“马”的人,在攻击对方时也会自损;作为“象”的人,无法过界河怎能创新?没有机会发展;作为“将”的人,会想尽一切办法保全自己,那么作为“兵”的人,永远是兵,很难升变。

惟有“炮”和“车”富有个性,“炮”是跳跃式的走法,属于“炮”类的人思维敏捷,头脑聪明,我们局里称这类人为“狼”,属于业务骨干;“车”的走法没有限制,横走竖走比较自由,并且有杀伤力,还能随时回到家里保护“将”,“车”类的人我们局里称之为“狼狗”,既有业务能力,又是领导的忠狗。

倘若一个单位的人事管理模式像国际象棋的规则,那么,对于每个人来说就是公平竞争,整个集体就会具有凝聚力。

人生如棋,世事难料,我们每个人既是一枚棋子,也是一个棋手,走棋如走人生的道路,一招偶失,万招皆负,一动一静都是策略,-盘棋是智慧与人生的哲学,博弈之道,贵乎严谨。

《棋经》里有这么几句话:善胜者不争,善阵者不战。善战者不败,善败者不乱。这是棋家的最高境界,这几句话虽是说下棋之道,但也是处世之道。棋局万变,棋势无定,人生如棋,落棋无悔!

基于VC++的五子棋设计毕业论文

你这篇中国知网也好,
万方数据也好都有例子!
甚至百度文库都有!
英文原文最好用谷歌学术搜索!
==================论文写作方法===========================
论文网上没有免费的,与其花人民币,还不如自己写,万一碰到骗人的,就不上算了。
写作论文的简单方法,首先大概确定自己的选题,然后在网上查找几份类似的文章,通读一遍,对这方面的内容有个大概的了解!
参照论文的格式,列出提纲,补充内容,实在不会,把这几份论文综合一下,从每篇论文上复制一部分,组成一篇新的文章!
然后把按自己的语言把每一部分换下句式或词,经过换词不换意的办法处理后,网上就查不到了,祝你顺利完成论文!

上一篇:期刊中文论文

下一篇:英文论文格式示例