Professional Documents
Culture Documents
L P Hình
L P Hình
L P Hình
hinh co giao nhau không, dịch lên xuống trái phải, thêm đồ họa
+ tính chất đa hình void virtual vehinh(CclientDC* pdc): phương thức là phương thức ảo có từ khóa
virtual thì khi mà định nghĩa phương thức sẽ không gọi phương thức của lớp cha mà ưu tiên gọi các
phương thức ở lớp con, chỉ áp dụng vs các hàm ảo.
Lớp Hcn <kế thừa từ lớp Hinh>: hàm khởi tạo vẽ hcn
Lớp Tròn <kế thừa từ lớp Hinh>: hàm khởi tạo vẽ hình tròn
+kiểm tra biên (nếu chạm biên trên thì rắn sẽ biến mất và xuất hiện ở biên dưới và di chuyển lên trên <
y2 của đầu <= y1 của đường viền>, tương tự với bên trái và phải)
+randichuyen: sự kiện bấm phím (lên, xuống, trái, phải)-> khi mà dịch chuyển xong sẽ kiểm tra
ăn(rananmoi), ăn xong và kiểm tra biên xem đầu có ở vị trí không hợp lý không và điều chỉnh lại
+rắn ăn mồi: khi đầu rắn đụng mồi, xác định trung điểm của hình chữ nhật (đầu rắn) nếu trung điểm của
đầu rắn nằm trong hình tròn nghĩa là trùng với tâm hình tròn sẽ ăn được mồi
Lớp view:
+ onkeydown: sự kiện bấm phím, bắt đầu chơi bằng bấm phím space, bấm phím lên – xuống – trái – phải
+ UINT capnhaphinh() : cập nhập hình liên tục-> khi biến đk = 1 thì cập nhập và nghỉ 0.03s và sẽ vẽ lại
Lớp rắn:
+Di chuyển rắn lên xuống trái phải: đuôi giới hạn tới 100
+đổi chỗ đuôi lên đầu và đầu lên một ô có độ dài D (gồm 20 ô: RONG = 600 (khung)/ độ dài D = 30)
Đi từ cuối <i = n – 1> lên, thay đổi tọa độ ms <duoi[i].x1=duoi[i-1].x1,…> xong thì thiết lập lại tọa
độ tâm của nó.
Và phần đuôi gần đầu nhất sẽ thay bằng tọa độ của đầu: hàm duoi[0]
+tăng đuôi (biến lưu trữ: int sethem-> báo trước được thêm một đuôi, chuẩn bị thêm đuôi)
+taomoi(): sẽ cho mồi vị trí ngẫu nhiên, yêu cầu vị trí mới khác vị trí cũ
+(ktdaudungduoi): tâm của đầu duyệt từ vòng lặp all các đuôi, nếu tọa độ tâm của đầu nằm trong hình
của các phần tử của đuôi thì kết thúc
Xác định tâm của đầu và đuôi, duyệt qua vòng lặp for() và xét điều kiện nêu trên