• 大小: 18KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: Java
  • 标签: java  网络  五子棋  

资源简介

使用java编写的网络五子棋(非原创),好东西共分享

资源截图

代码片段和文件信息

import java.awt.*;
import java.net.*;
import java.io.*;
import java.util.*;
import java.awt.event.*;
import java.awt.geom.*;
class OmokBoard extends Canvas{
  public static final int BLACK=1 WHITE=-1;
  private int[][] map;
  private int size cell;
  private String info=“游戏终止“;
  private int color=BLACK;
  private boolean enable=false;
  private boolean running=false;
  private PrintWriter writer;
  private Graphics gboard gbuff;
  private Image buff;
  OmokBoard(int s int c){
    this.size=s;this.cell=c;
    map=new int[size+2][];
    for(int i=0;i      map[i]=new int[size+2];
    setBackground(new Color(200200100));
    setSize(size*(cell+1)+size size*(cell+1)+size);
    addMouseListener(new MouseAdapter(){
      public void mousePressed(MouseEvent me){
        if(!enable)return;
        int x=(int)Math.round(me.getX()/(double)cell);
        int y=(int)Math.round(me.getY()/(double)cell);
        if(x==0 || y==0 || x==size+1 || y==size+1)return;
        if(map[x][y]==BLACK || map[x][y]==WHITE)return;
        writer.println(“[STONE]“+x+“ “+y);
        map[x][y]=color;
        if(check(new Point(x y) color)){
          info=“获胜.“;
          writer.println(“[WIN]“);
        }
        else info=“等待对方落子.“;
        repaint();
        enable=false;
      }
    });
  }
  public boolean isRunning(){
    return running; 
  }
  public void startGame(String col){
    running=true;
    if(col.equals(“BLACK“)){
      enable=true; color=BLACK;
      info=“开始游戏...请落子.“;
    }   
    else{
      enable=false; color=WHITE;
      info=“开始游戏...请等待.“;
    }
  }
  public void stopGame(){
    reset();
    writer.println(“[STOPGAME]“);
    enable=false;
    running=false;
  }
  public void putOpponent(int x int y){
    map[x][y]=-color;
    info=“对方已落子.请落子.“;
    repaint();
  }
  public void setEnable(boolean enable){
    this.enable=enable;
  }
  public void setWriter(PrintWriter writer){
    this.writer=writer;
  }
  public void update(Graphics g){
    paint(g); 
  }
  public void paint(Graphics g){
    if(gbuff==null){
      buff=createImage(getWidth()getHeight());
      gbuff=buff.getGraphics();  
    }    
    drawBoard(g);
  }
  public void reset(){
    for(int i=0;i      for(int j=0;j        map[i][j]=0;
    info=“游戏终止“;
    repaint();    
  }
  private void drawLine(){
    gbuff.setColor(Color.black);
    for(int i=1; i<=size;i++){
      gbuff.drawLine(cell i*cell cell*size i*cell);
      gbuff.drawLine(i*cell cell i*cell  cell*size);
    }
  }
  private void drawBlack(int x int y){
    Graphics2D gbuff=(Graphics2D)this.gbuff;
    gbuff.setColor(Color.black);
    gbuff.fillOval(x*cell-cell/2 y*cell-cell/2 cell cell);
    gbuff.setColor(Color.white);
    gbuff.drawOval(x*cell-cell/2 y*cell-cell/2 cell cell);
  }
  private void drawWhite(int x int y){
    gbuff.setColor(Color.white

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     目录          0  2009-06-18 13:19  网络五子棋

     文件       5426  2009-06-18 13:20  网络五子棋\OmokServer.java

     文件       3547  2009-06-18 13:21  网络五子棋\OmokServer$Omok_Thread.class

     文件       2187  2009-06-18 13:21  网络五子棋\OmokServer$BManager.class

     文件       1698  2009-06-18 13:21  网络五子棋\OmokServer.class

     文件      12446  2009-06-18 13:23  网络五子棋\OmokClient.java

     文件       1619  2009-06-18 13:23  网络五子棋\OmokBoard$1.class

     文件       4761  2009-06-18 13:23  网络五子棋\OmokBoard.class

     文件        468  2009-06-18 13:23  网络五子棋\OmokClient$1.class

     文件       8068  2009-06-18 13:23  网络五子棋\OmokClient.class

----------- ---------  ---------- -----  ----

                40220                    10


评论

共有 条评论