day4 part2:实例开发1---控制台五子棋

实现过程:

一、棋盘类Chessboard

1.初始化棋盘时,给每个元素赋值“十”,下棋时把“十”替换成棋子即可。

2.输出棋盘时,System.out.print()是只输出不换行的,System.out.println()是输出后自动换行的,所以应使用前者,使用循环嵌套语句,输出完一行后使用System.out.print(“\n”)来换行一次。

3.获取棋盘,定义数组时只需要在类型名后加[ ]即可。

二、枚举类Chessman

构造器必须是私有的,以保证只能在内部创建,保证此对象只有黑子和白子两种类型。

还可以建立棋子接口,是程序具有更好的扩展性,

三、游戏类

先构造一个空参构造器和一个参数为Chessboard的构造器。

1.验证输入合法性:isValid()

输入格式是否正确,是否超出棋盘范围,此位置是否已经有棋子。

注:1.split的功能是将一个字符串分割为子字符串,然后将结果作为字符串数组返回。可用任何符号作为分隔符,有些需要转义,如:split("\\*"),也可用多个分隔符,用|隔开,如:split("\\@|*|#")

2. Integer.parseInt()的功能是把String型转化为int型。不能装换时则抛NumberFormatException异常。

2.判断输赢:isWon()

每下一颗棋子就从左到右,从上到下,从左上到右下遍历棋盘是否有连成五子。循环嵌套问题。是整个程序的难点之一。

3.计算机随机下棋:computerDo()

使用Math.random方法产生0.01.0之间的double数组,再用该值乘以棋盘的大小,即可产生随机坐标。

4.是否重新开始游戏:isReplay()

s1.equals(s2) :判断两个对象的引用是否相等,即是否指向同一个对象。

==的区别如下:==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同;==是指对内存地址进行比较,equals()是对字符串的内容进行比较;==指引用是否相同,equals()指的是值是否相同。简单讲就是==是看左右是不是一个东西,equals()是看左右是不是相同。

5.游戏过程:start()

获取键盘输入:

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

br.readLine() 每当键盘输入一行按下回车键,输入的内容就被 br 读取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值