由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - chess game的OOD
相关主题
leetcode valid numberLeetcode Timeout
实现一个 thread-safe blocking queue这题怎么写啊?L家的常考facebook的面试题
Interleave Strings那个题目有O(n)时间 O(1)空间算法么?问个java List的问题
问2道面试题发个Twitter的面试题
这段代码啥意思?看了半天没看懂。郁闷中~~~~~~~~~~interleave string 的题目
java没有指针真麻烦关于 unique paths,总是过不了 OJ, 请牛牛们帮忙看看~~~先谢过。。。
贡献今天facebook电面 一道题分享Imo电面题
request solutions to 2 questions on leetcode一个问题:Track Changes
相关话题的讨论汇总
话题: string话题: public话题: piece话题: square话题: board
进入JobHunting版参与讨论
1 (共1页)
q****x
发帖数: 7404
1
class Piece {
int color;
int position;
};
class King: public Piece {};
class Queen: public Piece {};
...
class Board {};
class Game {
vector _pieces;
Board _board;
};
一点继承和多态,还能加点啥?
v*****k
发帖数: 7798
2
你总得加走法和判断吃子/将军/胜负啊?如果是比赛还要加计时系统。如果是练习可以
加悔棋/复盘系统....
n*******w
发帖数: 687
3
一些简单user cases都不算容易通过。
比如
把棋从(x y) 移到 (x' y')
快速判断某个位置是不是已经有棋子了
移动id为1的棋子
。。。。。。
每种棋子是什么类型最好弄成enum类型。

【在 q****x 的大作中提到】
: class Piece {
: int color;
: int position;
: };
: class King: public Piece {};
: class Queen: public Piece {};
: ...
: class Board {};
: class Game {
: vector _pieces;

q****x
发帖数: 7404
4
是可以加很多代码。但哪些能体现"OOD"?

【在 n*******w 的大作中提到】
: 一些简单user cases都不算容易通过。
: 比如
: 把棋从(x y) 移到 (x' y')
: 快速判断某个位置是不是已经有棋子了
: 移动id为1的棋子
: 。。。。。。
: 每种棋子是什么类型最好弄成enum类型。

S*******0
发帖数: 198
5
public abstract class Piece {
private String pieceColor;
public Piece() {
}
public String getPieceColor() {
return pieceColor;
}
// boolean isOppositeColor()
abstract public String getName();
abstract public boolean isRoadOk(Board board, String from, String to);
}
King, Queen, Bishop, Knight, Rook, Pawn 都继承一下Piece
public class Board {
private Square[][] squares = new Square[8][8];
public Board() {
//set the 32 pieces
}
public Square[][] getSquares() {
return squares;
}
public Square getSquare(String squareName) {
}
// rook, queen
public Square[] getSquaresHorizontal(String squareName1, String
squareName2) {
}
// rook, queen, pawn
public Square[] getSquaresVertical(String squareName1, String
squareName2) {
}
// bishop, queen
public Square[] getSquaresDiagonal(String squareName1, String
squareName2) {
}
public boolean isKnightMove(String squareName1, String squareName2) {
}
public String[] knightMoves(char letter, int number) {
}
public boolean isNextSqare(String squareName1, String squareName2) {
}
}
public class Square {
private Piece piece;
private String name; // A1, C2,...
public Square(String name) {
this.name = name;
}
public void setPiece(Piece piece) {
this.piece = piece;
}
public Piece getPiece() {
return piece;
}
public String getName() {
return name;
}
public boolean isEmpty() {
if (this.getPiece() == null)
return true;
else
return false;
}
public String toString() {
return getName();
}
}
在就是玩家了,弄一个基类,再把human 和AI继承一下
n*******w
发帖数: 687
6
一般interviewer会使用一些user cases来判断ood设计是不是work。
sewind这个就好很多。不是加代码的问题。
把position信息放到board里边,board是个二维数组。
每个格子可以放棋子。这样跟下棋直接对应起来了。
棋子弄个abstract类也行吧。
再跑一下那几个user cases就很容易通过了。

【在 S*******0 的大作中提到】
: public abstract class Piece {
: private String pieceColor;
: public Piece() {
: }
: public String getPieceColor() {
: return pieceColor;
: }
: // boolean isOppositeColor()
: abstract public String getName();
: abstract public boolean isRoadOk(Board board, String from, String to);

q****x
发帖数: 7404
7
什么user case?

【在 n*******w 的大作中提到】
: 一般interviewer会使用一些user cases来判断ood设计是不是work。
: sewind这个就好很多。不是加代码的问题。
: 把position信息放到board里边,board是个二维数组。
: 每个格子可以放棋子。这样跟下棋直接对应起来了。
: 棋子弄个abstract类也行吧。
: 再跑一下那几个user cases就很容易通过了。

1 (共1页)
进入JobHunting版参与讨论
相关主题
一个问题:Track Changes这段代码啥意思?看了半天没看懂。郁闷中~~~~~~~~~~
leetcode Parlindrome Partition run time errorjava没有指针真麻烦
我觉得valid number其实并不难贡献今天facebook电面 一道题
Leetcode-010: Regular Expression Match (DP Solution)request solutions to 2 questions on leetcode
leetcode valid numberLeetcode Timeout
实现一个 thread-safe blocking queue这题怎么写啊?L家的常考facebook的面试题
Interleave Strings那个题目有O(n)时间 O(1)空间算法么?问个java List的问题
问2道面试题发个Twitter的面试题
相关话题的讨论汇总
话题: string话题: public话题: piece话题: square话题: board