Sự kiện khi chạm vào các nút btn_Hinh1, ,btn_Hinh9 đối với cấp độ 3x3 và btn_Hinh1, ,btn_Hinh16 đối với cấp độ

Một phần của tài liệu Báo cáo Lập trình thiết bị di động (Android) (Trang 33 - 38)

3. Lập trình và mô phỏng chức năng

3.3.6Sự kiện khi chạm vào các nút btn_Hinh1, ,btn_Hinh9 đối với cấp độ 3x3 và btn_Hinh1, ,btn_Hinh16 đối với cấp độ

với cấp độ 3x3 và btn_Hinh1,...,btn_Hinh16 đối với cấp độ 4x4

- Khi chạm vào nút nếu các nút ở vị trí trên, phải, dưới, trái đối với nút được chạm nút nào có giá trị Image là “none.jpg” thì thủ tục

Sound_AmThanh.Play được gọi và tiến hành hoán vị giá giá trị Image với nút đó, đồng thời gọi thủ tục CapNhatDiChuyen.

- Có 1 điểm khác biệt ở nút btn_Hinh9 đối với cấp độ 3x3 và

btn_Hinh16 đối với cấp độ 4x4 khi chạm vào nút thì thủ tục KiemTra sẽ được gọi

bởi theo qui luật của trò chơi để sắp xếp đúng vị trí các mãnh ghép thì nút đó sẽ là nút được chạm cuối cùng để hoàn thành.

 Thủ tục CapNhatDiChuyen: Cập nhật lại giá trị của biến DiChuyen

bằng DiChuyen cộng 1, cập nhật lại giá trị Text của nút btn_DiChuyen bằng giá trị của biến DiChuyen

 Thủ tục KiemTra: Kiểm tra giá trị Image của các nút

btn_Hinh1,..,btn_Hinh8 đối với cấp độ 3x3 và btn_Hinh1,..,btn_Hinh15 đối với cấp độ 4x4 nếu giá Image đúng theo thứ tự như lúc đầu tải hình thì cập nhật lại giá trị Image cho nút btn_Hinh9 thành TenHinh_3x3_9.jpg với cấp độ 3x3 và cấp độ 4x4 cập nhật giá trị nút btn_Hinh16 thành TenHinh_4x4_16.jpg. Đối tượng

clock_ThoiGianChoi sẽ được tắt, đồng thời gọi thủ tục LuuThanhTich.

 Thủ tục LuuThanhTich: Lưu kết quả di chuyển và thời gian hoàn thành màn chơi vào mảng ThanhTichMoi, sau đó đọc dữ liệu từ cơ sở dữ liệu với tag:3x3 vào biến KiemTraRong nếu biến KiemTraRong bằng rỗng (lần đầu chơi) thì thêm mảng ThanhTichMoi vào vị trí thứ 1 của mảng ThanhTich3x3 ngược lại đọc dữ liệu từ cơ sở dữ liệu với tag: 3x3 lên mảng ThanhTich3x3 sau đó kiểm tra nếu số phần tử của mảng ThanhTich3x3 nhỏ hơn 3 thì thêm mảng ThanhTichMoi

vào vị trí tiếp theo của mảng ThanhTich3x3, ngược lại gọi thủ tục

CapNhatThanhTich với tham số đầu vào là mảng ThanhTichMoi. Tiếp theo gọi thủ tục SapXep với tham số đầu vào là ThanhTich3x3 để sắp xếp lại thành tích theo thứ tự tăng dần và lưu mảng ThanhTich3x3 vào cơ sở dữ liệu với tag:3x3.

ThanhTichMoi ThanhTich3x3 và cập nhật giá trị của mảng ThanhTichMoi,

ThanhTich3x3 thành rỗng.

 Đối với cấp độ 4x4 chỉ khác ở tên mảng thành tích và tên tag trong cơ sở dữ liệu (ThanhTich3x3, tag:3x3 cấp độ 3x3 tương đương với ThanhTich4x4, tag:4x4 cấp độ 4x4).

 Thủ tục CapNhatThanhTich: Cập nhật giá trị cho mảng cục bộ

ThanhTichMoiTam bằng mảng ThanhTichMoi, khởi tạo 1 mảng Tam với giá trị

rỗng, kiểm tra giá trị di chuyển của từng phần tử trong mảng ThanhTich3x3 nếu lớn hơn bằng giá trị di chuyển trong mảng ThanhTichMoiTam thì tiếp tục kiểm tra giá trị thời gian chơi nếu thời gian chơi của phần tử trong mảng ThanhTich3x3 lớn hơn bằng thì tiến hành hoán đổi giá trị của phần tử trong mảng ThanhTich3x3 với mảng ThanhTichMoiTam

 Thủ tục SapXep: Sắp xếp các phần tử trong mảng ThanhTich3x3 theo giải thuật Bubble Sort trước khi lưu xuống cơ sở dữ liệu.

 Thủ tục XuatThongBao: Kiểm tra và xuất thông báo phù hợp với thành tích của người chơi, nếu điểm mới của người chơi được cập nhật ở đầu mảng

ThanhTich3x3 thì gọi thủ tục ThongBao với tham số là nội dung người chơi được

xếp hạng nhất tương tự cho vị trí thứ 2,3, ngược lại nếu thành tích mới của người chơi không tồn tại trong mảng ThanhTich3x3 thì gọi thủ tục ThongBao với tham số là nội dung người chơi đã hoàn thành màn chơi nhưng điểm không được lưu.

 Thủ tục ThongBao: Gọi thủ tục ShowChooseDialog của đối tượng

Một phần của tài liệu Báo cáo Lập trình thiết bị di động (Android) (Trang 33 - 38)