You are on page 1of 3

BÀI TẬP JAVA NÂNG CAO

Bài 1: DulichNote
Một ứng dụng DuLichNote giúp cho người dùng có thể ghi lại được danh sách các địa điểm du lịch
và những điều thú vị trong hành trình của mình. Cẩm nang du lịch gồm các thông tin danh sách địa
điểm du lịch, danh sách quán ngon.

Địa điểm du lịch gồm các thông tin mã địa điểm du lịch, tên gọi, mô tả, địa chỉ, ghi chú, ngày check-in,
ngày check-out.

Khi đến địa điểm du lịch, người dùng sẽ tìm kiếm các quán ngon để thưởng thức đồng thời thể lưu lại
các thông tin. Quán ngon gồm các thông tin mã địa điểm du lịch, mã quán ngon, tên quán, địa chỉ, mô
tả, đặc sản, khoảng cách.

Trong cẩm nang du lịch, người dùng có thể thêm/xóa các thông tin về các địa điểm du lịch, các quán
ngon.

Khi đến một địa điểm du lịch, người dùng sẽ thực hiện check-in, thông tin ngày tháng check-in sẽ
được lưu lại, khi rời điểm du lịch đó, người dùng sẽ thực hiện check-out, thông tin ngày tháng check-
out cũng sẽ được lưu lại.

Ngoài ra người dùng còn có thể:

 Hiển thị các địa điểm du lịch mà người dùng đã đi qua


 Tìm kiếm và in ra danh sách các quán ngon khi biết mã địa điểm du lịch.
 Sắp xếp các quán ngon theo khoảng cách từ gần đến xa của một địa điểm du lịch khi biết
mã địa điểm du lịch.
Bài 2: Game Caro

Hình ảnh. Bàn cờ caro trên có 10 hàng, 10 cột, độ rộng 50

Gồm các đối tượng:

1. Quân cờ có các thuộc tính: x, y là vị trí của quân cờ trên bàn cờ, loại quân cờ(X, O). Quân cờ có các
phương thức:

 Khởi tạo 3 tham số dùng để khởi tạo 1 quân cờ.


 Phương thức getX(), getY(), getLoai() dùng để lấy giá trị x, y, loại quân cờ khi cần thiết.

2. Bàn cờ có các thuộc tính: số cột, số hàng, độ rộng của 1 ô vuông bàn cờ , màu sắc bàn cờ(xanh, đỏ,
tím vàng), tỷ số trận đấu, người chơi 1, người chơi 2.
+Lưu ý:+ Số cột, số hàng, độ rộng là thuộc tính hằng. Bàn cờ có các phương thức:

 Khởi tạo 1 tham số dùng để khởi tạo màu sắc của bàn cờ. Trong phương thức khởi tạo còn
phải khởi tạo cả 2 người chơi và reset tỷ số trận đấu.
 veBanCo() dùng để vẽ lên màn cờ trong màn hình giao diện đồ họa. (Chú ý, đối với phương
thức này, chỉ cần in ra thông báo “Bàn cờ được vẽ với màu...”.
 xoaBanCo() dùng để thực hiện xóa tất cả các quân cờ của 2 người chơi trên bàn cờ.
 choiLai() dùng để reset tỷ số trận đấu và đồng thời xóa tất cả các quân cờ của 2 người chơi
trên bàn cờ.
 kiemTraThangCuoc() dùng để kiểm tra xem người chơi nào là người thắng cuộc:
o B1. Kiểm tra xem tổng số quân cờ trên bàn đã có ít nhất 9 quân chưa, nếu chưa thì
return.
o B2. Kiểm tra thắng cuộc theo hàng ngang, hàng dọc và 2 đường chéo.
(Người chơi thắng cuộc là người có 5 quân cờ được đánh liền bên cạnh nhau theo
hàng ngang hoặc hàng dọc hoặc đường chéo trái hoặc đường chéo phải). Nếu tìm
thấy người thắng cuộc tăng tỷ số trận đấu, in thông báo “Người chơi… thắng cuộc, Tỷ
số là: Thua…, thắng….. Bạn có muốn chơi tiếp không? Y/N?”. Nếu nhập Y thì reset các
quân cờ trên bàn, nhập N thì dừng chương trình.

3. Người chơi có các thuộc tính: Danh sách<Quân cờ>, tên người chơi, loại quân cờ(X, O). Người chơi
có các phương thức sau:
 Khởi tạo 2 tham số dùng để khởi tạo người chơi với tên và loại quân cờ. Trong phương thức khởi
tạo còn phải khởi tạo danh sách quân cờ của người chơi.
 danhCo(int x, int y) dùng để thực hiện đánh cờ bằng cách sinh ra một quân cờ và làm trình tự các
thao tác:
Kiểm tra tọa độ x, y có hợp lệ hay không. Nếu không hợp lệ thì return luôn.
(Hợp lệ là x, y phải nằm trong khung bàn cờ:
0<=x<=(số cột -1)*độ rộng 1 ô vuông, 0<=y<=(số hàng -1)*độ rộng 1 ô vuông
o Điều chỉnh x,y thành giá trị đúng để quân cờ được đánh vào giữa ô vuông:
B1. Tìm vị trí cột dựa vào x, vị trí hàng dựa vào y
B2. Xây dựng ý tưởng code để điều chỉnh x, y thành giá trị hợp lý để quân cờ được đánh
vào chính giưa ô vuông.
Ví dụ:
o danhCo(18,20) → x = 18, y = 33, x thuộc cột 0, y thuộc hàng 0
 Điều chỉnh x = 25, y= 25
o danhCo(18,73) → x = 18, y = 73, x thuộc cột 0, y thuộc hàng 1
 Điều chỉnh x = 25, y= 75
o danhCo(123, 234) → x = 123, y = 234, x thuộc cột 2, y thuộc hàng 4
 Điều chỉnh x = 125, y= 225
o Kiểm tra quân cờ ứng với vị trí x, y sau khi điều chỉnh này này đã có trong danh sách hay
chưa. Nếu chưa thì add quân cờ vào danh sách. Nếu đã tồn tại thì in ra thông báo: “Vị trí
này đã có quân cờ” và return.
 xoaCo() dùng để xóa hết các quân cờ có trong danh sách của người chơi.
 getDSQuanCo() dùng để trả về danh sách các quân cờ khi cần thiết.
 getTen() dùng để trả về tên của người chơi.

Chú ý: Tạo Main để test game.


Yêu cầu:

Áp dụng trừu tượng hóa, kế thừa, đa hình để phân tích bài toán thành các đối tượng
Xây dựng MHQ giữa các đối tượng
Phân chia các đối tượng vào các gói và xây dựng phạm vi truy cập (thuộc tính vá phương thức) cho
từng đối tượng
Ánh xạ các đối tượng vào Java

You might also like