最近开始学习Java,为了初步的熟悉Java,所以编写了一个五子棋的小程序来练手,接下来就先上图了
这是工程截图,接下来是程序运行的截图
程序的界面十分简单,棋盘和棋子都是自己画的,现在也只有这个水平了。。。
已经实现了五子棋的基本功能,如可以轮流下子、判断输赢等。但是还
是有很多缺陷的,但毕竟我还是个初学者,实现多少是多少吧。。。
近期对于界面的话不会做太多改变,现在最大的缺陷是还不能人机对战(这可不是想做就做得好的),这几天和同学一起研究机器人下子的算法可真是想破了头,要考虑的实在太多。。。
希望可以尽快写出可以接受的算法
public class wziUI extends JFrame{
private int[][] chesse = new int[Num.H][Num.L];
public static void main(String[] args){
wziUI W = new wziUI();
W.showUI();
}
public void showUI() {
this.setTitle("简单五子棋");
this.setSize(600, 600);
this.setDefaultCloseOperation(3);
this.setVisible(true);
Graphics g = this.getGraphics();
wziListener lis = new wziListener(g,chesse,this);
this.addMouseListener(lis);
}
public class wziListener implements java.awt.event.MouseListener{
private Graphics g;
private int[][] chesse;
private int count = 0;
private int jud = 0;
private JFrame wzi;
public wziListener(Graphics g,int[][] chesse,JFrame wzi){
this.g = g;
this.chesse = chesse;
this.wzi = wzi;
}
@Override
public void mouseReleased(MouseEvent e) {
int x = e.getX();
int y = e.getY();
for(int i = 0;i<Num.H;i++){
for(int j = 0;j<Num.L;j++){
int x1 = Num.X0+Num.SIZE*j;
int y1 = Num.Y0+Num.SIZE*i;
if(Math.abs(x-x1)<Num.C_SIZE/3&&Math.abs(y-y1)<Num.C_SIZE/3)
{
drawQZ(x1,y1,i,j);judge(chesse,wzi);
return;
}
}
}
}
public void drawQZ(int x1,int y1,int i,int j){
if(count == 0){
chesse[i][j] = Num.BLACK_C;
g.setColor(java.awt.Color.BLACK);
count++;
}else{
chesse[i][j] = Num.WHITE_C;
g.setColor(java.awt.Color.WHITE);
count--;
}
g.fillOval(x1-Num.C_SIZE/2, y1-Num.C_SIZE/2, Num.C_SIZE, Num.C_SIZE);
}
public void judge(int[][] chesse,JFrame wzi){
for(int i= 0;i<Num.H;i++){
for(int j = 0;j<Num.L-4;j++){
if(chesse[i][j]==Num.BLACK_C&&chesse[i][j+1]==Num.BLACK_C&&chesse[i][j+2]==Num.BLACK_C&&chesse[i][j+3]==Num.BLACK_C&&chesse[i][j+4]==Num.BLACK_C){
//wzi.dispose();
JFrame win = new JFrame("结果判定");
win.setSize(150,100);
win.setDefaultCloseOperation(3);
win.setVisible(true);
JLabel la = new JLabel("黑子获胜!");
win.add(la);
win.setLocation(260, 260);
}else if(chesse[i][j]==Num.WHITE_C&&chesse[i][j+1]==Num.WHITE_C&&chesse[i][j+2]==Num.WHITE_C&&chesse[i][j+3]==Num.WHITE_C&&chesse[i][j+4]==Num.WHITE_C){
//wzi.dispose();
JFrame win = new JFrame("结果判定");
win.setSize(150,100);
win.setDefaultCloseOperation(3);
win.setVisible(true);
JLabel la = new JLabel("白子获胜!");
win.add(la);
win.setLocation(260, 260);
}
}
}
- 大小: 124.3 KB
- 大小: 151.5 KB
- 大小: 54 KB
- 大小: 48 KB
- 大小: 58.6 KB
分享到:
相关推荐
【Java五子棋小程序】是一个基于Java编程语言开发的小型游戏应用,主要目的是提供一个娱乐性的五子棋对战平台。这个小程序设计简洁,易于上手,适合初级和中级Java开发者学习和研究。 在Java中,开发这样的五子棋...
在Java编程语言中,开发一个五子棋游戏是一项有趣且具有挑战性的任务,因为它涉及到图形用户界面(GUI)的设计、事件处理以及游戏逻辑的实现。本项目名为"JAVA编写的五子棋代码",旨在提供一个友好的界面,让学生或...
【基于Java的五子棋】项目是一个典型的使用Java技术实现的桌面游戏,它展示了Java在游戏开发中的应用。该项目的核心是实现五子棋的基本规则和交互功能,让两个玩家可以在同一台计算机上进行对战。这里我们将深入探讨...
本项目“一个JAVA图形化的、联网的五子棋游戏”正是基于Java实现的一款交互性强、易于上手的网络对战游戏。下面我们将深入探讨这个项目的实现原理和技术要点。 一、Java图形界面(GUI) Java中的图形用户界面主要...
6. **多线程**:为了保证游戏的流畅性,可能会用到多线程技术,比如一个线程处理用户输入,另一个线程运行AI计算。 7. **对象封装和继承**:在Java中,棋子、棋盘等可以作为类进行封装,通过继承和多态实现不同类型...
Java 五子棋小游戏是一款简单易上手的棋类游戏,它采用了经典五子棋的规则和玩法,并在游戏界面设计中融合了精美的图形与音效。 在游戏中,玩家扮演黑白两色的棋手,通过交替下棋来竞争胜利。胜利的条件是先将五个...
在本项目中,“五子棋项目java开发”是一个适合初学者上手的编程实践,旨在帮助学习者加深对Java编程语言的理解并体验实际项目开发流程。这个小项目将涵盖以下几个核心知识点: 1. **Java基础知识**:首先,你需要...
### Java轻松上手:从初学到精通的关键知识点 #### 一、JDK:Java的核心与起点 ##### 1. JDK的定义与组成 JDK,全称Java Development Kit,是Java开发的基础,包含了Java运行环境(Java Runtime Environment,JRE...
五子棋起源于中国,是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏。双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连珠者获胜。五子棋容易上手,老少皆宜,而且趣味横生...
在本项目中,"五子棋java版"是一个基于Java编程语言实现的五子棋游戏系统,用于数据结构课程设计。这个系统不仅包含了基本的游戏逻辑,还提供了用户友好的图形界面,让玩家能够轻松上手并享受游戏过程。下面将详细...
这个小游戏利用Java编程语言和Android Studio集成开发环境(IDE)来实现,旨在提供一个轻量级、易上手的游戏体验,同时也为开发者提供了学习安卓应用开发的机会。 在Android应用开发中,Java是主要的编程语言之一,...
基于Java的五子棋游戏是一个结合Java编程语言与图形用户界面(GUI)技术的经典棋类游戏项目。该游戏旨在为用户提供一个简单、直观且富有挑战性的五子棋对战平台,让玩家能够享受五子棋带来的乐趣与竞技体验。 在...
3. **多线程**:在五子棋游戏中,可能需要实现异步机制,例如在一个单独的线程中处理玩家的回合,防止UI冻结。 4. **数据结构与算法**:棋盘的状态可以用二维数组或链表等数据结构表示,检查五子连珠的算法是关键,...
本文档详细介绍了一款基于Java的五子棋游戏的设计与实现过程。该游戏不仅具有基本的游戏功能,还提供了诸如悔棋、计时等高级功能,以满足不同玩家的需求。同时,游戏界面美观,操作简单,易于上手。 源代码结构清晰...
这部分内容对于新手来说至关重要,因为一个良好的开发环境是编写和运行Java代码的基础。 然后,教程会深入到"高级UGI设计",UGI即用户图形界面(User Graphic Interface)。这部分可能会涵盖Swing和JavaFX这两个...
五子棋是世界智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏,是世界智力运动会竞技项目之一,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜。 棋具与围棋通用,...
- **目的**: 实现一个基于Applet的五子棋游戏。 ##### 3. 成员变量定义 ```java String str = "五子棋"; Dimension currentPos = new Dimension(); int zuobiao[][] = new int[19][15]; int x = 20, y = 20; ...
我们需要实现一个函数来检查当前棋盘状态,看是否有五个同色棋子连成一线。这涉及到对行、列、两个对角线的遍历检查。为了优化,可以使用动态规划的思想,记录每个位置的最长连续棋子数,减少重复计算。 4. **AI...
java 五子棋游戏.zip,这是一款用Java编写的五子棋游戏。该资源包含了完整的源代码和可执行文件,适合对Java编程和图形...总之,这款Java编写的五子棋游戏是一个非常有价值的学习资源,值得广大编程爱好者尝试和学习。
本毕设旨在设计并实现一款基于JAVA的五子棋手机网络对战游戏。该游戏具有以下特点: - 用户可以通过手机客户端实现与其他用户的网络对战。 - 游戏界面简洁美观,操作简单易上手。 - 游戏引擎使用JAVA语言编写,具有...