`
deckarlc
  • 浏览: 2970 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Java初上手,实现一个小小的五子棋

阅读更多

最近开始学习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
1
2
分享到:
评论

相关推荐

    Java五子棋小程序

    【Java五子棋小程序】是一个基于Java编程语言开发的小型游戏应用,主要目的是提供一个娱乐性的五子棋对战平台。这个小程序设计简洁,易于上手,适合初级和中级Java开发者学习和研究。 在Java中,开发这样的五子棋...

    JAVA编写的五子棋代码

    在Java编程语言中,开发一个五子棋游戏是一项有趣且具有挑战性的任务,因为它涉及到图形用户界面(GUI)的设计、事件处理以及游戏逻辑的实现。本项目名为"JAVA编写的五子棋代码",旨在提供一个友好的界面,让学生或...

    基于Java的五子棋

    【基于Java的五子棋】项目是一个典型的使用Java技术实现的桌面游戏,它展示了Java在游戏开发中的应用。该项目的核心是实现五子棋的基本规则和交互功能,让两个玩家可以在同一台计算机上进行对战。这里我们将深入探讨...

    一个JAVA图形化的、联网的五子棋游戏.zip

    本项目“一个JAVA图形化的、联网的五子棋游戏”正是基于Java实现的一款交互性强、易于上手的网络对战游戏。下面我们将深入探讨这个项目的实现原理和技术要点。 一、Java图形界面(GUI) Java中的图形用户界面主要...

    达内java做的五子棋

    6. **多线程**:为了保证游戏的流畅性,可能会用到多线程技术,比如一个线程处理用户输入,另一个线程运行AI计算。 7. **对象封装和继承**:在Java中,棋子、棋盘等可以作为类进行封装,通过继承和多态实现不同类型...

    Java小项目,Java五子棋,实现人机对战

    Java 五子棋小游戏是一款简单易上手的棋类游戏,它采用了经典五子棋的规则和玩法,并在游戏界面设计中融合了精美的图形与音效。 在游戏中,玩家扮演黑白两色的棋手,通过交替下棋来竞争胜利。胜利的条件是先将五个...

    五子棋项目java开发

    在本项目中,“五子棋项目java开发”是一个适合初学者上手的编程实践,旨在帮助学习者加深对Java编程语言的理解并体验实际项目开发流程。这个小项目将涵盖以下几个核心知识点: 1. **Java基础知识**:首先,你需要...

    Java轻松上手

    ### Java轻松上手:从初学到精通的关键知识点 #### 一、JDK:Java的核心与起点 ##### 1. JDK的定义与组成 JDK,全称Java Development Kit,是Java开发的基础,包含了Java运行环境(Java Runtime Environment,JRE...

    Java实现五子棋小游戏(源代码)

    五子棋起源于中国,是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏。双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连珠者获胜。五子棋容易上手,老少皆宜,而且趣味横生...

    五子棋java版

    在本项目中,"五子棋java版"是一个基于Java编程语言实现的五子棋游戏系统,用于数据结构课程设计。这个系统不仅包含了基本的游戏逻辑,还提供了用户友好的图形界面,让玩家能够轻松上手并享受游戏过程。下面将详细...

    基于java语言,android studio平台的五子棋小游戏

    这个小游戏利用Java编程语言和Android Studio集成开发环境(IDE)来实现,旨在提供一个轻量级、易上手的游戏体验,同时也为开发者提供了学习安卓应用开发的机会。 在Android应用开发中,Java是主要的编程语言之一,...

    基于Java的五子棋游戏的设计与实现

    基于Java的五子棋游戏是一个结合Java编程语言与图形用户界面(GUI)技术的经典棋类游戏项目。该游戏旨在为用户提供一个简单、直观且富有挑战性的五子棋对战平台,让玩家能够享受五子棋带来的乐趣与竞技体验。 在...

    JAVA版五子棋(含源文件和JAR运行程序)

    3. **多线程**:在五子棋游戏中,可能需要实现异步机制,例如在一个单独的线程中处理玩家的回合,防止UI冻结。 4. **数据结构与算法**:棋盘的状态可以用二维数组或链表等数据结构表示,检查五子连珠的算法是关键,...

    Java毕业设计-基于Java的五子棋游戏的设计(源代码+论文).rar

    本文档详细介绍了一款基于Java的五子棋游戏的设计与实现过程。该游戏不仅具有基本的游戏功能,还提供了诸如悔棋、计时等高级功能,以满足不同玩家的需求。同时,游戏界面美观,操作简单,易于上手。 源代码结构清晰...

    java轻松上手PDF文件,从JAVA简介、程序设计环境的建立,到高级UGI设计

    这部分内容对于新手来说至关重要,因为一个良好的开发环境是编写和运行Java代码的基础。 然后,教程会深入到"高级UGI设计",UGI即用户图形界面(User Graphic Interface)。这部分可能会涵盖Swing和JavaFX这两个...

    五子棋(人人对战) Java版

    五子棋是世界智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏,是世界智力运动会竞技项目之一,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜。 棋具与围棋通用,...

    Java 的五子棋代码

    - **目的**: 实现一个基于Applet的五子棋游戏。 ##### 3. 成员变量定义 ```java String str = "五子棋"; Dimension currentPos = new Dimension(); int zuobiao[][] = new int[19][15]; int x = 20, y = 20; ...

    wuziqi_1.7z_五子棋 java

    我们需要实现一个函数来检查当前棋盘状态,看是否有五个同色棋子连成一线。这涉及到对行、列、两个对角线的遍历检查。为了优化,可以使用动态规划的思想,记录每个位置的最长连续棋子数,减少重复计算。 4. **AI...

    java 五子棋游戏.zip

    java 五子棋游戏.zip,这是一款用Java编写的五子棋游戏。该资源包含了完整的源代码和可执行文件,适合对Java编程和图形...总之,这款Java编写的五子棋游戏是一个非常有价值的学习资源,值得广大编程爱好者尝试和学习。

    基于JAVA五子棋手机网络对战游戏的设计与实现的毕业设计, 用户可以通过手机客户端实现与其他用户的网络对战

    本毕设旨在设计并实现一款基于JAVA的五子棋手机网络对战游戏。该游戏具有以下特点: - 用户可以通过手机客户端实现与其他用户的网络对战。 - 游戏界面简洁美观,操作简单易上手。 - 游戏引擎使用JAVA语言编写,具有...

Global site tag (gtag.js) - Google Analytics