Cờ vua là một trò chơi chiến thuật đã tồn tại hàng thế ky, nỗi bật với tính cạnh tranh và khả năng rèn luyện tư duy của người chơi.. Cờ vua, một trò chơi chiến thuật nồi tiếng và được yê
Trang 1BO GIAO DUC VA DAO TAO TRƯỜNG 841B@QGÔNGNGHỆ ĐÔNG Á TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN HỌC PHẢN: PHÁT TRIEN UNG DỤNG VỚI THIẾT BỊ
BÀI TRdLỚN
HOC PHAN: PHAT TRIEN UNG DUNG CHO THIET BI DI BONG
CHU DE 6: GAME GIAI TRI
Dé tai 112: Ungedgyig game eo XNA RCE Pep Android SDK
Dé tai 112: Ung dung game co vua sir dung Java Android SDK
STT Sinh viên thực hiện
Sinh viên thực hiê
1
Phạm Lương
Mã sinh viên
Lop
Diém bang so Điểm bằng chữ
oa
Pham ea uốc Trung
Trang 2MUC LUC
LOI MO DAU
CHUONG 1: TONG QUAN VE DE TAIL
1.2 Phạm vi đề tài
1.3 Dự kiến công việc
1.3.2 Dự kiến thời gian phát triển : 8 tuần
2.1.4 Thống kê
2.2.1 — Giao diện chính
2.2.4 Giao diện chơi online
2.3 Thiết kế các thành phan ứng dụng
2.3.1 Thiết kế Acdivity chính:
2.3.2 Thiết kế Activity cho chế độ chơi 2 người trên cùng màn hình:
2.3.3 Thiết kế Activity cho chế độ chơi với bot: -5 ss<
2.3.4 _ Thiết kế Activity cho chế độ chơi online: . -55-<5
2.3.5 Thiết kế các lớp đối tượng (Model cÏaSS€S): 5.555 s<<ss5
Trang 32.5 Kết luận chương 2
16
18
3.1.3 Dữ liệu cho bo( chơi Cờ co 0 Y3 11 85 9 ng 20
3.2 Xây dựng giao điện ứng đỤng o0 5G S9 9 9115515151551 115 22 3.3 Xây dựng các thành phần ứng dụng (m0(uÌ€) 5 <5 5 55s ssssssssss s5 28
3.3.1 Module quản lý người chơi (Player Management) - 28
34 35
Trang 4DANH MUC CAC BANG BIEU VÀ SƠ ĐỎ
1 Giao dién chinh 12
9 Giao dién chinh 22
13 Giao diện tạo phòng 25
15 Giao diện giới thiệu 26
Trang 5
Thông qua đề tài ứng dụng game cờ vua sử dụng java android SDK, chúng em không chỉ xây dựng một sản phâm, mà còn tạo ra một trải nehiệm đáng nhớ và thực tế trong quá trình học tập và ứng dụng kiến thức vảo thực tế Đây là một hành trình không chỉ là về kiến thức, mà còn về sự sáng tạo, học hỏi
và đóng góp tích cực vào sự phát triển của cộng đồng Chúng em đặt niềm tin vào sự thông cảm và góp ý chân thành từ phía thầy đề bài tập lớn của chúng em ngày cảng hoàn thiện và phát triển Đồng hành cùng sự phát triển này là sự cam kết tiếp tục học hỏi và nghiên cứu sâu rộng hơn về lập trình, dé ching em co thé đóng sóp tích cực và mang lại ø1á trị thực sự trone lĩnh vực này
CHƯƠNG 1: TONG QUAN VE DE TAI Giới thiệu đề tài
Trang 6Cờ vua là một trò chơi chiến thuật đã tồn tại hàng thế ky, nỗi bật với tính cạnh tranh
và khả năng rèn luyện tư duy của người chơi Với sự phát triển nhanh chóng của công nghệ thông tin và di động, nhu cầu giải trí và học hỏi qua các ứng dụng di động ngày
cảng tăng Người chơi hiện nay mong muốn có thể tham gia vào các trận đầu cờ vua
mọi lúc, mọi nơi, từ việc luyện tập cá nhân đến việc thi đấu trực tuyến với bạn bè hoặc người chơi toàn cầu Cờ vua, một trò chơi chiến thuật nồi tiếng và được yêu thích trên toàn thế giới, không chỉ mang lại niềm vui mà còn giúp rèn luyện tư duy, khả năng lập
kế hoạch và phản ứng nhanh Trong bối cảnh công nghệ hiện đại, việc phát triển một
ứng dụng game cờ vua trên nền tảng Android là cơ hội dé đưa trò chơi này đến gần
hơn với người dùng, cho phép họ trải nghiệm ở bất kỳ đâu và bất kỳ lúc nao
Mục tiêu của đề tài
Cung cấp trải nghiệm chơi cờ vua: Tạo ra một môi trường chơi cờ vua thú vi, cho
phép người dùng trải nghiệm trò chơi ở bất kỳ đâu và bất kỳ lúc nào
Rèn luyện tư đuy chiến lược: Giúp người chơi cải thiện khả năng tư duy chiến lược
và phản ứng nhanh thông qua việc thực hành và đối đầu với các đối thủ khác
Hỗ trợ nhiều chế độ chơi: Cung cấp các chế độ chơi đa dạng, bao gồm chơi đơn với
AI và chơi trực tuyến với bạn bè hoặc người chơi khác, từ đó nâng cao tính hấp dẫn của ứng dụng
Theo dõi và phân tích ván đấu: Tính năng theo dõi lịch sử ván đấu giúp người chơi
có thê phân tích và rút kinh nghiệm từ các nước đi của mình, từ đó cải thiện kỹ năng chơi
Khuyến khích sự kết nối cộng đồng: Tạo ra một nền tảng cho những người yêu thích cờ vua giao lưu, học hỏi lẫn nhau và tham gia các giải đấu nhỏ
Dam bao tính hợp lệ và công bằng: Xây dựng một hệ thống kiểm tra tính hợp lệ của các nước đi, đảm bảo trải nghiém choi céng bang cho tat cả người dùng
Tối tu hóa hiệu suất ưng dụng: Đảm bảo hoạt động mượt mà trên nhiều thiết bị Android, mang lại trải nghiệm tốt nhất cho người dùng
Lợi ích của dé tai
Trang 7Nâng cao kỹ năng tư duy: Ứng dụng giúp người choi phat triển khả năng tư duy
chiến lược, phân tích tình huỗng và ra quyết định nhanh chóng, từ đó cải thiện kỹ năng
tư duy tổng quát
Giải trí và thư giãn: Cung cấp một không gian giải trí lành mạnh, giúp người chơi
thư giãn sau những giờ học tập và làm việc căng thắng
Tiếp cận dễ dàng: Với việc phát trién trên nền tảng Android, người dùng có thê dễ
dàng tải xuống và chơi trò chơi trên thiết bị di động của mình mọi lúc, mọi nơi
Chơi với bạn bè và người chơi khác: Tính năng chơi trực tuyến cho phép người dùng kết nối và thi đấu với bạn bè hoặc những người chơi khác trên toàn thế giới, tạo
cơ hội p1ao lưu va học hỏi
Theo đối tiến bộ: Người chơi có thê xem lại lịch sử các ván đấu, từ đó phân tích và cải thiện chiến lược cá nhân Điều này giúp họ nâng cao trình độ qua thời gian
Khuyến khích tỉnh thân cạnh tranh: Tính nang thi đấu trực tuyến và lưu trữ thành tích tạo ra một môi trường cạnh tranh lành mạnh, khuyến khích người chơi không
ngừng cải thiện kỹ năng
Giáo đục và phát triển cá nhân: Ứng dụng không chỉ mang lại giải trí mà còn giáo dục người chơi về các chiến thuật và kỹ thuật trong cờ vua, đóng góp vào sự phát triển
cá nhân toàn diện
Xây dựng cộng đông yêu thích cờ vua: Tạo ra một không gian kết nối cho những người yêu thích cờ vua, giúp họ chia sẻ kinh nghiệm, chiến thuật và tham gia các sự kiện cộng đồng
Trang 8Ché d6 choi véi bot: Ngwoi choi cé thé choi 1 minh dau voi bot theo từng cấp độ khó tăng dân
Chế độ chơi đa người: Hỗ trợ người chơi kết nỗi và thí đấu trực tuyến với bạn bè hoặc người chơi khác
Giao điện người dùng: Thiết kế giao điện trực quan, thân thiện và đễ sử dụng, với bàn cờ rõ ràng và các nút điều khiển đơn giản Giao diện sẽ được tối ưu hóa cho nhiều kích thước màn hình khác nhau
Kiểm tra và đâm bảo chất tượng: Thực hiện các bài kiểm tra tính năng, hiệu suất
và độ ôn định trên nhiều thiết bị Android để đảm bảo ứng dụng hoạt động mượt mả và
không gap su cô
Không bao gồm:
Phát triển cho các nền tảng khác như 1OS hoặc web
Tính năng thương mại (như mua bán quân cờ, tính phí địch vụ) sẽ không được triển khai trong giai doan nay
Các chức năng phức tạp như phân tích ván đấu tự động hoặc AI cấp cao sẽ không nam trong pham vi ban dau
Thời gian phát triển: Dự kiến hoàn thành các giai doan thiét ké, phat trién va thir nghiệm trong khoảng thời gian từ 3 đến 6 tháng, tùy thuộc vào độ phức tạp và nguồn
lực
Tài liệu và hỗ trợ: Tài liệu hướng dẫn sử dụng sẽ được phát triển để hỗ trợ người dung trong việc cải đặt và sử dụng ứng dụng Ngoài ra, tài liệu kỹ thuật sẽ được cung cap cho các lập trình viên đề thuận tiện cho việc bảo tri va nang cap sau này
1.43 Dự kiến công việc
1.3.1 Dự kiến công việc
A, Nghiên cứu và phân tích yêu cẩu
Xác định nhu cầu người dùng: Thực hiện khảo sát để thu thập ý kiến từ người chơi
cờ vua về các tính năng mong muôn
Trang 9Lập danh sách yêu cầu: Tạo danh sách các chức năng chính và phi chức năng cho
C, Phat trién ứng dụng: Lập trình các module chính:
Xây dựng logic trò chơi (quy tắc, kiếm tra nước đi hợp lệ)
Phát triển giao điện người dùng với XMIL
Tích hợp tính năng lưu và tải ván chơi
Phát triển chế độ chơi trực tuyến và kết nối với Firebase
D, Kiểm tra và đảm bảo chất lượng
Thử nghiệm tính năng: Thực hiện kiểm tra các chức năng chính của ứng dụng để đảm bảo chúng hoạt động đúng
Kiểm tra hiệu suất: Đánh giá hiệu suất ứng dụng trên các thiết bị khác nhau đê đảm bảo tính 6n định và mượt mà
Sửa lỗi: Ghi nhận và sửa chữa các lỗi phát hiện trong quá trình kiểm tra
E, Triển khai ứng dụng
Chuan bi tai liệu hướng dẫn: Tạo tài liệu hướng dẫn sử dụng và tải liệu kỹ thuật cho
lập trinh viên
Đưa ứng dụng lên Google Play Store: Thực hiện các bước cần thiết dé phát hành
ứng dụng và thu thập phản hồi từ người dùng
F, Phản hồi và cập nhật
Thu thập phản hồi: Lắng nghe ý kiến từ người dùng sau khi phát hành để cải thiện ứng dụng
Trang 10Cập nhật và bảo trì: Thực hiện các bản cập nhật đề sửa 161, cai thién higu suat và thêm tính năng mới dựa trên phản hồi từ người dùng
Đảnh giá dự an: Tổng kết dự án: Đánh giá kết quả dự án, rút ra bài học kinh nghiệm và chuân bị báo cáo cuôi củng
1.3.2 Dự kiến thời gian phát triển : 8 tuần
Tuân 1: Nghiên cứu và phân tích yêu câu
Khảo sát người dùng: Thu thập ý kiến từ người chơi cờ vua
Xác định yêu cầu: Lập danh sách các chức năng cần thiết và ưu tiên các tính năng chính
Tuân 2: Thiết kế kiến trúc ứng dụng
Mô hình MVC: Xây dựng kiến trúc ứng dụng
Thiết kế giao diện: Phác thảo giao diện người đùng và UX, chuẩn bị mockup
Tuân 3: Phát triển logic trò chơi
Lập trình logic cờ vua: Xây dựng các quy tắc và kiểm tra tính hợp lệ của nước đi
Thiết lập cầu trúc dữ liệu: Quản lý trạng thái bàn cờ và quân cờ
Tuân 4: Phát triển giao điện người dùng
Xây dựng giao diện: Lập trình giao diện người dùng bằng XML, tích hợp các thành
phần điều khiến
Thực hiện điều chỉnh UX: Dựa trên phản hồi từ mockup
Tuân 5: Tích hợp chế độ chơi đơn và đa người
Ché độ chơi đơn: Phát triển AI cho người chơi một mình
Chế độ chơi đa người: Tích hợp kết nối mạng và quản lý phòng chơi
Tuân 6: Lưu và tải văn chơi
Phát triển chức năng lưu: Cho phép người dùng lưu trạng thái van dau
Tạo chức năng tải: Đảm bảo người đùng có thể tiếp tục ván chơi
10
Trang 11Tuan 7: Kiém tra va dam bao chat leong
Thử nghiệm tính năng: Kiểm tra các chức năng chính đề đảm bảo hoạt động đúng
Kiểm tra hiệu suất: Đánh giá ứng dụng trên nhiều thiết bị, sửa lỗi phát hiện
Tuân §: Triển khai và phản hôi
Chuan bi tai liệu hướng dẫn: Tạo tài liệu sử dụng và hướng dẫn cài đặt
Đưa ứng dụng lên Amazon Store: Phát hành ứng dụng và thu thập phản hồi từ người dùng
Cập nhật và bảo trì: Lập kế hoạch cho các bản cập nhật dựa trên phản hồi từ người dùng
1.3.3 Phẩm công nhiệm vụ của các thành viên
cờ,minimax, liên kết firebase
2 20214023 Phạm Lương Quốc Trung |_ Code giao diện bản cờ,
đăng nhập, đăng kí
3 20212256 Nguyễn Thị Ngọc Hân Code trang giới thiệu,
hướng dẫn, làm báo cáo
4 20212258 Hoàng Xuân Nhớ Code trang chu và các
Trang 12CHUONG 2 THIET KE UNG DUNG
2.1 Thiết kế chức năng
Thiết kế chức năng này sẽ đảm bảo ứng dụng game cờ vua hoạt động linh hoạt và
cung cấp trải nghiệm người dùng tốt nhất, từ việc chơi đơn giản đến những tính năng
quản lý và hướng dẫn chỉ tiết
2.1.1 Chế độ chơi
Chơi 2 người: Hai người chơi có thể chơi với nhau trên cùng 1 màn hình
Chơi với máy: Người chơi có thể chọn mức độ khó khác nhau:
Dễ: AI di chuyên ngẫu nhiên, giúp người mới làm quen với luật chơi
Trung bình: AI có chiến thuật cơ bản, đưa ra các nước đi hợp lý hơn
Khó: AI sử dụng thuật toán chiến lược phức tạp tạo thử thách cho người chơi
Chơi với người: Cho phép hai người chơi cùng nhau trên cùng một thiết bị, thay phiên
nhau di chuyên quan cờ
2.1.2 Quan ly van co
Lưu ván cờ: Cho phép người chơi lưu trạng thái hiện tại của ván cờ để tiếp tục sau Người dùng có thê nhập tên ván cờ để dễ dàng nhận diện
Tải ván cờ: Tĩnh năng cho phép người chơi tải lại các ván cờ đã lưu trước đó, duy
tri liên tục quá trình chơi
2.1.3 Hướng dẫn
12
Trang 13Thông tin luật chơi: Cung cấp hướng dẫn chỉ tiết về các luật chơi cờ vua, cach di
chuyên quân, và cách thăng trận
Chiên thuật cơ bản: Hướng dân một số chiên thuật và mẹo chơi cờ vua cho người mới bắt đâu
2.1.4 Thông kê
Lịch sứ trận đấu: Ghi lại lịch sử các trận đấu đã chơi, bao gồm thông tin neười chơi, kết quả va thoi gian
Thống kê điểm số: Cung cấp báo cáo thông kê về số ván thắng, thua và hòa cho mỗi
người chơi, giúp theo dõi tiến bộ
2.2 Thiết kế giao diện
2.2.1 Giao điện chính
Chơi 2 người Chơi với bot
bee Red Giới thiệu
Hướng dẫn
Hình Ï : Giao diện chính
2.2.2, Giao điện chơi 2 người
Trang 14x=
Pl 1
fi ayer
Hình 2 : Giao dién chơi 2 người
2.2.3 Giao diện chơi voi bot
Hình 3 : Giao điện chơi với bot
14
Trang 152.2.4 Giao dién choi online
Long Phòng cờ
Hình 4 : Ciao điện chơi online
2.3 Thiết kế các thành phần ứng dụng
2.3.1 Thiét ké Activity chinh:
Đây là màn hình chính của ứng dụng, nơi người chơi có thê chọn các chế độ chơi Một MainActivity sẽ chứa các nút hoặc menu để chọn:
Chơi 2 người trên 1 màn hình
Chơi với bot
Chơi online
2.3.2 Thiết ké Activity cho ché d6 choi 2 người trên cùng màn hình:
Bàn cở: Sử dụng GridLayout hoặc Canvas để vẽ bàn cờ 8x8
Xử lý logic di chuyển quân: Thiết lập các thao tác chạm (touch events) để chọn quân cờ và di chuyên chúng đền vị trí mới
15
Trang 16Hién thi trạng thái trận đếu: Các thông báo (ví dụ như "Vua đang bi chiếu") và nút kết thúc trận đấu
2.3.3 Thiết kế Acfivify cho chế độ chơi với bot:
Bàn cờ và giao điện người dùng tương tự chế độ chơi 2 người
Logie xứ lý bot: Ap dung thuat toan Minimax cho bot, trong đó bot có thê đánh gia
va đưa ra các nước đi dựa trên chiến thuật Ở đây, cần thiết kế một lớp cho bot, với chức năng:
Tính toán nước ổi tốt nhất dựa trên thuật toán Minimax hoặc Alpha-Beta pruning
Điều khiên bot chọn các nước ổi và thực hiện chúng trên bản cờ
2.3.4 Thiết kế Activity cho chế độ chơi online:
Giao điện kết nối với Firebase: Ứng dụng sẽ sử dụng Firebase Realtime Database
hoặc Firebase Firestore để lưu trữ và cập nhật trạng thái bàn cờ theo thời gian thực Mỗi lần người chơi thực hiện nước ởi, đữ liệu được gửi lên Firebase, sau đó cập nhật cho cả hai người chơi
Tạo và tham gia phòng chơi (room): Thiết kế một giao diện cho phép người chơi tạo phòng mới hoặc tham gia phòng hiện có bằng cách nhập ID phòng Sử dụng Firebase để tạo một bảng đữ liệu lưu trữ danh sách các phòng đang hoạt động
Trạng thái kết nối: Xử lý các trường hợp kết nỗi bị mắt, người chơi thoát khỏi
phòng øiữa chừng và cập nhật lại s1ao diện khi có lỗi kết nói
2.3.5 Thiết kế các lớp đối tượng (Model classes):
Lớp ChessPiece: Lớp đại điện cho từng quân cờ, chứa các thuộc tính như loại cờ, vị trí hiện tại, và nước đi hợp lệ
Lớp ChessBoard: Lớp quản lý toàn bộ bàn cờ, với các phương thức kiểm tra tính hợp lệ của nước ởi, tính toán nước ổi hợp lệ cho từng quân cờ
16
Trang 17Lop Player: Dai dién cho người chơi, có thé la người dùng hoặc bot, với các thuộc tính như số điềm, các quân cờ dang nam g1ữ, và các hành động có thê thực hiện
2.3.6 Quan lp dit liéu voi Firebase:
Firebase Realtime Database: Su dung để lưu trữ trạng thái bàn cờ, điểm số, và các thông tin liên quan đến người chơi trong chế độ chơi online
Firebase Authemication: Đề người chơi có thể đăng nhập và lưu trữ thông tin cá
nhân, lịch sử trận đấu
2.4 Thiết kế cơ sở dữ liệu
Cơ sở đữ liệu FireBase (Realtime Database va Firestore): Firebase c6 hai loai co
so dir ligu chinh la Firebase Realtime Database va Firebase Firestore Day là những cơ
sở dữ liệu NoSQL cho phép lưu trữ và đồng bộ dữ liệu theo thời ø1an thực
Hình 5 : realtime database
2.5 Kết luận chương 2
Trong chương này, chúng ta đã tiễn hành phân tích và thiết kế toàn bộ các thành
phần chính của ứng dụng cờ vua trên nền tảng Android Studio Các chức năng quan trọng đã được đề cập bao gồm chơi cờ 2 người trên cùng một màn hình, chơi với bot thông minh, và chế độ chơi online với việc sử dụng Firebase để kết nối người chơi Bên cạnh đó, việc thiết kế giao dién, cầu trúc cơ sở dữ liệu, và các thành phần ứng dụng đã được xây dựng chi tiết, đảm bảo sự thuận tiện và dễ đàng khi sử dụng cho
17
Trang 18người dùng Những thiết kế này tạo tiền đề quan trọng cho việc triển khai và phát triển ứng dụng trong các giai đoạn tiếp theo, đảm bảo tính ôn định và trải nghiệm người dùng tốt
18