求一个简单的JAVA五子棋代码!! 网上复制的别来了!

作者&投稿:危纨 (若有异议请与网页底部的电邮联系)
求一个用java编写的网页版五子棋源代码~

如果你有单机版的把它改成applet就行了

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

;

public class 下棋 extends JFrame {
int x = 0, y = 0;

int a = 0;

int x1 = 0, y1 = 0, x2 = 0, y2 = 0, x3 = 0, y3 = 0, x4 = 0, y4 = 0;;

boolean fa = true, huatu = true, yin = false;

int a1 = 0, a2 = 0, a3 = 0, a4 = 0, a5 = 0, a6 = 0, a7 = 0, a8 = 0, a9 = 0;

int s[] = new int[10], jj[] = new int[10];

JButton congxin, huanse;

JLabel jl;

public 下棋() {
Container c = getContentPane();
c.setLayout(new FlowLayout());
congxin = new JButton("重新开始红队先下");
c.add(congxin);
huanse = new JButton("重新开始蓝队先下");
c.add(huanse);
jl = new JLabel();
c.add(jl, BorderLayout.SOUTH);
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent event) {
if (event.isAltDown()) {
repaint();
}
x = event.getPoint().x;
y = event.getPoint().y;
int a = mm(x, y);
if (yin) {
jl.setForeground(Color.RED);
jl
.setText(" 游戏已结束,请重新开始 ");

}

else {
if (s[a] == 1) {
jl.setForeground(Color.RED);
jl.setText(" 此位置有棋子,请另选位置重新下棋 ");
} else {
fa = false;
if (a == 1)
a1 = 1;
if (a == 2)
a2 = 1;
if (a == 3)
a3 = 1;
if (a == 4)
a4 = 1;
if (a == 5)
a5 = 1;
if (a == 6)
a6 = 1;
if (a == 7)
a7 = 1;
if (a == 8)
a8 = 1;
if (a == 9)
a9 = 1;
jl.setText("");
repaint();
}
}
s[a] = 1;
}
});

congxin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
for (int i = 0; i < s.length; i++) {
s[i] = 0;
jj[i] = 0;
}
fa = true;
repaint();
yin = false;
huatu = true;
jl.setForeground(Color.black);
jl
.setText(" 红队先下 ");
}
});

huanse.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
for (int i = 0; i < s.length; i++) {
s[i] = 0;
jj[i] = 0;
}
fa = true;
repaint();
yin = false;
huatu = false;
jl.setForeground(Color.black);
jl
.setText(" 蓝队先下 ");
}
});

setSize(500, 500);
setVisible(true);
}

public void paint(Graphics g) {
if (fa) {
super.paint(g);
int x = 100, y = 100, c = 300, k = 300;
for (int i = 0; i < 300; i += 100)
g.drawRect(x, y + i, c, k - i);
for (int i = 0; i < 300; i += 100)
g.drawRect(x + i, y, c - i, k);
} else {
jl.setForeground(Color.black);
if (huatu) {
g.setColor(Color.red);
if (a1 == 1) {
g.drawLine(120, 120, 180, 180);
g.drawLine(180, 120, 120, 180);
a1 = 0;
jj[1] = 1;
}
if (a2 == 1) {
g.drawLine(220, 120, 280, 180);
g.drawLine(280, 120, 220, 180);
a2 = 0;
jj[2] = 1;
}

if (a3 == 1) {
g.drawLine(320, 120, 380, 180);
g.drawLine(380, 120, 320, 180);
a3 = 0;
jj[3] = 1;
}
if (a4 == 1) {
g.drawLine(120, 220, 180, 280);
g.drawLine(180, 220, 120, 280);
a4 = 0;
jj[4] = 1;
}
if (a5 == 1) {
g.drawLine(220, 220, 280, 280);
g.drawLine(280, 220, 220, 280);
a5 = 0;
jj[5] = 1;
}
if (a6 == 1) {
g.drawLine(320, 220, 380, 280);
g.drawLine(380, 220, 320, 280);
a6 = 0;
jj[6] = 1;
}
if (a7 == 1) {
g.drawLine(120, 320, 180, 380);
g.drawLine(180, 320, 120, 380);
a7 = 0;
jj[7] = 1;
}
if (a8 == 1) {
g.drawLine(220, 320, 280, 380);
g.drawLine(280, 320, 220, 380);
a8 = 0;
jj[8] = 1;
}
if (a9 == 1) {
g.drawLine(320, 320, 380, 380);
g.drawLine(380, 320, 320, 380);
a9 = 0;
jj[9] = 1;
}
huatu = false;
jl
.setText(" 蓝队下棋 ");
} else {
g.setColor(Color.blue);
if (a1 == 1) {
g.drawOval(125, 125, 50, 50);
a1 = 0;
jj[1] = 2;
}
if (a2 == 1) {
g.drawOval(225, 125, 50, 50);
a2 = 0;
jj[2] = 2;
}
if (a3 == 1) {
g.drawOval(325, 125, 50, 50);
a3 = 0;
jj[3] = 2;
}
if (a4 == 1) {
g.drawOval(125, 225, 50, 50);
a4 = 0;
jj[4] = 2;
}
if (a5 == 1) {
g.drawOval(225, 225, 50, 50);
a5 = 0;
jj[5] = 2;
}
if (a6 == 1) {
g.drawOval(325, 225, 50, 50);
a6 = 0;
jj[6] = 2;
}
if (a7 == 1) {
g.drawOval(125, 325, 50, 50);
a7 = 0;
jj[7] = 2;
}
if (a8 == 1) {
g.drawOval(225, 325, 50, 50);
a8 = 0;
jj[8] = 2;
}
if (a9 == 1) {
g.drawOval(325, 325, 50, 50);
a9 = 0;
jj[9] = 2;
}
huatu = true;
jl
.setText(" 红队下棋 ");
}
dd();
}
}

public int mm(int x, int y) {
if (x >= 100 && x = 100 && y < 200)
a = 1;
else if (x >= 200 && x = 100 && y < 200)
a = 2;
else if (x >= 300 && x = 100 && y < 200)
a = 3;
else if (x >= 100 && x = 200 && y < 300)
a = 4;
else if (x >= 200 && x = 200 && y < 300)
a = 5;
else if (x >= 300 && x = 200 && y < 300)
a = 6;
else if (x >= 100 && x = 300 && y < 400)
a = 7;
else if (x >= 200 && x = 300 && y < 400)
a = 8;
else if (x >= 300 && x = 300 && y < 400)
a = 9;
else
a = 0;
return a;
}

public void dd() {

if (jj[1] == 1 && jj[2] == 1 && jj[3] == 1) {
jl.setForeground(Color.RED);
jl
.setText(" 红方获胜,连接线1,2,3 ");
yin = true;
}
if (jj[4] == 1 && jj[5] == 1 && jj[6] == 1) {
jl.setForeground(Color.RED);
jl
.setText(" 红方获胜,连接线4,5,6 ");
yin = true;
}
if (jj[7] == 1 && jj[8] == 1 && jj[9] == 1) {
jl.setForeground(Color.RED);
jl
.setText(" 红方获胜,连接线7,8,9 ");
yin = true;
}
if (jj[1] == 1 && jj[5] == 1 && jj[9] == 1) {
jl.setForeground(Color.RED);
jl
.setText(" 红方获获胜,连接线1,5,9 ");
yin = true;
}
if (jj[3] == 1 && jj[5] == 1 && jj[7] == 1) {
jl.setForeground(Color.RED);
jl
.setText(" 红方获胜,连接线3,5,7 ");
yin = true;
}
if (jj[1] == 1 && jj[4] == 1 && jj[7] == 1) {
jl.setForeground(Color.RED);
jl
.setText(" 红方获胜,连接线1,4,7 ");
yin = true;
}
if (jj[2] == 1 && jj[5] == 1 && jj[8] == 1) {
jl.setForeground(Color.RED);
jl
.setText(" 红方获胜,连接线2,5,8 ");
yin = true;
}
if (jj[3] == 1 && jj[6] == 1 && jj[9] == 1) {
jl.setForeground(Color.RED);
jl
.setText(" 红方获胜,连接线3,6,9 ");
yin = true;
}

if (jj[1] == 2 && jj[2] == 2 && jj[3] == 2) {
jl.setForeground(Color.RED);
jl
.setText(" 蓝方获胜,连接线1,2,3 ");
yin = true;
}
if (jj[4] == 2 && jj[5] == 2 && jj[6] == 2) {
jl.setForeground(Color.RED);
jl
.setText(" 蓝方获胜,连接线4,5,6 ");
yin = true;
}
if (jj[7] == 2 && jj[8] == 2 && jj[9] == 2) {
jl.setForeground(Color.RED);
jl
.setText(" 蓝方获胜,连接线7,8,9 ");
yin = true;
}
if (jj[1] == 2 && jj[5] == 2 && jj[9] == 2) {
jl.setForeground(Color.RED);
jl
.setText(" 蓝方获胜,连接线1,5,9 ");
yin = true;
}
if (jj[3] == 2 && jj[5] == 2 && jj[7] == 2) {
jl.setForeground(Color.RED);
jl
.setText(" 蓝方获胜,连接线3,5,7 ");
yin = true;
}
if (jj[1] == 2 && jj[4] == 2 && jj[7] == 2) {
jl.setForeground(Color.RED);
jl.setText("蓝方获胜,连接线1,4,7 ");
yin = true;
}
if (jj[2] == 2 && jj[5] == 2 && jj[8] == 2) {
jl.setForeground(Color.RED);
jl
.setText(" 蓝方获胜,连接线2,5,8 ");
yin = true;
}
if (jj[3] == 2 && jj[6] == 2 && jj[9] == 2) {
jl.setForeground(Color.RED);
jl
.setText(" 蓝方获胜,连接线3,6,9 ");
yin = true;
}
if (s[1] == 1 && s[2] == 1 && s[3] == 1 && s[4] == 1 && s[5] == 1
&& s[6] == 1 && s[7] == 1 && s[8] == 1 && s[9] == 1) {
jl.setForeground(Color.RED);
jl
.setText(" 双方都没获胜,游戏结束 ");
yin = true;
}
System.out.println(jj[2]);
}

public static void main(String[] args) {
下棋 s = new 下棋();
s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

  以下是现写的 实现了两人对战 自己复制后运行把 没什么难度 类名 Games

  import java.util.Scanner;

  public class Games {

  private String board[][];
  private static int SIZE = 17;
  private static String roles = "A玩家";
  //初始化数组
  public void initBoard() {
  board = new String[SIZE][SIZE];
  for (int i = 0; i < SIZE; i++) {
  for (int j = 0; j < SIZE; j++) {
  // if(i==0){
  // String str = "";
  // str += j+" ";
  // board[i][j]= str;
  // }else if(i!=0&&j==0){
  // String str = "";
  // str += i+" ";
  // board[i][j]= str;
  // }else{
  board[i][j] = "╋";
  // }
  }
  }
  }
  //输出棋盘
  public void printBoard() {
  for (int i = 0; i < SIZE; i++) {
  for (int j = 0; j < SIZE; j++) {
  System.out.print(board[i][j]);
  }
  System.out.println();
  }
  }
  //判断所下棋子位置是否合理
  public boolean isOk(int x, int y) {
  boolean isRight = true;
  if (x >= 16 || x < 1 || y >= 16 | y < 1) {
  //System.out.println("输入错误,请从新输入");
  isRight = false;
  }
  if (board[x][y].equals("●") || board[x][y].equals("○")) {
  isRight = false;
  }
  return isRight;
  }
  //判断谁赢了
  public void whoWin(Games wz) {
  // 从数组挨个查找找到某个类型的棋子就从该棋子位置向右,向下,斜向右下 各查找5连续的位置看是否为5个相同的
  int xlabel;// 记录第一次找到某个棋子的x坐标
  int ylabel;// 记录第一次找到某个棋子的y坐标
  // ●○╋
  // 判断人是否赢了
  for (int i = 0; i < SIZE; i++) {
  for (int j = 0; j < SIZE; j++) {
  if (board[i][j].equals("○")) {
  xlabel = i;
  ylabel = j;
  // 横向找 x坐标不变 y坐标以此加1连成字符串
  String heng = "";
  if (i + 5 < SIZE && j + 5 < SIZE) {
  for (int k = j; k < j + 5; k++) {
  heng += board[i][k];
  }
  if (heng.equals("○○○○○")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  // 向下判断y不变 x逐增5 连成字符串
  String xia = "";
  for (int l = j; l < i + 5; l++) {
  xia += board[l][j];
  // System.out.println(xia);
  }
  if (xia.equals("○○○○○")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  // 斜向右下判断
  String youxia = "";
  for (int a = 1; a <= 5; a++) {
  youxia += board[xlabel++][ylabel++];
  }
  if (youxia.equals("○○○○○")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  }
  }
  }
  }
  // 判断电脑是否赢了
  for (int i = 0; i < SIZE; i++) {
  for (int j = 0; j < SIZE; j++) {
  if (board[i][j].equals("●")) {
  xlabel = i;
  ylabel = j;

  // 横向找 x坐标不变 y坐标以此加1连成字符串
  String heng = "";
  if (j + 5 < SIZE && i + 5 < SIZE) {
  for (int k = j; k < j + 5; k++) {
  heng += board[i][k];
  }
  if (heng.equals("●●●●●")) {
  System.out.println(roles+"赢输了!您输了!");
  System.exit(0);
  }
  // 向下判断y不变 x逐增5 连成字符串
  String xia = "";
  for (int l = i; l < i + 5; l++) {
  xia += board[l][ylabel];
  // System.out.println(xia);
  }
  if (xia.equals("●●●●●")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  // 斜向右下判断
  String youxia = "";
  for (int a = 1; a <= 5; a++) {
  youxia += board[xlabel++][ylabel++];
  }
  if (youxia.equals("●●●●●")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  }
  }
  }
  }
  }
  public static void main(String[] args) {
  Games wz = new Games();
  Scanner sc = new Scanner(System.in);
  wz.initBoard();
  wz.printBoard();

  while (true) {
  System.out.print("请"+roles+"输入X,Y坐标,必须在0-15范围内,xy以空格隔开,输入16 16结束程序");
  int x = sc.nextInt();
  int y = sc.nextInt();
  if (x == SIZE && y == SIZE) {
  System.out.println("程序结束");
  System.exit(0);
  }
  if (x > SIZE || x < 0 || y > SIZE | y < 0) {
  System.out.println("输入错误,请从新输入");
  continue;
  }
  //如果roles是A玩家 就让A玩家下棋,否则就让B玩家下棋。
  if (wz.board[x][y].equals("╋")&&roles.equals("A玩家")) {
  wz.board[x][y] = "○";
  wz.printBoard();
  //判断输赢
  wz.whoWin(wz);
  }else if(wz.board[x][y].equals("╋")&&roles.equals("B玩家")){
  wz.board[x][y] = "●";
  wz.printBoard();
  //判断输赢
  wz.whoWin(wz);
  } else {
  System.out.println("此处已经有棋子,从新输入");
  continue;
  }
  if(roles.equals("A玩家")){
  roles = "B玩家";
  }else if(roles.equals("B玩家")){
  roles = "A玩家";
  }
  }

  }

  }

我有一个,刚刚做的。可以实现人机对战,人人对战,悔棋,禁手等操作。机器方主要采用的是a-b剪枝算法。功能很强大,代码很多。

buh hiyhu


如何用Eclipse建立一个Java应用程序
‍总结: 在eclipse上建立一个java项目是很简单的,甚至懂点英文的可以自己摸索出来,所以重要的是,原材料!原材料:eclipse(建议4.5的火星Mars版),无法上连接只能告诉你百度(关键‍字:eclipse)第一个官网就是!‍至于java的jdk环境,这里就不再说了,可以自己百度(关键字:jdk...

如何用Eclipse建立一个Java应用程序
1、用Eclipse建立一个Java应用程序首先需要创建一个Java工程,在工程里添加一个类,接着在此类中编写代码即可完成一个Java应用程序的建立了;2、使用的工具是Eclipse;3、步骤如下:(1)、打开Eclipse,点击New菜单,新建一个Java Project,输入工程名;(2)、右键工程里的src目录,点击New菜单,选择...

java:求一段代码,很简单,运行后直接播放一个小视频,播放完后(或者自行...
下载JMF(java media framework)下面是一个例子 import java.awt.BorderLayout;import java.awt.Component;import java.net.MalformedURLException;import java.net.URL;import javax.media.Manager;import javax.media.MediaLocator;import javax.media.Player;import javax.swing.JFileChooser;import javax....

Java进阶:一个简单Thread缓冲池的实现[1]
当(next + ) % size == oldest的时候 Queue为满 (注意 为了区分Queue为空和为满的情况 实际上Queue里面最多能放size 个数据 )因为这个Queue会同时被多个线程访问 需要考虑在这种情况下Queue如何工作 首先 Queue需要是线程安全的 可以用Java里的synchronized关键字来确保同时只有一个Thread在访问Queue ...

求java工厂模式的一个简单代码例子,尽量简单
这个应该比较简单一点。某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式。现使用工厂方法模式设计该系统,并写出相应Java代码。interface Log{ public void writeLog();} class FileLog implements Log{ public void writeLog(){ System.out....

求做一个简单的JAVA代码
1.判断改年份是否为闰年,见下面的check()方法 2.计算该月天数,用Calendar类的getActualMaximum()方法能返回指定日历字段可能拥有的最大值,Calendar.DAY_OF_MONTH就是月份字段了 3.计算该月第一天是星期几,复制一个日历实例,把复制的日历设成当月1号,求出1号是星期几,用get()方法,返回指定日历...

求一个简单java程序代码,谢谢
(i == 3) { for (int y = 0; y < 2; y++) { System.out.print(" " + star + " ");} } } } } 是好使的 但是我没找到画五角星有什么规律(五角星好象不是正规图形吧?)如果还有什么要求的话 补充问题(如果是用*填充所有的东西 不包括 “ ”的话 我可以重新再给你写一个)...

新手自学java,想做一个题目,求大神给提供一个编程的思想,我改怎样用代...
首先定义牌和玩家对象。牌还要考虑王牌,属性有花色和点数,能够区分。玩家有一个list存放手牌。for循环生成52个对象,然后生成2个王牌,加入一个list.定义三个玩家。循环17次,每次按顺序发牌三张。发牌的时候操作Random生成随机数,每发出一张,从list中remove掉此牌 最后得到4个list,三个玩家加底牌 ...

编写一个java类,控制台输出1,1,2,3,5,8,13
importjava.util.ArrayList;importjava.util.List;\/ 输出斐波那契数列。author老紫竹 \/ publicclassTT{ privateList<Integer>list=newArrayList<Integer>();publicTT(intnumber){ list.add(1);list.add(1);for(inti=2;i<=number;i++){ list.add(list.get(i-1)+list.get(i-2));} } public...

求一个简单又有趣的JAVA小游戏代码
2014-08-20 求一个简单的Java小游戏的代码 43 2013-02-28 求一个简单的Java小游戏代码。比较急,感激不尽!!! 2 2009-03-17 java 小游戏 求一个简单又有趣的JAVA小游戏代码 1 2014-10-04 求一个JAVA编程的小游戏 2013-12-03 如何学习JAVA,并求个简单JAVA游戏代码 4 2013-06-22 要一个小...

仁和区15713746870: 用简单的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;//旗子的...

仁和区15713746870: Java 五子棋界面代码 -
苏蔡丽科: import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.awt.Color; public class WuZhiqi extends Applet implements ActionListener, MouseListener, MouseMotionListener, ItemListener { int color = 0;// 旗子的颜色标识 0:白...

仁和区15713746870: java编写五子棋程序,不要图形界面的那种 -
苏蔡丽科: import java.awt.Button; import java.awt.Color; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; ...

仁和区15713746870: 求JAVA五子棋程序 -
苏蔡丽科: import java.util.*; public class FiveChess {public static void main(String[] args) {char[][] state=new char[16][16];for(int i=0;i<state.length;i++){for(int j=0;j<state.length;j++){state[i][j]='*';}}boolean isBlack=true;//当前是黑方下子Scanner in=new...

仁和区15713746870: 请问谁有五子棋的JAVA代码 -
苏蔡丽科: package com.tarena.day07.gobang; import java.util.Scanner; public class GoGang { /** * @param args */ public static void main(String[] args) { int space = 0; int black = 1; int white = 2; String[] chessName = {"空","黑","白"}; int[] board ...

仁和区15713746870: 谁能帮我写一个JAVA人人对战的五子棋?可以不用写判断!不用窗口,命令行直接运行就行了! -
苏蔡丽科: package com.java.demo1; import javax.swing.* ; import java.awt.*; import java.awt.event.*;/** * 自定义五子棋棋盘面板类 **/ public class Gobang extends JPanel{ //棋盘数组,用于记录棋盘上每个棋子颜色值0-无子 1-黑子 2-白子的位置 public int[]...

仁和区15713746870: 跪求JAVA五子棋源代码 -
苏蔡丽科: 很sb的电脑五子棋:import java.io.*; import java.util.*; public class Gobang { // 定义一个二维数组来充当棋盘 private String[][] board; // 定义棋盘的大小 private stat...

仁和区15713746870: 求JAVA人机对战五子棋代码.. -
苏蔡丽科: 人机的没有,不过自己打自己的有.------------------------------import java.awt.*;import java.awt.event.*;import javax.swing.*;class mypanel extends Panel implements MouseListener{int chess[][] = new int[11][11];boolean Is_Black_True;...

仁和区15713746870: 多用户五子棋游戏 JAVA编程 -
苏蔡丽科: java网络五子棋 下面的源代码分为4个文件; chessClient.java:客户端主程序. chessInterface.java:客户端的界面. chessPad.java:棋盘的绘制. chessServer.java:服务器端. 可同时容纳50个人同时在线下棋,聊天. 没有加上详细注释,...

仁和区15713746870: 五子棋JAVA怎么实现
苏蔡丽科:import java.io.*; public class Gobang{ //定义一个二维数组来充当棋盘 private String[][] board; //定义棋盘的大小 private static int BOARD_SIZE = 15; public void initBoard(){ //初始化棋盘数组 board = new String[BOARD_SIZE][BOARD_SIZE];...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网