摇摆游戏攻略网

关闭导航
首页 > 棋牌益智 > 游戏攻略2

用简单的java语言编写五子棋

整理:yaobaiwang.com 时间:07月07日

[JAVA设计的五子棋源程序]java编写五子棋程序:import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.geom.*; import java.util.*; class PaintPanel extends JPanel...+阅读

用简单的java语言编写五子棋

import java.applet.*; import java.awt.*; import java.awt.event.*; import java.applet.applet; import java.awt.color; public class wu7ziqi extends applet implements actionlistener,mouselistener,mousemotionlistener,itemlistener { int color_qizi=0;//旗子的颜色标识 0:白子 1:黑子 int intgame_start=0;//游戏开始标志 0未开始 1游戏中 int intgame_body[][]=new int[16][16]; //设置棋盘棋子状态 0 无子 1 白子 2 黑子 button b1=new button("游戏开始"); button b2=new button("重置游戏"); label lblwin=new label(" "); checkbox ckbhb[]=new checkbox[2]; checkboxgroup ckghb=new checkboxgroup(); public void init() { setlayout(null); addmouselistener(this); add(b1); b1.setbounds(330,50,80,30); b1.addactionlistener(this); add(b2); b2.setbounds(330,90,80,30); b2.addactionlistener(this); ckbhb[0]=new checkbox("白子先",ckghb,false); ckbhb[0].setbounds(320,20,60,30); ckbhb[1]=new checkbox("黑子先",ckghb,false); ckbhb[1].setbounds(380,20,60,30); add(ckbhb[0]); add(ckbhb[1]); ckbhb[0].additemlistener(this); ckbhb[1].additemlistener(this); add(lblwin); lblwin.setbounds(330,130,80,30); game_start_csh(); } public void itemstatechanged(itemevent e) { if (ckbhb[0].getstate()) //选择黑子先还是白子先 { color_qizi=0; } else { color_qizi=1; } } public void actionperformed(actionevent e) { graphics g=getgraphics(); if (e.getsource()==b1) { game_start(); } else { game_re(); } } public void mousepressed(mouseevent e){} public void mouseclicked(mouseevent e) { graphics g=getgraphics(); int x1,y1; x1=e.getx(); y1=e.gety(); if (e.getx()300 || e.gety()300) { return; } if (x1%20>10) { x1+=20; } if(y1%20>10) { y1+=20; } x1=x1/20*20; y1=y1/20*20; set_qizi(x1,y1); } public void mouseentered(mouseevent e){} public void paint(graphics g) { draw_qipan(g); }

有关五子棋的程序设计问题好的追加

// 作用:判断指定行棋方向上,是否有含当前棋位的5个连续当前玩家棋子// Cursor -- 当前棋位坐标// direction -- 方向// Order -- 表示当前玩家的棋子标记。int JudgeWinLine(int Order,struct point Cursor,int direction) { int i; struct point pos,dpos; const int testnum = 5; // 设置判断的连续棋子个数,既5个。int count; // 从当前棋子在行棋方向上起点棋位,既逆向数(不含当前棋子)的第4个棋子)的坐标,// 以及该行棋方向沿水平方向,垂直方向的步长。// pos.x -- 起点棋位(逆向数(不含当前棋子)的第4个棋位)的坐标x// pos.y -- 起点棋位(逆向数(不含当前棋子)的第4个棋位)的坐标y// dpos.x -- 行棋方向沿水平方向的步长,既行棋方向增加一格,则水平方向对应的坐标变化值。// dpos.y -- 行棋方向沿垂直方向的步长,既行棋方向增加一格,垂直方向的对应的坐标变化值。

switch(direction) { case 0:/*在水平方向*/ pos.x=Cursor.x-(testnum-1); pos.y=Cursor.y; dpos.x=1; dpos.y=0; break; case 1:/*在垂直方向*/ pos.x=Cursor.x; pos.y=Cursor.y-(testnum-1); dpos.x=0; dpos.y=1; break; case 2:/*在左下至右上的斜方向*/ pos.x=Cursor.x-(testnum-1); pos.y=Cursor.y+(testnum-1); dpos.x=1; dpos.y=-1; break; case 3:/*在左上至右下的斜方向*/ pos.x=Cursor.x-(testnum-1); pos.y=Cursor.y-(testnum-1); dpos.x=1; dpos.y=1; break; } count=0; // 临时记录已有连续棋子的个数。// 这里程序中代码是错的,应该取 i// 因为需要计算判断的范围是,从当前棋位正向或逆向各数testnum-1个棋子,// 所以,加上当前棋子,需要判断的棋子次数等于// (testnum-1)*2+1 = testnum*2-1.// 如果还想不明白,看下图,*表示当前棋位// 4 + + + + + + + +// + 3 + + + + + + +// + + 2 + + + + + +// + + + 1 + + + + +// + + + + * + + + +// + + + + + 1 + + +// + + + + + + 2 + +// + + + + + + + 3 +// + + + + + + + + 4 for(i=0;i{ if(pos.x>=0&pos.x=0&pos.y{ if(gChessBoard[pos.x][pos.y]==Order) { count++; // 如果棋位上有该玩家棋子,则连续棋子数加一。

if(count>=testnum) // 如果连续棋子数大于等于“要判断的棋子个数”,则判断为真。return TRUE; } else count=0; // 如果棋位上没有该玩家棋子,既出现空位或对家棋子,则连续棋子数清零。} // 每次循环,按步长计算一次行棋方向上的新棋位坐标。pos.x+=dpos.x; pos.y+=dpos.y; } return FALSE; } // 替换switch if(direction==0)/*在水平方向*/ { pos.x=Cursor.x-(testnum-1); pos.y=Cursor.y; dpos.x=1; dpos.y=0; } else if(direction==1)/*在垂直方向*/ { pos.x=Cursor.x; pos.y=Cursor.y-(testnum-1); dpos.x=0; dpos.y=1; } else if(direction==2)/*在左下至右上的斜方向*/ { pos.x=Cursor.x-(testnum-1); pos.y=Cursor.y+(testnum-1); dpos.x=1; dpos.y=-1; } else if(direction==3)/*在左上至右下的斜方向*/ { pos.x=Cursor.x-(testnum-1); pos.y=Cursor.y-(testnum-1); dpos.x=1; dpos.y=1; } else { /* 非法direction方向参数值 */ }

以下为关联内容:

谁能帮我写一个JAVA人人对战的五子棋java五子棋人机:package com.java.demo1; import javax.swing.* ; import java.awt.*; import java.awt.event.*;/** * 自定义五子棋棋盘面板类 * */ public class Gobang ext...

助高手一个C语言五子棋的代码C语言简单的五子棋:/* 程序中用到的库函数所在头文件应用 #include 命令包含进来 */ #include#include#include#include#include/*****************************************...

JAVA五子棋java五子棋程序解释:你好!这里有段五子棋程序的代码,希望对你有帮助! //wuziqi.java import java.applet.*; import java.awt.*; import java.awt.event.*; import java.applet....

五子棋JAVA怎么实现java编写五子棋程序:import java.io.*; public class Gobang{ //定义一个二维数组来充当棋盘 private String[][] board; //定义棋盘的大小 private static int BOARD_SIZE =...

漂亮的JAVA水晶五子棋java中的五子棋:import java.awt.*; import java.awt.event.*; class ChessPad extends Panel implements MouseListener,ActionListener { int x = -1, y = -1, chessColor...

java五子棋java五子棋怎么判断输赢:我有82237475import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.util.*; class clientThread extend...

JAVA五子棋用到的知识点以及方法类有哪些java五子棋怎么判断输赢:我是把棋子放到2维数组里,1表示白旗,2表示黑棋,0表示空。判断输赢的话,只要判断数组有5个连续的数就行了,分为从上到下,从左到右,从左上到右下,从右上到左下...

一个五子棋游戏的java程序跪JAVA五子棋源代码:import java.awt.*; import java.awt.event.*; class ChessPad extends Panel implements MouseListener,ActionListener { int x = -1, y = -1, chessCo...

一个c语言不用c编的五子棋程序用C语言在linux下编写一个五子棋程序!#include#include#include#include#include#include#define SHURU 1#define FANGXIANG 2#define WUXIAO 0#define TUICHU 3/***********...

推荐文章