疯狂java实战_疯狂java实战演义.pdf

第1 章 控制台五子棋

第1章 控制台五子棋

1.1 引言

控制台五子棋,顾名思义,就是在 Java 控制台运行的五子棋游戏,需要用户用键盘输入棋子的位

置来进行游戏。

由于是在控制台下面运行的程序,所以并没有漂亮的游戏界面,与及鼠标操作等东西,只是在一片

黑色控制台环境下进行游戏,游戏的可玩性并不高,似乎这并不是一个完整的游戏。虽然如此,但事实

上,一个程序最重要的并不是界面,而是处理各种业务逻辑与数据的方法,只要掌握了核心的方法,掌

握基础的知识,便更容易学习awt,swing 等图形用户界面的编写,万变不离其宗,写起有操作界面的程

序也会变得更加容易,更加随心应手。而本章的主要目的让读者掌握与理解 Java 编程的基础知识,因

此,掌握本章五子棋的实现原理,对于学习以后的章节将会非常有帮助。作为本书的第一章内容,我们

在本章中将使用最简单的方式来实现一个控制台五子棋游戏。

1.1.1 五子棋介绍

五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠” ,英译为”Renju”,

英文称之为”Gobang”或”FIR” (Five in a Row 的缩写 ) ,亦有“连五子”、“五子连” 、“串珠”、“五

目”、 “五目碰”、“五格”等多种称谓。五子棋游戏是一个比较大众的棋类游戏,大多数人都会玩这个

游戏,五子棋的玩法与规则如下:

 五子棋是两个人之间进行的竞技活动,由于对黑方白方规则不同,黑棋必须先行(本章节设计

的游戏,黑棋与白棋的规则一样,但一样由黑棋先下)。

 五子棋专用盘为 15×15 ,五连子的方向为横、竖、斜。

 在棋盘上以对局双方均不可能形成五连为和棋。

 首先形成五连子的一方为赢。

五子棋必须由双方进行游戏,当某一方按照一定规则连成五个棋子的时候,该游戏方就胜利,在本

章中,我们并不需要做到对战形式的,我们可以设计一个简单的“电脑”来做我们的对手,当我们下完

棋后,这个简单的“电脑”就随便在棋盘中下一个棋,当然,如果想做更强大的“电脑”我们可以编写

程序来实现,当我们下棋的时候,这个“电脑”就对我们所下的棋子进行检测,并将棋子下到最恰当的

位置。本章主要目的是展现五子棋的实现原理,如果读者有兴趣,可以自行开发强大的“人工智能电脑”

来进行游戏。

1.1.2 输入输出约定

玩家必须以(x,y )的方式输入棋盘的坐标,其中,x 代表棋坐标,y 代表竖坐标。x 与y 的值必须

是1 到N (棋盘的大小)的正数。

系统询问玩家是否继续游戏时,玩家输入y 是代表继续,输入其它则代表退出游戏。

“●”代表黑子,“○”代表白子。当玩家以(x,y )的形式输入下棋的坐标后,游戏中就可以根据

玩家所下的坐标,再去将棋子放置到棋盘中。我们可以将棋盘看作一个二维数组,填充着棋盘式的标志

(“十”),玩家下棋后,将棋子替换原来的标志,最后再执行输入。由于本章是在控制台中进行打印,

因此只需要使用 System.out.println 来进行打印即可,如果需要实现有界面的五子棋游戏,例如使用

·2 · 第1 章 控制台五子棋

swing 或者 awt,可以使用相应的方法,将二维数组“画”到界面中。因此,不管是使用 swing、awt

或者其他界面技术,五子棋的实现原理几乎大同小异。

1.2 了解游戏流程描述

在开发五子棋之前,我们先了解一下游戏的整个游戏流程,了解游戏的流程,有助于我们在开发的

过程中可以清晰的掌握程序结构,对于实现功能有莫大的帮助,五子棋的具体流程如图1.1 所示。

图 1.1 五子棋游戏流程

1.2.1 玩家输入坐标

游戏开始,系统在控制台中打印出棋盘,玩家根据这个棋盘,选定下棋的位置坐标后,在控制台中

输入相应的坐标,系统读取玩家所输入的坐标并进行相应的分析,如果玩家所下的棋使得玩家游戏胜利,

则系统询问是否继续游戏。

系统读取了玩家输入的坐标后,除了判断游戏是否胜利外,还需要判断玩家输入的坐标中是否已经

存在了相应的棋子,如果存在的话,需要再次提示玩家,重新输入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值