day4 part2:实例开发1---控制台五子棋
来源:互联网 发布:吸毒的人有多可怕知乎 编辑:程序博客网 时间:2024/06/05 15:30
实现过程:
一、棋盘类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.0到1.0之间的double数组,再用该值乘以棋盘的大小,即可产生随机坐标。
4.是否重新开始游戏:isReplay()
s1.equals(s2) :判断两个对象的引用是否相等,即是否指向同一个对象。
与==的区别如下:==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同;==是指对内存地址进行比较,equals()是对字符串的内容进行比较;==指引用是否相同,equals()指的是值是否相同。简单讲就是==是看左右是不是一个东西,equals()是看左右是不是相同。
5.游戏过程:start()
获取键盘输入:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
br.readLine() 每当键盘输入一行按下回车键,输入的内容就被br读取。- day4 part2:实例开发1---控制台五子棋
- day3 part2:实例开发1---控制台五子棋
- 控制台五子棋
- java程序--控制台五子棋
- 五子棋控制台显示
- 控制台小游戏之五子棋
- java实现控制台五子棋
- 第一章 控制台五子棋
- 控制台游戏 五子棋
- day5 part2:实例开发2---仿Windows计算器
- Crazy Java Practice 第1章 控制台五子棋
- 简单的控制台五子棋游戏
- 简单的控制台五子棋游戏
- java控制台实现五子棋功能
- 【Little_things】控制台五子棋(java)
- Java五子棋控制台小程序
- 控制台五子棋游戏类记录
- Java控制台五子棋编码学习
- day4 part1:《Thinking in Java》笔记第五章---初始化与清理
- Lighttpd停止和重启的一些命令
- 使用http://paste.ubuntu.com/粘贴代码
- Scala对象的相等性比较
- C++标准转换运算符const_cast
- day4 part2:实例开发1---控制台五子棋
- Yii2.0 ActiveForm用法大全
- C++ 虚函数和纯虚函数的区别
- 经典算法: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数
- VS2015监视变量及栈调用情况
- Codeforces 353D Queue【思维】好题~
- Ubuntu新手-挂载与mount
- Cmake入门实战
- SpringMVC使用Redis集群