zoukankan      html  css  js  c++  java
  • Java Applet实现五子棋游戏

    从谷歌的AlphaGo到腾讯的绝艺,从人脸识别到无人驾驶,从谷歌眼镜到VR的兴起,人工智能领域在不断的向前迈进,也在不断深入的探索。但背后错综复杂的技术和利益成本也是很多企业亟待解决的难题。对于人工智能,我们可能还帮不上什么忙,但我相信以后的人工智能技术会越来越开源,也会提供给我们便捷开发的接口。由围棋大战引发的思考才是我们今天的主题,我们今天是利用Java Applet窗口应用程序来实现五子棋的一个小游戏,最基础的一个版本,主要回顾一下Applet的应用以及Graphics画图技术。

    首先,我们先来看一下运行结果的预览图:

    第一眼看上去是不是觉得很多元素,不太好下手,其实右边的按钮和和其他的文字都是背景图片自带的,只有中间的纵横线和棋子是我们画上去的,而且托朋友@郑宇轩多做了几张图,点击右上角的换肤按钮可以实现换肤效果,游戏设置可以设置游戏时间,下方有分别针对黑方和白方的计时器,哪一方的规定时间一到如果还没落子就算输。顶部有本轮该谁的信息提醒。

    一、需求分析

    要想实现这样一个功能其实也不难,其实就是一张背景图,上面有各种按钮,我们可以通过获取鼠标坐标来设置点击事件,至于棋盘的格子,我们可以采用Graphics画图就是了,包括棋子也是,时间的计算就以落子开始以秒为单位向下递减。5子连一线有多种情况,横连,竖连,左45度斜连,右45度斜连,同样可以根据坐标位置来判断,我们开始就可以定义一个数组,分别记录每一次黑白落子的坐标位置。基本的功能也就这些,我们这里就不考虑国际规定的禁手规则了。

    二、开发

    1.首先定义一个类OperatorPane,这个类用来布置整个布局,包括画棋盘棋子什么的,判断几种连法,时间的设置等。如下图:

    我们需要建一个存放背景图片的文件夹,如下图:

    接下来,我们写个测试类GomokuGrame,导入我们刚刚定义的布局类。

    三、测试

    接下来我们就开始运行程序,如下:

    好玩吗?今天就到这里了,主要是关于Applet窗体应用程序和Graphics画图的一些技术的使用,都是一些基础的东西,主要是先理清这里面的逻辑思维,明白了需求再下手,一切就都变的很清晰,很明朗。

    如果您对本文观点有什么异议,欢迎您的留言,我们一起交流!

  • 相关阅读:
    leetcode 576. Out of Boundary Paths 、688. Knight Probability in Chessboard
    leetcode 129. Sum Root to Leaf Numbers
    leetcode 542. 01 Matrix 、663. Walls and Gates(lintcode) 、773. Sliding Puzzle 、803. Shortest Distance from All Buildings
    leetcode 402. Remove K Digits 、321. Create Maximum Number
    leetcode 139. Word Break 、140. Word Break II
    leetcode 329. Longest Increasing Path in a Matrix
    leetcode 334. Increasing Triplet Subsequence
    leetcode 403. Frog Jump
    android中webView加载H5,JS不能调用问题的解决
    通过nginx中转获取不到IP的问题解决
  • 原文地址:https://www.cnblogs.com/ao-xiang/p/6636003.html
Copyright © 2011-2022 走看看