hg clone http://bitbucket.org/username/oop-asg01Chú ý thực hiện hướng dẫn một cách chính xác. Sinh viên nên tự thử lệnh trên để kiểm tra xem phiên bản tại bitbucket có đúng là phiên bản cần nộp
Bài nộp gồm các file mã nguồn và một file dạng text có tên README. Trong file README cần có các thông tin cá nhân như tên, lớp, số sinh viên, và hướng dẫn biên dịch (nếu cần). Các file để nguyên trong thư mục project, không nén, không tạo các thư mục con.
0 1 2 3 4 5 6 7 8 9
_____________________
0 | . . . . . . . . . .
1 | . . . . . . . . . .
2 | . . . x . . . . . .
3 | x x x x x x x . . .
4 | . . . x .
5 | . . . x . . . . . .
6 | . . x x x . . . . .
7 | . . . . . . . . . .
8 | . . . . . . . . . .
9 | . . . . . . . . .
1. Cấu hình trò chơi được nạp từ một file text với định dạng như sau: dòng đầu ghi 2 số nguyên m, n trong khoảng từ 1 đến 10. m dòng sau, mỗi dòng ghi n số 0 hoặc 1, biểu diễn lưới vuông kích thước mxn là bản đồ bầu trời, trong đó các ô 1 biểu diễn vị trí và hình ảnh của máy bay. Chương trình KHÔNG phải kiểm tra tính hợp lệ của file cấu hình. Tên file cấu hình được xác định bởi tham số đầu tiên trong lệnh chạy chương trình (xem chi tiết ở ví dụ bên dưới).
2. Tọa độ bắn (số nguyên) được người dùng nhập từ bàn phím dưới dạng x y (x là tọa độ dòng, y là tọa độ cột), hai số x, y được viết cách nhau ít nhất 1 kí tự trắng. Chương trình KHÔNG phải kiểm tra tình trạng người dùng có nhập số nguyên hay không (người dùng chắc chắn sẽ nhập các số nguyên).
Dữ liệu ra:
Có hai phần: giao diện với người dùng trên màn hình và file nhật trình.
1. Giao diện với người dùng, chẳng hạn vẽ bản đồ lên màn hình và lời mời nhập tọa độ bắn, cũng như thông báo trúng/trượt tại màn hình là do lập trình viên tự quyết định và thiết kế và KHÔNG có yêu cầu cụ thể.
2. Phần nhật trình (log) của mỗi ván chơi được ghi ra 1 file và phải tuân thủ CHÍNH XÁC quy định sau đây về định dạng dữ liệu trong file: với mỗi phát đạn của người chơi, chương trình cần ghi những nội dung sau vào file nhật trình:
- 01 dòng tọa độ bắn theo định dạng:
x<tab>y<tab>resulttrong đó x, y lần lượt là các tọa độ dòng và cột của phát đạn, <tab> là 01 kí tự tab, result là miss hay hit tùy theo kết quả là trượt hay trúng.
Ví dụ đoạn nhật trình của một phát bắn:
3 3 hit 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
java <tên chương trình> <tên file cấu hình> <tên file nhật trình>hoặc
java <tên chương trình> <tên file cấu hình>Ví dụ,
java Game test1.in test1.outchương trình tại class Game sẽ nạp cấu hình bản đồ từ test1.in và ghi nhật trình ra test1.out
java Game test1.inchương trình tại class Game sẽ nạp cấu hình bản đồ từ test1.in và ghi nhật trình ra test1.in.log