Professional Documents
Culture Documents
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.
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:
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.
Á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