`
人生难得糊涂
  • 浏览: 117411 次
社区版块
存档分类
最新评论

五子棋开发,初步实现界面和落棋子

 
阅读更多

正在学习五子棋的开发,现在是第一步,一切都还是渣渣,给新手看看。

简陋的界面。。



 代码没什么难度,唯一需要注意的地方就是判断鼠标点击屏幕,需要在哪里出现棋子。

 

package data0609_五子棋;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class PMouseAda  extends  MouseAdapter  implements Config1{
	Graphics g;
	public PMouseAda(Graphics g)
	{
				this.g=g;
	}
	public void mouseReleased(MouseEvent e)
	 {
		 int x=e.getX();
		 int y=e.getY();
		 int click=e.getButton();
//以下代码为判断在哪里画棋子
		 	int flag=1;
		 	double tx=((double)x-x0)/size;
		 	double ty=((double)y-y0)/size;
		 	int tx1=(int)tx;
		 	int ty1=(int)ty;
		 	if(tx-tx1>2.0/3)
		 		tx1++;
		 	if(ty-ty1>2.0/3)
		 		ty1++;
		 	if(tx-(int)tx>1.0/3&&tx-(int)tx<2.0/3)
	 				flag=0;
		 	if(ty-(int)ty>1.0/3&&ty-(int)ty<2.0/3)
		 			flag=0;
		 int xc=tx1*size+x0;
		 int yc=ty1*size+y0;
		 if(flag==1)
		 {
			 if(click==1)
				 g.setColor(Color.BLACK);
			 if(click==3)
				 g.setColor(Color.WHITE);
			g.fillOval(xc-chessSize/2, yc-chessSize/2, chessSize, chessSize);
		 }
	 }
}

 

package data0609_五子棋;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

import data0609_五子棋.test.WZQListener;
/**
 * 五子棋界面
 * @author ZhangZunC
 *
 */
public class MainFrame extends JFrame {
	public MainFrame()
	{
		
		MyPanel panel=new MyPanel();
		this.add(panel);//JFrame默认是BorderLayout 布局 
		this.setSize(600,600);
		this.setTitle("五子棋");
		this.setDefaultCloseOperation(3);
		this.setResizable(false);
		this.setVisible(true);//为什么一定要放在这里
		Graphics g=panel.getGraphics();
		PMouseAda listener=new PMouseAda(g);
		panel.addMouseListener(listener);
	}
	public static void main(String[] args) {
		new MainFrame();
	}
}

 

package data0609_五子棋;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

import data0609_五子棋.test.Config;

public class MyPanel  extends JPanel implements Config1{
	Graphics g;

	/**
	 * 重写绘制组件的方法  这个方法在组件需要绘制的时候会自动调用
	 * @param g
	 */
	public  void paint(Graphics g) {
		super.paint(g);
		for(int i=0;i<row;i++)
		{
			g.drawLine(x0+i*size, y0, x0+i*size, y0+size*14);
		}
		for(int i=0;i<col;i++)
		{
			g.drawLine(x0,y0+i*size,x0+size*14,y0+i*size);
		}
	}
	
}

 

 

  • 大小: 49.1 KB
2
0
分享到:
评论
4 楼 devilyard 2014-06-16  
人生难得糊涂 写道
devilyard 写道
devilyard 写道
大学时曾经做过一个3D版的

有初级人工智能,可人机对下

还要源代码吗  可以给参考下吗


源码没有了,Java3D这玩意从那时接触起之后几年一直没有流行开来,之后也就没有再去研究了
3 楼 人生难得糊涂 2014-06-11  
devilyard 写道
devilyard 写道
大学时曾经做过一个3D版的

有初级人工智能,可人机对下

还要源代码吗  可以给参考下吗
2 楼 devilyard 2014-06-11  
devilyard 写道
大学时曾经做过一个3D版的

有初级人工智能,可人机对下
1 楼 devilyard 2014-06-11  
大学时曾经做过一个3D版的

相关推荐

    基于C#开发(图形界面)五子棋游戏【100010615】

    游戏界面的具体实现,即有绝对坐标与相对坐标、又有界面的颜色与大小和各部分所处的位置。 在鼠标在棋盘上经过的时候,可以看出光标在那里; 正常落棋子,不会覆盖已有棋子。 记录游戏中棋子的落子过程,并且允许...

    Qt - 实现五子棋 - 适合小白

    通过五子棋小项目训练,巩固了C++基础知识,对OOP编程的思维进一步提升,此外对Qt框架有了初步认识,同时对其2D绘画有一定程度上的掌握,并对UI界面的开发形成了初步的认知,能自我处理开发中一些比较简单的常见问题...

    Java五子棋游戏开发,和大家一起分享

    1. **图形用户界面(GUI)**: 初步实现的五子棋游戏首先需要一个用户友好的界面,这通常通过Java的Swing或JavaFX库来创建。这两个库提供了丰富的组件和布局管理器,用于构建窗口、按钮、文本框等元素,让玩家能够直观...

    python实现五子棋游戏程序

    通过这个项目,学生不仅可以学习到Python基础语法,还能掌握GUI编程、算法设计和调试技巧,同时对游戏开发有初步认识。这个五子棋游戏程序是Python编程实践的很好示例,对于提升编程能力非常有帮助。

    五子棋(含java源码)

    `ChessGameView`类作为View,负责绘制棋盘并在棋子落定时更新界面;`ChessGameManager`作为Controller,监听用户的点击事件,调用Model的接口更新棋局,并通知View进行界面更新。 在压缩包文件中,我们看到两个文件...

    五子棋(自己做的VC五子棋源码)

    总结起来,"五子棋(自己做的VC五子棋源码)"是一个结合了C++编程、MFC库应用和游戏逻辑实现的项目,对于想要学习Windows GUI编程和游戏开发的初学者来说,是一个宝贵的实践案例。通过分析和学习这个源码,不仅可以...

    c++五子棋人机对战

    【C++五子棋人机对战】是一个利用C++编程语言实现的计算机程序,它集成了游戏逻辑、用户界面和人工智能算法,让玩家可以与电脑进行对弈。在这个项目中,开发者使用了Windows API来构建图形用户界面,提供直观的游戏...

    五子棋(C语言)_C语言_五子棋_

    为了编译和运行程序,文件5.c是源代码文件,包含五子棋游戏的主要实现。而5.dsp、5.dsw、5.ncb、5.opt、5.plg是Visual Studio项目文件,用于在Microsoft Visual Studio环境中管理和构建项目。Debug目录则可能包含了...

    Yixin-Board-master.zip_Yixin2017_May.exe_yixin 五子棋_yixinboard_弈心

    Board-master.zip_Yixin2017_May.exe_yixin 五子棋_yixinboard_弈心"揭示了这个压缩包的内容,它包括了"Yixin2017_May.exe"这个2017年5月版的弈心程序,以及与"yixinboard"相关的文件,可能是一个五子棋的用户界面或...

    C语言五子棋 课程设计

    《C语言实现五子棋游戏:人工智能与课程设计解析》 在计算机科学的学习...通过完成这样的设计,学生不仅能够巩固编程技能,还能了解并应用到游戏开发和人工智能领域的知识,为未来的学习和职业发展打下坚实的基础。

    flash五子棋游戏源码

    这款游戏源码包含了实现五子棋游戏的核心算法和界面展示,对于学习Flash编程和游戏开发的初学者来说,是一个非常有价值的参考资源。 【描述】中提到了两个关键文件:`flash五子棋.flv`和`flash五子棋.swf`。`.flv`...

    五子棋(C#)

    通过这个五子棋项目,你可以掌握C#编程的基本技能,并对游戏开发有初步了解。不断实践和学习,你将能够创建更复杂的游戏,并对C#和游戏编程有更深的理解。在实际操作中,记得查看提供的五子棋源代码,分析并理解每一...

    五子棋开题报告

    - **研究方向**:本研究主要聚焦于单机版五子棋游戏的设计与实现,旨在开发出一款操作简单、界面友好、具有较高智能度的五子棋游戏软件。 - **研究内容**:具体包括但不限于游戏规则的制定、用户界面的设计、智能...

    五子棋 c# vs2010

    我们需要使用这个框架来设计五子棋的用户界面,包括棋盘的绘制、棋子的放置以及交互事件的处理。 3. **图形用户界面(GUI)设计**:理解如何使用控件(如PictureBox、Button等)布局界面,以及如何响应用户的点击...

    C++五子棋VC6

    在五子棋游戏中,可能有棋盘类、棋子类、玩家类等,每个类都有其特定的职责和行为。 在AI设计上,由于此项目没有实现禁手功能,这意味着游戏可能无法达到专业比赛的标准。禁手规则是五子棋中防止一方过于优势的策略...

    五子棋-VC源码

    本篇将深入探讨一款基于VC(Visual C++)编写的五子棋游戏源码,该程序不仅实现了基本的游戏功能,还具备记忆功能,以及对多语言的支持,展现了编程在游戏开发中的巧妙应用。 首先,我们要理解的是,这款游戏的核心...

    五子棋源码带人工智能(VB.NET源码)

    在五子棋源码中,开发者利用GDI+绘制棋盘和棋子,实现了棋盘的动态显示和交互功能。GDI+提供了丰富的绘图方法,如DrawLine、FillRectangle等,可以用来绘制棋盘的格线,以及各种形状的棋子。 源码中的关键部分通常...

    五子棋游戏源代码VC6编写

    通过分析和学习这个五子棋源代码,初学者可以掌握C++编程基础,了解MFC框架,理解事件驱动编程,以及初步接触游戏逻辑和AI设计。这是一个很好的实践项目,能够帮助初学者将理论知识应用到实际编程中,提高编程能力和...

    五子棋c语言,五子棋c语言最简单代码,C,C++

    2. **用户界面**:在C语言中,可以通过标准输入输出(stdin和stdout)来实现简单的命令行界面。用户通过键盘输入行和列号,程序根据输入更新棋盘状态并显示。 3. **游戏逻辑**:游戏逻辑包括检查每一步是否合法(如...

    易语言三人五子棋客户端-黄棋源码,易语言三人五子棋服务端源码,

    在易语言实现的三人五子棋系统中,客户端和服务器端的源码是关键部分。 客户端是用户与游戏交互的界面,主要负责显示棋盘、接收用户输入并发送到服务器,以及接收服务器返回的信息更新棋盘状态。在“易语言三人...

Global site tag (gtag.js) - Google Analytics