`
fenglei
  • 浏览: 72489 次
社区版块
存档分类
最新评论

五子棋总结

    博客分类:
  • java
ui 
阅读更多
五子棋V1
利用void java.awt.Graphics.drawLine(int x1, int y1, int x2, int y2)函数画棋盘
Draws a line, using the current color, between the points (x1, y1) and (x2, y2) in this graphics context's coordinate system.

利用void java.awt.Graphics.fillOval(int x, int y, int width, int height)函数画棋子
Fills an oval bounded by the specified rectangle with the current color.
其中(x,y)是圆的正接矩形左上点。

缺陷:画棋子时会造成闪屏等现象。

五子棋V2
利用图片作为棋子和棋盘。
BufferedImage image = null;
		try {
			image = ImageIO.read(new File("E:/ve_eclipse/workspace/fivechess/src/image/chesstable1.jpg"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		g.drawImage(image, 0, 50, this);




界面最小化后再开启会变成新界面:重绘
利用chesses[][]存储的落子情况重绘

悔棋功能:
新建类Node 存储每个落子点的坐标和棋子颜色
List<Node> nodeList = new ArrayList<Node>(); 存储落子顺序
悔棋时Node java.util.List.remove(int index)函数
Removes the element at the specified position in this list (optional operation). Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the list

复盘功能:按照落子顺序重新下一遍。
关键是重绘和暂停。
重绘按钮的事件监听器:
jBut4.addActionListener(new ActionListener(){

			/* (non-Javadoc)
			 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
			 */
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				clearchesses();
				blnstate = false;
				javax.swing.SwingUtilities.updateComponentTreeUI(fcUI);
				

			}
			
		});



重绘和暂停:
if(!blnstate){
			noderepaint(g);//根据nodelist重绘
		}
		myrepaint(g);//根据chesses[][]重绘




//根据落子顺序nodelist重绘
	private void noderepaint(Graphics g){
		for(int i = 0; i< nodeList.size(); i++){
			Node node = nodeList.get(i);
			chesses[node.getX()][node.getY()] = node.getColor();
			myrepaint(g);
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}





重新开始功能:清空chesses[][] 和nodelist

界面刷新:void javax.swing.SwingUtilities.updateComponentTreeUI(Component c)
A simple minded look and feel change: ask each node in the tree to updateUI() -- that is, to initialize its UI property with the current look and feel.

五子棋V3
五子棋智能算法:
思路一:搜索对手落子点周围3*8个点中空格的情况。(经观察各个威胁到己方的棋局,在落子点三个棋子之内的概率最大)计算每个空格周围3*8个方向上各个方向上的棋子情况。选择分值最高的落子。。。。。属于防守型。。。。。不能判断己方形势。
思路二:每个棋子的落下,都会对整个局势产生影响,这种影响在该子周围4*8个之内,并且距离落子点越近,影响越大。连子具有指数型叠加效应,其中,+*+*+具有连子的相同叠加效应。都失败了得说。。。。。

希望能够提示对手最新落子点。。。。还没去写
另外按钮的显示总是迟延。。。。
1
0
分享到:
评论

相关推荐

    五子棋社团工作计划总结总结.doc

    【五子棋社团工作计划与总结】文档主要涵盖了五子棋社团的工作计划和活动总结,旨在通过五子棋这项活动来提升学生的综合素质,包括智力、情操和团队合作能力等。 1. **指导思想**: 五子棋作为一门校本课程,旨在...

    【毕业设计】MATLAB实战应用案例小游戏(附MATLAB代码):围五子棋.zip

    《MATLAB实战应用案例:围五子棋游戏》 MATLAB,全称为“Matrix Laboratory”,是一种功能强大的数学计算软件,广泛应用于科学计算、数据分析、算法开发以及图形化界面设计等领域。在毕业设计中,MATLAB常常被学生...

    java_五子棋 实习报告

    【Java五子棋实习报告】主要探讨了使用Java编程语言设计和实现五子棋游戏的过程,包括人机对战和玩家间的联网对战功能。在报告中,作者详细阐述了五子棋游戏的背景和历史,以及选择Java作为开发语言的原因。Java因其...

    matlab-wuziqi.rar_matlab五子棋gui_五子棋_五子棋matlab_五子棋matlan_五子棋算法

    总结来说,这个项目提供了一个用MATLAB实现的五子棋游戏,其中的核心是五子棋的算法,包括棋盘状态的管理、合法落子的判断以及胜负的自动检测。通过GUI,用户可以直观地进行游戏,体验到与计算机或其他玩家的对弈。...

    Java五子棋设计报告.doc

    【Java五子棋游戏设计与实现】 五子棋游戏,源于中国古代,历史悠久,深受各年龄段玩家喜爱。在当今计算机普及的时代,将这种经典棋类游戏搬到电脑屏幕上,既能满足人们的娱乐需求,又能锻炼思维能力。本项目是晓庄...

    网络五子棋设计报告

    五子棋与其他三大棋类(围棋、中国象棋、国际象棋)的主要区别在于它没有“吃子”的概念,而是强调通过连续放置己方棋子以形成特定的排列来获胜,这种机制使得五子棋更加侧重于发展与限制的策略思想。 #### 算法...

    C语言五子棋实验报告.docx

    总结来说,这份实验报告详细阐述了一个C语言实现的五子棋游戏,涉及了图形界面开发、人机对战的AI算法实现,以及游戏设计的基本流程。通过这样的课程设计,学生不仅能深入理解C语言,还能接触到游戏编程领域的前沿...

    基于L inux的嵌入式五子棋游戏_ 6818开 发板五子棋,基于linux

    在本项目中,我们关注的是一个基于Linux的嵌入式五子棋游戏,它特别针对6818开发板设计。这个项目的核心是利用Linux操作系统的能力,在嵌入式硬件平台上实现一个可玩的五子棋游戏,允许玩家与计算机进行对弈。下面将...

    五子棋实训报告(c语言)

    本文档是关于大学本科课程实训的一个项目,是用c语言写的一个关于五子棋的实训报告,并且可视化

    MFC 五子棋 一个简单的五子棋游戏

    总结来说,这个基于MFC的五子棋游戏集成了基础的数据结构设计、高效的计算机对弈算法以及严谨的胜负判断机制,为玩家提供了一个良好的对战环境。通过深入理解这些核心内容,我们可以进一步改进游戏,例如引入更智能...

    模拟连五子棋游戏,五子棋经典算法

    总结,模拟五子棋游戏的开发涵盖了数据结构(如二维数组)、基础算法(如合法落子判断、Minimax和Alpha-Beta剪枝)、高级算法(如神经网络强化学习)以及用户界面设计等多个方面。通过这样的项目实践,开发者不仅能...

    五子棋grid布局五子棋

    总结来说,"五子棋grid布局五子棋"是一个结合HTML5、CSS和JavaScript技术的项目,通过HTML构建页面结构,CSS Grid实现棋盘布局,JavaScript处理游戏逻辑和用户交互。这种技术栈的运用展示了现代Web开发中静态页面的...

    python课程设计完整 五子棋

    在本项目中,"python课程设计完整 五子棋"是一个使用Python编程语言实现的五子棋游戏。这个课程设计旨在帮助学生掌握Python的基础知识,理解面向对象编程的概念,并通过实际项目来提升编程技巧和问题解决能力。以下...

    C#五子棋游戏示例

    总结来说,《C#五子棋游戏示例》展示了C#在游戏开发中的应用,涵盖了数据结构、算法、图形界面设计、用户交互和资源管理等多个重要领域。通过学习和分析这个项目,开发者可以加深对C#编程的理解,并提升在游戏开发...

    五子棋(网页版)

    总结,这个五子棋网页版项目不仅展示了JavaScript在游戏开发中的应用,也体现了开发者在HTML、CSS、逻辑设计以及性能优化方面的技能。通过学习这样的项目,我们可以深入了解网页游戏的开发流程,并掌握相关技术。

    vb五子棋_VB五子棋_源码

    总结来说,VB五子棋项目是一个很好的学习实践,它涵盖了基础的GUI编程、事件处理、数据结构、算法设计以及简单的游戏逻辑。对于初学者而言,这个项目可以帮助理解VB编程的基本概念,同时也能锻炼到问题解决和算法...

    Java五子棋设计报告.pdf

    从提供的文件内容来看,这是一个关于Java五子棋游戏设计的报告,内容中涉及了游戏的多个关键技术和实现细节。由于文档内容不完整且存在一些扫描错误,以下知识点将基于文档中可辨识的信息进行整理。 1. MVC设计模式...

    基于JAVA的升级版五子棋项目总结(PPT版)

    【标题】基于JAVA的升级版五子棋项目总结(PPT版) 在Java编程领域,五子棋项目是一个常见的教学实例,它可以帮助开发者巩固基础知识,理解面向对象编程、图形用户界面设计以及游戏逻辑的实现。这个升级版的五子棋...

    基于FPGA的五子棋算法

    **总结** 此项目提升了团队合作、FPGA 工程设计和时间管理的能力。在实践中,通过查阅资料、合作和请教老师,加深了对 Verilog 语言的理解,熟练掌握了工程软件的使用。实践证明,理论知识只有在实际应用中才能真正...

    五子棋AI python实现

    使用python写的基于两层博弈树的五子棋AI。加入了阿尔法贝塔剪枝。 python版本:3+,应该可以在命令行里直接跑。 电脑执黑,玩家执白。无禁手。 因为只有两层博弈树,请大家不要嫌他菜哈哈哈,仅供大家学习参考。 ...

Global site tag (gtag.js) - Google Analytics