Font-Family:ComicSansMS,Arial,Verdana;
Text-Align:Center;
}
.knopje{
Width:144px;
--
/Style
Center
Form
InputType="Button"Title="Clickheretoplayagain"Name="beurten"Width="164px"Class="knopje"Value="Player1"onClick="wie='Player1';initieer()"
TableCellPadding="0"CellSpacing="0"Border="0"
ScriptLanguage="JavaScript"
!--//
for(i=1;i10;i++){
if(i%3==1){document.write('Tr');}
document.write('TdInputType="Button"Name="'+i+'"Value=""Class="blokje"onClick="wijzig(this.form,this)"/Td');
if(i%3==0){document.write('/Tr');}
//--
/Script
/Table
InputType="CheckBox"Title="Clickheretochangefrom2playersorcomputergame"Name="automaat"Value="2players"Id="autmat"onClick="if(this.value=='Computer'){this.value='2players';auto=0}else{this.value='Computer';auto=1};wie='Player1';initieer();"LabelFor="autmat"与电脑对玩?/Label
TableCellPadding="0"CellSpacing="0"Border="1"
TrBgColor="Silver"
TdAlign="Center"玩家1胜/Td
TdAlign="Center"玩家2胜/Td
TdAlign="Center"平局/Td
/Tr
TdAlign="Center"InputStyle="BackGround-Color:Transparent;Border:Solid0px;Text-Align:Center"Type="Text"Size="3"ReadOnlyTitle="Player1"Name="speler1"Value="0"/Td
TdAlign="Center"InputStyle="BackGround-Color:Transparent;Border:Solid0px;Text-Align:Center"Type="Text"Size="3"ReadOnlyTitle="Player2"Name="speler2"Value="0"/Td
TdAlign="Center"InputStyle="BackGround-Color:Transparent;Border:Solid0px;Text-Align:Center"Type="Text"Size="3"ReadOnlyTitle="Remise"Name="remise"Value="0"/Td
/Form
/Center
timerID=xtal=ytal=ztal=auto=0;
wie='Player1';
functioninitieer(){
clearTimeout(timerID);
cel=newArray(0,0,0,0,0,0,0,0,0,0);
aanv=newArray();strat=verd=leeg=aanv;
beurt=wissel=1;wint=keren=0;
document.forms[0].speler1.value=xtal;
document.forms[0].speler2.value=ytal;
document.forms[0].remise.value=ztal;
if(wie!='Start'){
for(iincel){
cel[i]=0;if(i0){document.forms[0].elements[i].value=''};
document.forms[0].beurten.value=wie;
functionzetten(){
if(aanv[0]0){
slag=aanv[Math.floor(Math.random()*10)%aanv.length]
}elseif(verd[0]0){
slag=verd[Math.floor(Math.random()*10)%verd.length];
}elseif(strat[0]0){
slag=strat[Math.floor(Math.random()*10)%strat.length];
}else{
slag=leeg[Math.floor(Math.random()*10)%leeg.length];
if(beurt==0slag0){document.forms[0].elements[slag].click()};
functionwin(){
if(cel[1]+cel[2]+cel[3]==3||
cel[4]+cel[5]+cel[6]==3||
cel[7]+cel[8]+cel[9]==3||
cel[1]+cel[4]+cel[7]==3||
cel[2]+cel[5]+cel[8]==3||
cel[3]+cel[6]+cel[9]==3||
cel[1]+cel[5]+cel[9]==3||
cel[3]+cel[5]+cel[7]==3
){
if(confirm("玩家一:你赢了一局!!\n还想要继续玩吗"))
{
wint=1;
xtal++;wie='Player1';timerID=setTimeout('initieer()',800)
xtal++;wie='Start';timerID=setTimeout('initieer()',800)
};
if(cel[1]+cel[2]+cel[3]==30||
cel[4]+cel[5]+cel[6]==30||
cel[7]+cel[8]+cel[9]==30||
cel[1]+cel[4]+cel[7]==30||
cel[2]+cel[5]+cel[8]==30||
cel[3]+cel[6]+cel[9]==30||
cel[1]+cel[5]+cel[9]==30||
cel[3]+cel[5]+cel[7]==30
if(confirm(((auto==1)('电脑赢啦!!!'):('玩家二:你赢了一局!!'))+"!\n还想要继续玩吗")){
ytal++;wie='Player1';timerID=setTimeout('initieer()',800)
ytal++;wie='Start';timerID=setTimeout('initieer()',800)
functionwisselen(beurt){
if(wissel==1){
if(beurt==0){
beurt=1;
wie="Player"+1
else{
if(auto==0){beurt=0;
wie="Player"+2}else{beurt=0;wie="Computer";}
if(keren==9
if(confirm("打平了!!!\n\n还想要继续玩吗")){
ztal++;wie='Player1';timerID=setTimeout('initieer()',800)}else
{ztal++;wie='Start';timerID=setTimeout('initieer()',800)};
beurt=beurt;
wissel=1;
return(beurt);
functionwijziging(klik){
plek=cel[klik];geklikt=klik;
if(plek==0){
xo="O";
plek=10;
xo="X";
plek=1;
cel[klik]=plek;keren++;
if(plek==10){
xo="O";}
if(plek==1){
xo="X";}
wissel=0
return(xo);
functionverdedig(){leeg=newArray();verd=newArray();
for(i=1;i10;i++){oud=cel[i];cel[i]=1;
if((cel[1]+cel[2]+cel[3]==3||
cel[3]+cel[5]+cel[7]==3)oud==0
){verd[verd.length]=i}
cel[i]=oud;
if(cel[i]==0){
if(keren!=1){leeg[leeg.length]=i}else
if(cel[5]==0){leeg[0]=5;leeg[1]=10-geklikt}else
if(i%2!=0){leeg[leeg.length]=i}
functionaanval(){aanv=newArray();
for(i=1;i10;i++){oud=cel[i];cel[i]=10;
if((cel[1]+cel[2]+cel[3]==30||
cel[3]+cel[5]+cel[7]==30)oud==0
){aanv[aanv.length]=i}
functionstrategie(){strat=newArray();
if((cel[1]+cel[2]+cel[3]==20||
cel[4]+cel[5]+cel[6]==20||
cel[7]+cel[8]+cel[9]==20||
cel[1]+cel[4]+cel[7]==20||
cel[2]+cel[5]+cel[8]==20||
cel[3]+cel[6]+cel[9]==20||
cel[1]+cel[5]+cel[9]==20||
cel[3]+cel[5]+cel[7]==20)oud==0
if(keren!=3){strat[strat.length]=i}elseif(i%2!=0){strat[strat.length]=i}
functionwijzig(form,element){
wijziging(element.name);
element.value=xo;
beurt=wisselen(beurt);
form.beurten.value=wie;
verdedig();aanval();strategie();win();
if(auto==0||wint==1){return}else{
timerID=setTimeout('zetten()',600)
initieer();
这是一个3子棋的游戏,不太大,把上面这段代码加入body/body中。
有一个我们老师编写的贪吃蛇程序供你参考一下:
GreedSnake.java(也是程序入口):
importjava.awt.BorderLayout;
importjava.awt.Canvas;
importjava.awt.Color;
importjava.awt.Container;
importjava.awt.Graphics;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjava.util.Iterator;
importjava.util.LinkedList;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
publicclassGreedSnakeimplementsKeyListener{
JFramemainFrame;
CanvaspaintCanvas;
JLabellabelScore;//计分牌
SnakeModelsnakeModel=null;//蛇
publicstaticfinalintcanvasWidth=200;
publicstaticfinalintcanvasHeight=300;
publicstaticfinalintnodeWidth=10;
publicstaticfinalintnodeHeight=10;
//----------------------------------------------------------------------
//GreedSnake():初始化游戏界面
publicGreedSnake(){
//设置界面元素
mainFrame=newJFrame("GreedSnake");
Containercp=mainFrame.getContentPane();
labelScore=newJLabel("Score:");
cp.add(labelScore,BorderLayout.NORTH);
paintCanvas=newCanvas();
paintCanvas.setSize(canvasWidth+1,canvasHeight+1);
paintCanvas.addKeyListener(this);
cp.add(paintCanvas,BorderLayout.CENTER);
JPanelpanelButtom=newJPanel();
panelButtom.setLayout(newBorderLayout());
JLabellabelHelp;//帮助信息
labelHelp=newJLabel("PageUp,PageDownforspeed;",JLabel.CENTER);
panelButtom.add(labelHelp,BorderLayout.NORTH);
labelHelp=newJLabel("ENTERorRorSforstart;",JLabel.CENTER);
panelButtom.add(labelHelp,BorderLayout.CENTER);
labelHelp=newJLabel("SPACEorPforpause",JLabel.CENTER);
panelButtom.add(labelHelp,BorderLayout.SOUTH);
cp.add(panelButtom,BorderLayout.SOUTH);
mainFrame.addKeyListener(this);
mainFrame.pack();
mainFrame.setResizable(false);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setVisible(true);
begin();
//keyPressed():按键检测
publicvoidkeyPressed(KeyEvente){
intkeyCode=e.getKeyCode();
if(snakeModel.running)
switch(keyCode){
caseKeyEvent.VK_UP:
snakeModel.changeDirection(SnakeModel.UP);
break;
caseKeyEvent.VK_DOWN:
snakeModel.changeDirection(SnakeModel.DOWN);
caseKeyEvent.VK_LEFT:
snakeModel.changeDirection(SnakeModel.LEFT);
caseKeyEvent.VK_RIGHT:
snakeModel.changeDirection(SnakeModel.RIGHT);
caseKeyEvent.VK_ADD:
caseKeyEvent.VK_PAGE_UP:
snakeModel.speedUp();//加速
caseKeyEvent.VK_SUBTRACT:
caseKeyEvent.VK_PAGE_DOWN:
snakeModel.speedDown();//减速
caseKeyEvent.VK_SPACE:
caseKeyEvent.VK_P:
snakeModel.changePauseState();//暂停或继续
default:
//重新开始
if(keyCode==KeyEvent.VK_R||keyCode==KeyEvent.VK_S
||keyCode==KeyEvent.VK_ENTER){
snakeModel.running=false;
//keyReleased():空函数
publicvoidkeyReleased(KeyEvente){
//keyTyped():空函数
publicvoidkeyTyped(KeyEvente){
//repaint():绘制游戏界面(包括蛇和食物)
voidrepaint(){
Graphicsg=paintCanvas.getGraphics();
//drawbackground
g.setColor(Color.WHITE);
g.fillRect(0,0,canvasWidth,canvasHeight);
//drawthesnake
g.setColor(Color.BLACK);
LinkedListna=snakeModel.nodeArray;
Iteratorit=na.iterator();
while(it.hasNext()){
Noden=(Node)it.next();
drawNode(g,n);
//drawthefood
g.setColor(Color.RED);
Noden=snakeModel.food;
updateScore();
//drawNode():绘画某一结点(蛇身或食物)
privatevoiddrawNode(Graphicsg,Noden){
g.fillRect(n.x*nodeWidth,n.y*nodeHeight,nodeWidth-1,
nodeHeight-1);
//updateScore():改变计分牌
publicvoidupdateScore(){
Strings="Score:"+snakeModel.score;
labelScore.setText(s);
//begin():游戏开始,放置贪吃蛇
你可以参考一下每次遇到不会的都来求助是很不方便的
如果你想了解和学习更多的JAVA编程,成为一名真正的JAVA高手,你可以来这个裙,前面三个数是四二六中间是三九六后面是二八四
把这串数字连起来就可以了,这是一个高手的学习裙,在这里你可以学习到书上学不到的知识,还有大牛相互讨论并指导你解答哦!
voidbegin(){
if(snakeModel==null||!snakeModel.running){
snakeModel=newSnakeModel(this,canvasWidth/nodeWidth,
this.canvasHeight/nodeHeight);
(newThread(snakeModel)).start();
//main():主函数
publicstaticvoidmain(String[]args){
GreedSnakegs=newGreedSnake();
Node.java:
publicclassNode{
intx;
inty;
Node(intx,inty){
this.x=x;
this.y=y;
SnakeModel.java:
importjava.util.Arrays;
importjava.util.Random;
importjavax.swing.JOptionPane;
publicclassSnakeModelimplementsRunnable{
GreedSnakegs;
boolean[][]matrix;//界面数据保存在数组里
LinkedListnodeArray=newLinkedList();
Nodefood;
intmaxX;//最大宽度
intmaxY;//最大长度
intdirection=2;//方向
booleanrunning=false;
doublespeedChangeRate=0.75;//速度改变程度
booleanpaused=false;//游戏状态
intscore=0;
intcountMove=0;
//UP和DOWN是偶数,RIGHT和LEFT是奇数
publicstaticfinalintUP=2;
publicstaticfinalintDOWN=4;
publicstaticfinalintLEFT=1;
publicstaticfinalintRIGHT=3;
//GreedModel():初始化界面
publicSnakeModel(GreedSnakegs,intmaxX,intmaxY){
this.gs=gs;
this.maxX=maxX;
this.maxY=maxY;
matrix=newboolean[maxX][];
for(inti=0;imaxX;++i){
matrix[i]=newboolean[maxY];
Arrays.fill(matrix[i],false);//没有蛇和食物的地区置false
//初始化贪吃蛇
intinitArrayLength=maxX2010:maxX/2;
for(inti=0;iinitArrayLength;++i){
intx=maxX/2+i;
inty=maxY/2;
nodeArray.addLast(newNode(x,y));
matrix[x][y]=true;//蛇身处置true
food=createFood();
matrix[food.x][food.y]=true;//食物处置true
//changeDirection():改变运动方向
publicvoidchangeDirection(intnewDirection){
if(direction%2!=newDirection%2)//避免冲突
direction=newDirection;
//moveOn():贪吃蛇运动函数
publicbooleanmoveOn(){
Noden=(Node)nodeArray.getFirst();
intx=n.x;
inty=n.y;
switch(direction){
caseUP:
y--;
caseDOWN:
y++;
caseLEFT:
x--;
caseRIGHT:
x++;
if((0=xxmaxX)(0=yymaxY)){
if(matrix[x][y])//吃到食物或者撞到身体
if(x==food.xy==food.y)//吃到食物
nodeArray.addFirst(food);//在头部加上一结点
//计分规则与移动长度和速度有关
intscoreGet=(10000-200*countMove)/timeInterval;
score+=scoreGet0scoreGet:10;
countMove=0;
matrix[food.x][food.y]=true;
returntrue;
}else
returnfalse;//撞到身体
}else//什么都没有碰到
nodeArray.addFirst(newNode(x,y));//加上头部
matrix[x][y]=true;
n=(Node)nodeArray.removeLast();//去掉尾部
matrix[n.x][n.y]=false;
countMove++;
returnfalse;//越界(撞到墙壁)
//run():贪吃蛇运动线程
publicvoidrun(){
running=true;
while(running){
try{
Thread.sleep(timeInterval);
}catch(Exceptione){
if(!paused){
if(moveOn())//未结束
gs.repaint();
}else//游戏结束
JOptionPane.showMessageDialog(null,"GAMEOVER",
"GameOver",JOptionPane.INFORMATION_MESSAGE);
running=false;
//createFood():生成食物及放置地点
privateNodecreateFood(){
intx=0;
inty=0;
do{
Randomr=newRandom();
x=r.nextInt(maxX);
y=r.nextInt(maxY);
}while(matrix[x][y]);
returnnewNode(x,y);
//speedUp():加快蛇运动速度
publicvoidspeedUp(){
timeInterval*=speedChangeRate;
//speedDown():放慢蛇运动速度
publicvoidspeedDown(){
timeInterval/=speedChangeRate;
//changePauseState():改变游戏状态(暂停或继续)
publicvoidchangePauseState(){
paused=!paused;
满意请采纳
中国象棋是双方在有着9条竖线和10条横线的棋盘上对弈的,竖线与横线的交叉点称做棋点,每个棋子都是在棋点上行走,而不是在方格中行走,河界将棋盘分成两个等份,每一边都有一块由9个点组成的"九宫",棋子"将"、"帅"、"士"只能在"九宫"内移动。并且"将"、"帅"每一步只可以水平或垂直移动一个棋点。"士"它只能在"九宫"内移动,并且它每一步只可以沿对角线方向移动一个棋点。"象"它必须一步沿对角线方向走两个棋点,但它既不能过河,也不能跳过或穿越障碍,即象在走的过程中不能被"别眼"。"马"每一步只可以水平或垂直移动一个棋点,但必须按对角线方向,向左或右移动,中国象棋的马不能跳过障碍,即在走的过程中不能被"别腿"。"车"可以水平或垂直方向移动任意个无阻碍的点。"炮"移动起来和车很类似,但它必须跳过一个棋子来吃掉对方的一个棋子,被跳过的那个棋子称为桥或者屏风。"兵'每步只能向前移动一个棋点,过河以后,它便增加了向左右移动的能力,兵不允许向后移动。