`

Java自此丰富多彩--五子棋项目总结

    博客分类:
  • Java
阅读更多
历经数天的艰苦奋战,五子棋的项目终于拿下了。
我觉得,这里面的精华是平常我们所不注意的东西。

最开始我是有5个文件来实现的,但是我发现自己不善于整合(至少是现在),
所以:我把一开始的判断输赢类和后来的结果输出类都归纳在了一起,这样我在实现的时候就显得很游刃有余,诚然,我是按照自己的方式做的,分开自己也没问题,只是还有待习惯。

其实这也是我想要总结的第一点:练习。
这个道理简单的浮云了,可是你不去做还是不知道何如,所以说,熟练程度有时候远胜于技巧,至少我是这么理解的。
我在编写人机对战的算法的过程中,三次“易稿”:
从最开始的原始程序,到后来的优化程序1.0,再到最后的版本2.0,
我几乎是一种思想,三种套路,在脑子里勾画并敲击了三遍。
没有现在的熟练,没有现在这样基础程序阶段的熟练,没有现在一步一个脚印的熟练应用,就没有将来的驰骋。

我发现自己纠结类最久的就是那个所谓的“实例化对象”的问题,这个问题之前就有,我以为自己解决类,其实还隐藏在比较深层次的地方我没有发现。
五子棋的编写过程中,这个问题最明显的出现就是我程序运行时无数次的“空指针异常”。
我总结类我在解决“空指针异常”时的几种处理方式:
1:看在使用对象或者类的方法时,有没有实例化对象,有没有赋初值,有没有将用到的方法写规范;
2:通过在方法中或者在主函数中,添加输出行的方法来判断在程序运行中是否有错误,根据输出的值进行修正或者重写
3:根据错误提示的位置,看调用或者被电泳的环节是否正确无误
4:在编写程序的过程中,尽量在算法环节和必要处添加详细一点的注释,使修改和代码的含义更加明了易读
5:最后,就是在编写大的改动时,提前进行备份,
  虽然Ctrl+Z可以为你挽回一些过失,但是当改动变多而你又需要跳出来回到原程序去找寻思路时,这个快捷键恐怕就无能为力了,
    而且,有时候它可能还会引起你不必要的错误:
    比如:忘记恢复某一文件的修改或恢复过多导致修正失效。

五子棋项目其实是分三个阶段的实现的:
1:实现棋盘界面,实现落子的位置相对固定,同时判定输赢
2:实现人人对战,即黑白两种棋子交替出现
3:实现人机对战,即简单的“人工智能”——通过编写棋子周边空位的权值的类来具体实现

第一个阶段我在之前就顺利完成了,从第二个阶段开始就遇到了障碍。
对于人人对战来说,就是棋子交替的出现,就是要存储每个棋子的位置,位子里面所存的值相应的随着落子发生变化,然后就是判定输赢。

在这里则出现了我所要总结的第二点:耐心&专注。
说实话,我有时候是没有什么所谓耐心的,我也没想过我什么时候,多久会完成这个工作,我会在失败了很多次看了无数行红字之后崩溃一段时间,此时耐心值接近零。
从做人机开始我就一直在两个问题上纠结:一是之前的对象问题,在这里不是穿插出现;二是机器的智能落子和权值计算的问题——焦头烂额恐怕是很贴切了。
我会每每做一个下午,然后收获甚微有时甚至是失望而归,把类实例化类放到主函数里面,调用,完善主函数的执行,优化监听器,云里雾里的。
之后的两天我开始玩三国杀了。我每晚都要玩大概两个小时然后才回到程序的正题。在玩的过程中我几乎什么都没想就是一心玩,将我还有大量错误的程序搁置一边,不复思考。在三国杀里酣畅淋漓的胜利之后我归来了,(虽然在新手区哈哈),那是我就很想喊一声Superman returns 里面的那句台词:I’m BACK!!
我觉得热那就是有时候需要一种释放,然后回到自己的自我中来,我一边回忆一边思考,差不多搞了一个大概,又是两天,我终于完成了!
我觉得自己突然间就顿悟了,真的,那种不能说是大彻大悟吧,至少也是那种可以长久影响人的顿悟:
人世间有很多道理,你一直以为他们显而易见,一直以为他们过于简单,但是只有你去做一件事,去投身到一个事业中去,才会知道他们一点都不简单,他们都不只是我们所用的语言中的简单名词,突想起柏拉图的一句话:存在即合理。简单的才最深刻,浅显的往往都是真理,只有由浅入深才是王道,于我现在的状况来说,Java大放异彩的日子,才刚刚开始,Just Go!
0
16
分享到:
评论

相关推荐

    基于java的开发源码-Java网络五子棋的源代码.zip

    基于java的开发源码-Java网络五子棋的源代码.zip 基于java的开发源码-Java网络五子棋的源代码.zip 基于java的开发源码-Java网络五子棋的源代码.zip 基于java的开发源码-Java网络五子棋的源代码.zip 基于java的开发...

    Java课程设计期大作业-联网的五子棋项目源码(高分项目)

    Java课程设计期大作业-联网的五子棋项目源码(高分项目)实现了双人联网对战,配有聊天、复盘等功能。本项目是一套成熟的大作业项目系统,获取98分,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习...

    JAVA小游戏---五子棋

    本项目是一款基于Java编程语言实现的五子棋游戏,具有完整的功能、严格的输入控制和用户友好的操作界面。通过这个项目,我们可以深入了解Java编程在游戏开发中的应用,以及如何利用面向对象编程的思想来构建一个交互...

    java局域网五子棋.rar---java局域网五子棋.rar

    Java局域网五子棋项目是一个基于Java编程语言开发的桌面应用程序,允许用户在局域网内进行多人对战。这个项目的重点在于网络通信和游戏逻辑的实现,它结合了Java的基础特性、图形用户界面(GUI)设计以及网络编程...

    java-spring-93-五子棋游戏.rar

    java-spring-93-五子棋游戏.rar

    项目源码-java网络五子棋游戏

    【项目源码】-java网络五子棋游戏 package com.lzw.gobang; import java.awt.AlphaComposite; import java.awt.Composite; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt....

    java实训项目---五子棋---JFrame

    【Java实训项目——五子棋——JFrame】是一个基于Java编程语言实现的桌面应用程序,用于进行五子棋游戏。这个项目旨在帮助学习者巩固和应用Java GUI编程的基础知识,特别是JFrame组件的使用。JFrame是Java Swing库中...

    经典java小程序源代码合集-java编的五子棋.rar

    java编的五子棋经典java小程序源代码合集-java编的五子棋经典java小程序源代码合集-java编的五子棋经典java小程序源代码合集-java编的五子棋经典java小程序源代码合集-java编的五子棋经典java小程序源代码合集-...

    java项目实训---五子棋---JFrame

    这个文件传错了~~~~我没有找到删除的地方,所以,大家可以去找我另外上传的一个文件,

    《JAVA课程设计》--Java课程设计---五子棋小游戏.zip

    本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做...

    Java课程设计---五子棋小游戏.zip

    在本Java课程设计中,学生将接触到一个名为“五子棋小游戏”的项目。这个项目旨在帮助初学者深入理解和实践Java编程语言,特别是涉及到图形用户界面(GUI)开发、事件处理和算法实现等核心概念。五子棋是一款双人...

    C语言程序设计---五子棋

    C语言程序设计---五子棋 C语言程序设计---五子棋 C语言程序设计---五子棋

    Java小游戏-swing-五子棋

    五子棋

    Java课程设计--Javaswing五子棋带GUI界面(文档+源码).zip

    总的来说,这个Java Swing五子棋项目是一个综合性的编程练习,涵盖了GUI设计、事件处理、数据结构、游戏逻辑等多个方面,对于提升Java编程技能和理解面向对象设计有显著的帮助。通过研究源码并实现自己的功能扩展,...

    基于Java的实例开发源码-Java网络五子棋的源代码.zip

    在本项目中,"基于Java的实例开发源码-Java网络五子棋的源代码.zip" 是一个包含Java实现的网络五子棋游戏的源代码包。这个项目旨在教授和展示如何利用Java进行网络编程,实现多人在线对战的游戏功能。下面我们将详细...

    基于Java的实例源码-Java网络五子棋的源代码.zip

    在本压缩包中,我们拥有一个基于Java实现的网络五子棋游戏的源代码实例。这个项目展示了如何利用Java编程语言构建一个简单的网络应用程序,使玩家可以在互联网上进行实时对战。下面将详细探讨其中涉及的关键知识点。...

    Java 初学小项目2 --五子棋.zip

    在本项目"Java 初学小项目2 --五子棋.zip"中,我们将探索如何使用Java编程语言开发一个五子棋游戏。这是一个非常适合初学者的实践项目,它可以帮助你巩固基础,理解面向对象编程概念,并熟悉Java GUI(图形用户界面...

    vc--------------五子棋

    在"vc--------------五子棋"项目中,"vc"可能指的是Visual C++,这是微软提供的一个集成开发环境(IDE),专门用于编写C++代码。Visual C++包含了编译器、调试器和其他工具,使得开发者能够方便地创建Windows应用...

    java程序设计-五子棋

    在本项目中,“Java程序设计-五子棋”是一个基于Java编程语言开发的桌面应用程序,旨在实现一个五子棋游戏。五子棋是一种双人对弈的策略棋类游戏,玩家轮流在棋盘上下黑白两色的棋子,目标是先连成五子直线(横、竖...

    五子棋程序-java-控制台

    用java写的五子棋游戏,无界面,控制台显示。

Global site tag (gtag.js) - Google Analytics