最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

五子棋游戏JAVA源代码

来源:动视网 责编:小OO 时间:2025-10-04 17:00:09
文档

五子棋游戏JAVA源代码

本源代码实现的是一单机双人对战五子棋游戏本源代码由五个java源程序文件组成,Game.java、GameFrame.java、GamePanel.java、ChessMan.java、Player.java源代码下载源代码:Game.javaimportjavax.swing.*;publicclassGame{publicstaticvoidmain(String[]args){GameFrameGFrame=newGameFrame();GFrame.setDefaultCloseOpe
推荐度:
导读本源代码实现的是一单机双人对战五子棋游戏本源代码由五个java源程序文件组成,Game.java、GameFrame.java、GamePanel.java、ChessMan.java、Player.java源代码下载源代码:Game.javaimportjavax.swing.*;publicclassGame{publicstaticvoidmain(String[]args){GameFrameGFrame=newGameFrame();GFrame.setDefaultCloseOpe
本源代码实现的是一单机双人对战五子棋游戏

本源代码由五个java源程序文件组成,Game.java、GameFrame.java、GamePanel.java、 ChessMan.java、Player.java

源代码下载

源代码:

Game.java

import javax.swing.*;

public class Game {

public static void main(String[] args) {

GameFrame GFrame=new GameFrame();

GFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

GFrame.setVisible(true);

}

}

GameFrame.java

import java.awt.*;

import javax.swing.*;

class GameFrame extends JFrame {

private static final int Width=570;

private static final int Height=470;

GameFrame(){

setTitle("五子棋游戏");

CenteredFrame();

setSize(Width,Height);

GamePanel Gpanel=new GamePanel();

add(Gpanel);

}

void CenteredFrame(){

Toolkit kit=Toolkit.getDefaultToolkit();

Dimension screenSize=kit.getScreenSize();

int screenHeight=screenSize.height;

int screenWidth=screenSize.width;

int Xposition=(screenWidth-Width)/2;

int Yposition=(screenHeight-Height)/2;

setLocation(Xposition,Yposition);

}

}

GamePanel.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

class GamePanel extends JPanel {

private Point cursor=new Point(40,60); //棋盘坐标

private int[][] ChessState=new int[18][18];//棋盘状态

private int i=0;//横坐标   

private int j=0;//纵坐标

private final static int testnum=5;//五子棋的规定棋子数

private Player Black=new Player(1,Color.BLACK,"黑方");//黑方棋子

private Player White=new Player(2,Color.WHITE,"白方");//白方棋子

private Player Cplayer=null;//当前用户的引用

private JTextField textBlack=new JTextField("

rea gInstruction=new JTextArea();

gInstruction.setSelectedTextColor(new Color(238,238,238));

String gSInstruction=

"Play1(黑方) Key \

up--------W \

down----S \

left--------A \

right------F \

\

"+

"Play2(白方) Key \

up--------up \

down----down \

left--------left \

right------right \

\

"+

"Exit game: \

Press Esc";

gInstruction.setText(gSInstruction);

gInstruction.setEditable(false);

gInstruction.setBounds(440,60,100,340);

add(gInstruction);

ChessManPerformListener Perform=new ChessManPerformListener();

addKeyListener(Perform);

}

// 设置第一个JTextField输出"请黑方下棋

String[] options = {"继续

int keyCode=event.getKeyCode();

if(keyCode==KeyEvent.VK_ESCAPE)

System.exit(0);

if(Cplayer.getCurrentIdentify()==2){//判别当前玩家

if(keyCode==KeyEvent.VK_LEFT){

if(cursor.x>40)

cursor.x-=20;

}

else if(keyCode==KeyEvent.VK_RIGHT){

if(cursor.x<380)

cursor.x+=20;

}

else if(keyCode==KeyEvent.VK_UP){

if(cursor.y>60)

cursor.y-=20;

}

else if(keyCode==KeyEvent.VK_DOWN){

if(cursor.y<400)

cursor.y+=20;

}

else if(keyCode==KeyEvent.VK_ENTER){

if(!isChessState()){

Cplayer.PerformChessMan();

RecordChessState();

repaint();

JudgeWin();//判定当前落子后是否赢棋

}

}

repaint();

}

}

public void keyReleased(KeyEvent event) {}

//玩家1的按键

public void keyTyped(KeyEvent event) {

char keyChar=event.getKeyChar();

if(Cplayer.getCurrentIdentify()==1){//判别当前玩家

if(keyChar=='a'){

if(cursor.x>40)//对移动光标超界现象做判别

cursor.x-=20;

}

else if(keyChar=='d'){

if(cursor.x<380)

cursor.x+=20;

}

else if(keyChar=='w'){

if(cursor.y>60)

cursor.y-=20;

}

else if(keyChar=='s'){

if(cursor.y<400)

cursor.y+=20;

}

else if(keyChar==' '){

if(!isChessState()){ //落子前先判断当前位置上是否已有棋子

Cplayer.PerformChessMan();//落子

RecordChessState();//记录当前落子后棋盘状态

repaint();

JudgeWin();//判定当前落子后是否赢棋

}

}

}

repaint();

}

}

}

ChessMan.java

import java.awt.Color;

class Ch

essMan {

private static final int ChessManSize=20;

private Color ChessManColor;

ChessMan(Color c){

ChessManColor=c;

}

static int getChessManSize(){

return ChessManSize;

}

Color getChessManColor(){

return ChessManColor;

}

}

Player.java

import java.awt.Color;

class Player {

private int identify;

private ChessMan pChessMan;

private String PlayerStringIdentify;

Player(int identify,Color c,String sIdentify){

this.identify=identify;

pChessMan=new ChessMan(c);

this.PlayerStringIdentify=sIdentify;

}

int getCurrentIdentify(){

return identify;

}

String getsIdentify(){

return PlayerStringIdentify;

}

void PerformChessMan(){}

Color getplayerChessManColor(){

return pChessMan.getChessManColor();

}

}

文档

五子棋游戏JAVA源代码

本源代码实现的是一单机双人对战五子棋游戏本源代码由五个java源程序文件组成,Game.java、GameFrame.java、GamePanel.java、ChessMan.java、Player.java源代码下载源代码:Game.javaimportjavax.swing.*;publicclassGame{publicstaticvoidmain(String[]args){GameFrameGFrame=newGameFrame();GFrame.setDefaultCloseOpe
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top