Chương 4: Thiết kế giao diện và xử lý - Thiết kế giao diện của ứng dụng Android và Winform - Mô tả xử lý bên trong các giao diện 5.. Kiểm thử màn hình Chơi game .... Kiểm thử màn hình
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
SVTH: NGUYỄN PHI KHÁNH MSSV: 15110232
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN PHI KHÁNH NGUYỄN MẠNH CƯỜNG : 15110174
: 15110232
Trang 3ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM
****** *******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ và tên Sinh viên 1 : Nguyễn Mạnh Cường MSSV 1: 15110174 Họ và tên Sinh viên 2 : Nguyễn Phi Khánh MSSV 2: 15110232 Ngành: Công nghệ Thông tin Tên đề tài: XÂY DỰNG GAME HỌC TIẾNG ANH TRÊN ANDROID Họ và tên Giáo viên hướng dẫn: Mai Tuấn Khôi NHẬN XÉT 1 Về nội dung đề tài khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm
4 Đề nghị cho bảo vệ hay không ?
5 Đánh giá loại :
6 Điểm :
Trang 4ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM
****** *******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ và tên Sinh viên 1 : Nguyễn Mạnh Cường MSSV 1: 15110174 Họ và tên Sinh viên 2 : Nguyễn Phi Khánh MSSV 2: 15110232 Ngành: Công nghệ Thông tin Tên đề tài: XÂY DỰNG GAME HỌC TIẾNG ANH TRÊN ANDROID Họ và tên Giáo viên phản biện: Nguyễn Trần Thi Văn NHẬN XÉT 1 Về nội dung đề tài khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm
4 Đề nghị cho bảo vệ hay không ? 5 Đánh giá loại : 6 Điểm : Tp Hồ Chí Minh, ngày 3 tháng 1 năm 2019 Giáo viên phản biện (Ký & ghi rõ họ tên)
Trang 5LỜI CẢM ƠN
Em xin chân thành cảm ơn khoa Công nghệ Thông tin trường Đại học Sư phạm Kỹ thuật TP.HCM cùng tất cả các thầy giáo, cô giáo đã tận tình giảng dạy và giúp đỡ chúng em trong suốt quá trình học tập, nghiên cứu Đặc biệt, Em xin bày tỏ lòng biết
ơn sâu sắc đến thầy Mai Tuấn Khôi - người đã trực tiếp giảng dạy và hướng dẫn tạo mọi điều kiện thuận lợi giúp đỡ em trong quá trình thực hiện đề tài Những vốn kiến thức được tiếp thu trong quá trình hưỡng dẫn và giúp đỡ của thầy không chỉ là nền tảng cho quá trình nghiên cứu khóa luận mà còn là hành trang quý báu để em bước vào đời một cách vững vàng và tự tin hơn
Em cũng xin chân thành cảm ơn bạn bè của em đang học cùng với em đã luôn động viên, khích lệ và tạo điều kiện giúp đỡ em trong suốt quá trình thực hiện để em có thể hoàn thành bài khóa luận tốt nghiệp một cách tốt nhất
Tuy nhóm đã có nhiều cố gắng, nhưng chắc chắn khóa luận của chúng em còn có rất nhiều thiếu sót Rất mong nhận được sự góp ý của thầy giáo, cô giáo và các bạn Cuối cùng em kính chúc quý thầy, cô trong Khoa Công nghệ Thông tin cũng như trong Trường Đại học Sư phạm Kỹ thuật TP.HCM dồi dào sức khỏe và thành công trong sự nghiệp cao quý của mình
Trang 6Trường ĐH Sư Phạm Kỹ Thuật TP.HCM
Khoa : CNTT
ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP
Họ và Tên SV thực hiện 1 : Nguyễn Mạnh Cường Mã Số SV : 15110174
Họ và Tên SV thực hiện 2 : Nguyễn Phi Khánh Mã Số SV : 15110232 Thời gian làm luận văn : từ : 05/03/2019 Đến : 14/07/2019 Chuyên ngành : Công nghệ phần mềm
Tên luận văn :Xây dựng game học tiếng anh trên Android
GV hướng dẫn : ThS Mai Tuấn Khôi
Nhiệm Vụ Của Luận Văn :
1 Tìm hiểu về lập trình Android sử dụng ngôn ngữ Java
2 Tìm hiểu và sử dụng nền tảng Firebase cho ứng dụng Android
3 Sử dụng Facebook Login SDK cho ứng dụng Android
4 Tìm hiểu Node.js và thư viện Socket.io để xây dựng server, xử lý thời gian thực và giao tiếp hai chiều giữa server và client
5 Tìm hiểu thư viện JavaFX để xây dựng ứng dụng Winform quản lý
6 Thực hiện theo các yêu cầu Use case của nhóm đã phân tích
7 Thiết kế giao diện ứng dụng Android và Winform
8 Code xử lý các yêu cầu Use case ứng với từng giao diện
9 Kiểm thử ứng dụng Android và Winform
10 Báo cáo đầy đủ các phần nội dung và trình bày theo yêu cầu của Khoa
11 Gặp và nộp đầy đủ các yêu cầu theo thông báo của Khoa và yêu cầu của giáo viên hướng dẫn
Trang 7Đề cương viết luận văn:
2.2 Mô tả công việc
3 Chương 3: Phân tích yêu cầu và thiết kế cơ sở dữ liệu 3.1 Mô hình hóa yêu cầu
3.2 Lược đồ ERD
3.3 Bảng mô tả thuộc tính
4 Chương 4: Thiết kế giao diện và xử lý
- Thiết kế giao diện của ứng dụng Android và Winform
- Mô tả xử lý bên trong các giao diện
5 Chương 5: Cài đặt
5.1 Ngôn ngữ lập trình
5.2 Sơ đồ lớp
6 Chương 6: Kiểm thử
Trang 84 Tài liệu tham khảo
[1] Bài viết “60+ Smartphone Statistics in 2019”: tác giả Deyan G, ngày đăng: ngày
28 tháng 3 năm 2019 Đường dẫn tới bài viết:
[7] Bài viết “Java Advantages and Disadvantages”: tác giả ADMIN, ngày đăng: ngày
23 tháng 7 năm 2015 Đường dẫn tới bài viết: advantages-and-disadvantages/
https://www.mindsmapped.com/java-[8] Bài viết “JAVAFX LÀ GÌ? GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH JAVAFX”: tác giả admin, ngày đăng: ngày 30 tháng 10 năm 2018 Đường dẫn tới bài viết:
https://teamvietdev.com/javafx-la-gi-gioi-thieu-ngon-ngu-lap-trinh-javafx/
[9] Bài viết “NodeJS là gì?”: tác giả TheHalfHeart, ngày đăng: ngày 23 tháng 2 năm
2016 Đường dẫn tới bài viết: https://freetuts.net/nodejs-la-gi-584.html
[10] Bài viết “Socket.IO”: nguồn Wikipedia Đường dẫn tới bài viết:
https://en.wikipedia.org/wiki/Socket.IO?fbclid=IwAR1cnSQZzTl6X9JPBg8UJANcp_tR_Ctum7d1xFr-hZKAzrgs68gQdB9HHy4
Trang 9KẾ HOẠCH THỰC HIỆN
1 5/3 – 10/3 - Gặp giảng viên hướng dẫn nhận yêu cầu
- Xác định tính cấp thiết, mục tiêu và kết cấu
- Khảo sát và phân tích hiện trạng
- Lập danh sách nhiệm vụ theo tuần và thời gian thực hiện
2 11/3 – 17/3 - Xác định yêu cầu, mô tả công việc
- Phác họa biểu mẫu
- Cài đặt các công cụ cần thiết, thiết lập môi trường
3 18/3 – 24/3 - Xác định yêu cầu, mô tả công việc
- Phác họa biểu mẫu
- Tìm hiểu lập trình Android sử dụng ngôn ngữ Java
- Tìm hiểu JavaFX
4 25/3 – 31/3 - Thiết kế giao diện ứng dụng Android
- Tìm hiểu Firebase
- Thiết kế cơ sở dữ liệu
5 1/4 -7/4 - Thiết kế giao diện ứng dụng Android
- Viết thuật toán tìm bộ từ
- Code chức năng chơi game
6 8/4 – 14/4 - Áp dụng Firebase vào trong Ứng dụng
- Code chức năng chơi game
- Code chứ năng cài đặt, đăng nhập facebook
Trang 109 29/4 – 5/5 - Code chức năng chơi game online
- Chỉnh sửa giao diện
- Code các chức năng trong phần cài đặt của ứng dụng Android
10 6/5 – 12/5 - Xây dựng server sử dụng Socket.io và NodeJS của
ứng dụng
- Code chức năng chơi game online
- Code chức năng thông báo, ngôn ngữ của ứng dụng Android
- Code chức năng quản lý tài khoản của ứng dụng Wiform
11 13/5 – 19/5 - Thiết kế giao diện, code chức năng xem nghĩa của
đáp án của ứng dụng Android
- Thiết kế giao diện, code chức năng quản lý nghĩa của ứng dụng Winfrom
- Chỉnh sửa các lỗi ở ứng dụng Android và Winfrom
12 20/5 – 26/5 - Code chức năng chơi game online của ứng dụng
Android
- Chỉnh sửa giao diện ứng dụng Android
- Chỉnh sửa server của ứng dụng
13 17/5 – 2/6 - Code chức năng quản lý thông báo của ứng dụng
Winform
- Sửa lỗi ở ứng dụng Winform
- Code chức năng thông báo của ứng dụng Android
- Sửa lỗi giao diện của ứng dụng Android
14 3/6 – 9/6 - Kiểm thử ứng dụng Winform
- Sửa lỗi ứng dụng Winform
- Sửa lỗi ứng dụng Android
15 10/6 – 16/6 - Kiểm thử Ứng dụng Android
- Sửa lỗi ứng dụng Android
- Chỉnh sửa theo yêu cầu
- Chỉnh sửa giao diện hai ứng dụng
Trang 1116 17/6 – 23/6 - Kiểm thử ứng dụng Android
- Sửa lỗi ứng dụng Android
- Chuẩn bị bài thuyết trình
17 24/6 – 20/6 - Hoàn thiện báo cáo
- Hoàn thiện bài thuyết trình
- Kiểm thử, sửa lỗi ứng dụng Android và Winform
18 1/7 – 7/7 - Chuẩn bị các yêu cầu từ Khoa, chỉnh sửa báo cáo
- Quay video demo
- Kiểm thử, sửa lỗi ứng dụng Android và Winform
19 8/7 – 14/7 - Chỉnh sửa báo cáo
- Kiểm thử ứng dụng, chỉnh sửa các lỗi của ứng dụng Android
- Chỉnh sửa theo yêu cầu
Ngày tháng năm 2019
Người viết đề cương
Trang 12
MỤC LỤC
PHẦN MỞ ĐẦU 1
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1
2 MỤC TIÊU 1
3 KẾT CẤU 2
PHẦN NỘI DUNG 3
CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG 3
1.1 HIỆN TRẠNG 3
1.2 KHẢO SÁT 3
1.2.1 Game Pressed For Words [3] 3
1.2.2 Game English Guess the Phrase [4] 6
1.2.3 Game Guess Hidden Word [5] 8
1.2.4 Game Let’s Guess A Word [6] 11
CHƯƠNG 2: XÁC ĐỊNH YÊU CẦU 14
2.1 USE CASE DIAGRAM 14
2.2 MÔ TẢ CÔNG VIỆC 16
2.2.1 User 16
2.2.2 Admin 29
CHƯƠNG 3: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 36
3.1 MÔ HÌNH HÓA YÊU CẦU 36
3.1.1 Nghiệp vụ Đăng nhập Facebook 36
3.1.2 Nghiệp vụ Đăng xuất 39
3.1.3 Nghiệp vụ Chơi game 40
3.1.4 Nghiệp vụ Xem xếp hạng tổng điểm 45
3.1.5 Nghiệp vụ Xem xếp hạng màn chơi 46
3.1.6 Nghiệp vụ Xem đáp án 48
Trang 133.1.8 Nghiệp vụ Xem hướng dẫn chơi game 51
3.1.9 Nghiệp vụ Cài đặt âm thanh 53
3.1.10 Nghiệp vụ Cài đặt ngôn ngữ 55
3.1.11 Nghiệp vụ Sửa thông tin cá nhân 56
3.1.12 Nghiệp vụ Xem thông báo 58
3.1.13 Nghiệp vụ Đăng nhập admin 60
3.1.14 Nghiệp vụ Sửa thời gian màn game 63
3.1.15 Nghiệp vụ Xóa màn game 64
3.1.16 Nghiệp vụ Tìm kiếm màn game 66
3.1.17 Nghiệp vụ Tìm kiếm User 67
3.1.18 Nghiệp vụ Xóa User 69
3.1.19 Nghiệp vụ Đổi mật khẩu 70
3.1.20 Nghiệp vụ Thêm thông báo 72
3.1.21 Nghiệp vụ Xóa thông báo 73
3.1.22 Nghiệp vụ Tìm kiếm thông báo 75
3.1.23 Nghiệp vụ Tham gia sảnh chờ 76
3.1.24 Nghiệp vụ Chơi game online 79
3.1.25 Nghiệp vụ Tạo bàn 81
3.1.26 Nghiệp vụ Tham gia bàn có sẵn 82
3.1.27 Nghiệp vụ Mời bạn 84
3.1.28 Nghiệp vụ Chơi lại game mới 85
Trang 143.3 BẢNG MÔ TẢ THUỘC TÍNH 92
3.3.1 SQLite 92
3.3.2 Firebase 93
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 97
4.1 MÀN HÌNH MAIN MENU 101
4.2 MÀN HÌNH CHƠI GAME 103
4.3 MÀN HÌNH ĐĂNG NHẬP FACEBOOK 106
4.4 MÀN HÌNH TẠM DỪNG CHƠI 111
4.5 MÀN HÌNH XEM KẾT QUẢ 113
4.6 MÀN HÌNH XEM BẢNG XẾP HẠNG 115
4.7 MÀN HÌNH XEM LẠI ĐÁP ÁN 117
4.8 MÀN HÌNH CÀI ĐẶT 118
4.9 MÀN HÌNH XEM THÔNG BÁO 121
4.10 MÀN HÌNH SỬA THÔNG TIN CÁ NHÂN 123
4.11 MÀN HÌNH ĐĂNG NHẬP ADMIN 125
4.12 MÀN HÌNH QUẢN LÝ USER 126
4.13 MÀN HÌNH ĐỔI MẬT KHẨU 132
4.14 MÀN HÌNH QUẢN LÝ THÔNG BÁO 134
4.15 MÀN HÌNH QUẢN LÝ DỮ LIỆU GAME 136
4.16 MÀN HÌNH THAM GIA SẢNH CHỜ 139
4.17 MÀN HÌNH TẠO BÀN VÀ THAM GIA BÀN 141
4.18 MÀN HÌNH MỜI BẠN 142
4.19 MÀN HÌNH CHƠI GAME ONLINE 144
4.20 MÀN HÌNH XEM KẾT QUẢ 148
4.21 MÀN HÌNH CHỈNH SỬA TỪ VỰNG 149
4.22 MÀN HÌNH XEM NGHĨA TỪ VỰNG 151
Trang 155.1 NGÔN NGỮ LẬP TRÌNH 153
5.1.1 Ngôn ngữ Java [7] 153
5.1.2 Thư viện JavaFX [8] 153
5.1.3 Node.js và Socket.io 154
5.2 SƠ ĐỒ LỚP 155
5.2.1 Sơ đồ lớp cho ứng dụng quản lý 155
5.2.2 Sơ đồ lớp cho ứng dụng Android 162
CHƯƠNG 6: KIỂM THỬ 190
6.1 KIỂM THỬ ỨNG DỤNG GAME 190
6.1.1 Kiểm thử màn hình Main menu 190
6.1.2 Kiểm thử màn hình Chơi game 191
6.1.3 Kiểm thử Màn hình Tạm dừng chơi 193
6.1.4 Kiểm thử màn hình Cài đặt 195
6.1.5 Kiểm thử màn hình Tham gia sảnh chờ 197
6.1.6 Kiểm thử màn hình chơi game online 198
6.2 KIỂM THỬ ỨNG DỤNG ADMIN 199
6.2.1 Kiểm thử Đăng nhập 199
6.2.2 Kiểm thử Đổi mật khẩu 200
6.2.3 Kiểm thử màn hình Quản lý User 201
6.2.4 Kiểm thử màn hình Quản lý dữ liệu game 202
6.2.5 Kiểm thử màn hình Quản lý thông báo 204
Trang 16DANH MỤC BẢNG
Bảng 2.1: Bảng yêu cầu chức năng nghiệp vụ của User 16
Bảng 2.2: Bảng quy định / công thức liên quan của User 17
Bảng 2.3: Bảng yêu cầu chức năng nghiệp vụ của Admin 29
Bảng 2.4: Bảng quy định / công thức liên quan của Admin 30
Bảng 3.1: Bảng mô tả thuộc tính bảng table_user_info 92
Bảng 3.2: Bảng mô tả thuộc tính bảng table_user_config 92
Bảng 3.3: Bảng mô tả thuộc tính bảng table_game_data 93
Bảng 3.4: Bảng mô tả thuộc tính node user 94
Bảng 3.5: Bảng mô tả thuộc tính node gameData 95
Bảng 3.6: Bảng mô tả thuộc tính node ranking 96
Bảng 4.1: Các đối tƣợng trong giao diện Main menu 101
Bảng 4.2: Mô tả xử lý trong giao diện Main Menu 102
Bảng 4.3: Các đối tƣợng trong giao diện Chơi game 103
Bảng 4.4: Mô tả xử lý trong giao diện Chơi Game 104
Bảng 4.5: Các đối tƣợng trong giao diện Đi đến đăng nhập Facebook 106
Bảng 4.6: Các đối tƣợng trong giao diện Đăng nhập Facebook 107
Bảng 4.7: Các đối tƣợng trong giao diện Chọn tiếp tục đăng nhập Facebook 108
Bảng 4.8: Các đối tƣợng trong giao diện Chọn khôi phục đăng nhập Facebook 109
Bảng 4.9: Mô tả xử lý trong giao diện Đăng nhập Facebook 109
Bảng 4.10: Các đối tƣợng trong giao diện Tạm dừng chơi 111
Bảng 4.11: Mô tả xử lý trong giao diện Tạm dừng chơi 112
Bảng 4.12: Các thành phần trong giao diện Xem kết quả 113
Bảng 4.13: Mô tả xử lý trong giao diện Xem kết quả 114
Bảng 4.14: Các thành phần trong giao diện Xem bảng xếp hạng 115
Bảng 4.15: Mô tả xử lý trong giao diện Xem bảng xếp hạng 116
Bảng 4.16: Các thành phần trong giao diện Xem lại đáp án 117
Bảng 4.17: Mô tả xử lý trong giao diện Xem lại đáp án 118
Bảng 4.18: Các thành phần trong giao diện Cài đặt 119
Bảng 4.19: Mô tả xử lý trong giao diện Cài đặt 120
Bảng 4.20: Các thành phần trong giao diện Xem thông báo 121
Trang 17Bảng 4.21: Các thành phần trong giao diện Xem chi tiết thông báo 122
Bảng 4.22: Mô tả xử lý trong giao diện Xem thông báo 122
Bảng 4.23: Các thành phần trong giao diện Sửa thông tin cá nhân 124
Bảng 4.24: Mô tả xử lý trong giao diện Sửa thông tin cá nhân 124
Bảng 4.25: Các thành phần trong giao diện Đăng nhập admin 125
Bảng 4.26: Mô tả xử lý trong giao diện Đăng nhập admin 126
Bảng 4.27: Các thành phần trong giao diện Quản lý User 128
Bảng 4.28: Các thành phần trong giao diện Chọn cột cần lọc dữ liệu 130
Bảng 4.29: Mô tả xử lý trong giao diện Quản lý User 130
Bảng 4.30: Các thành phần trong giao diện Đổi mật khẩu 133
Bảng 4.31: Mô tả xử lý trong giao diện Đổi mật khẩu 133
Bảng 4.32: Các thành phần trong giao diện Quản lý thông báo 134
Bảng 4.33: Mô tả xử lý trong giao diện Quản lý thông báo 135
Bảng 4.34: Các thành phần giao diện Quản lý dữ liệu game 137
Bảng 4.35: Mô tả xử lý trong giao diện Quản lý dữ liệu game 138
Bảng 4.36: Các thành phần giao diện Tham gia sảnh chờ 139
Bảng 4.37: Các thành phần giao diện Tham gia sảnh chờ 140
Bảng 4.38: Các thành phần giao diện Tạo bàn và Tham gia bàn 141
Bảng 4.39: Mô tả xử lý trong giao diện Tạo bàn và Tham gia bàn 142
Bảng 4.40: Các thành phần giao diện Mời bạn 143
Bảng 4.41: Mô tả xử lý trong giao diện Mời bạn 143
Bảng 4.42: Các thành phần giao diện Chơi game online 144
Bảng 4.43: Mô tả xử lý trong giao diện chơi game online 145
Bảng 4.44: Các thành phần giao diện Xem kết quả 148
Bảng 4.45: Mô tả xử lý trong giao diện Xem kết quả 149
Trang 18Bảng 5.4: Mô tả các phương thức trong package Activities 167
Bảng 5.5: Mô tả các thuộc tính trong package Daos 171
Bảng 5.6: Mô tả các phương thức trong package Daos 173
Bảng 5.7: Mô tả các thuộc tính trong package Models 175
Bảng 5.8: Mô tả các phương thức trong package Models 176
Bảng 5.9: Mô tả thuộc tính trong package Utils 177
Bảng 5.10: Mô tả các phương thức trong package Utils 177
Bảng 5.11: Mô tả các thuộc tính trong package View 178
Bảng 5.12: Mô tả các phương thức trong package View 180
Bảng 5.13: Mô tả thuộc tính trong module chơi online 184
Bảng 5.14: Mô tả các lớp trong sơ đồ gói ứng dụng Android 189
Bảng 6.1: Test case màn hình Main menu 190
Bảng 6.2: Test case màn hình Chơi game 191
Bảng 6.3: Test case màn hình Tạm dừng chơi 193
Bảng 6.4: Test case màn hình Cài đặt 195
Bảng 6.5: Test case màn hình Tham gia sảnh chờ 197
Bảng 6.6: Kiểm thử màn hình Chơi game online 198
Bảng 6.7: Test case chức năng Đăng nhập 199
Bảng 6.8: Test case chức năng Đổi mật khẩu 200
Bảng 6.9: Test case màn hình Quản lý User 201
Bảng 6.10: Test case màn hình Quản lý dữ liệu game 202
Bảng 6.11: Test case màn hình Quản lý thông báo 204
Trang 19DANH MỤC HÌNH ẢNH
Hình 1.1: Màn hình chính game Press For Words 3
Hình 1.2: Màn hình chơi game Press For Words 4
Hình 1.3: Màn hình kết thúc game Press For Words 4
Hình 1.4: Màn hình tạm dừng game Press For Words 5
Hình 1.5: Màn hình chính game English Guess the Phrase 6
Hình 1.6: Màn hình chơi game English Guess the Phrase 6
Hình 1.7: Màn hình kết thúc game English Guess the Phrase 7
Hình 1.8: Màn hình cài đặt game English Guess the Phrase 7
Hình 1.9: Màn hình chính game Guess Hidden Word 8
Hình 1.10: Màn hình chọn màn game Guess Hidden Word 9
Hình 1.11: Màn hình chơi game Guess Hidden Word 9
Hình 1.12: Màn hình kết thúc game Guess Hidden Word 10
Hình 1.13: Màn hình cài đặt game Guess Hidden Word 10
Hình 1.14: Màn hình chính game Let’s Guess A Word 11
Hình 1.15: Màn hình chọn chế độ chơi game Let’s Guess A Word 12
Hình 1.16: Màn hình chọn màn chơi game Let’s Guess A Word 12
Hình 1.17: Màn hình chơi game Let’s Guess A Word 13
Hình 1.18: Màn hình kết thúc màn game Let’s Guess A Word 13
Hình 2.1: Sơ đồ Use case ứng dụng 14
Hình 2.2: Sơ đồ Use case Chơi game online 15
Hình 2.3: Biểu mẫu Đăng nhập bằng Facebook 23
Hình 2.4: Biểu mẫu Chơi game 24
Hình 2.5: Biểu mẫu Tạm dừng chơi 24
Hình 2.6: Biểu mẫu Xem kết quả chơi 25
Trang 20Hình 2.14: Biểu mẫu bàn chờ 29
Hình 2.15: Biểu mẫu Đăng nhập admin 33
Hình 2.16: Biểu mẫu Quản lý User 33
Hình 2.17: Biểu mẫu Quản lý dữ liệu game 34
Hình 2.18: Biểu mẫu Quản lý thông báo 34
Hình 2.19: Biểu mẫu Đổi mật khẩu 35
Hình 2.20: Biểu mẫu Xác nhận 35
Hình 3.1: Sơ đồ luồng dữ liệu nghiệp vụ Đăng nhập Facebook 36
Hình 3.2: Lƣợc đồ tuần tự nghiệp vụ Đăng nhập Facebook 37
Hình 3.3: Node User với tính đúng đắn 38
Hình 3.4: Bảng thông tin User với tính đúng đắn 38
Hình 3.5: Node User với tính tiến hóa 38
Hình 3.6: Bảng thông tin User với tính tiến hóa 39
Hình 3.7: Sơ đồ logic với node User 39
Hình 3.8: Sơ đồ logic với bảng thông tin User 39
Hình 3.9: Sơ đồ luồng dữ liệu nghiệp vụ Đăng xuất 39
Hình 3.10: Lƣợc đồ tuần tự nghiệp vụ Đăng xuất 40
Hình 3.11: Sơ đồ luồng dữ liệu nghiệp vụ Chơi game 40
Hình 3.12: Lƣợc đồ tuần tự nghiệp vụ Chơi game 42
Hình 3.13: Node ranking và node gameData với tính đúng đắn 43
Hình 3.14: Bảng dữ liệu game với tính đúng đắn 43
Hình 3.15: Node ranking và node gameData với tính tiến hóa 44
Hình 3.16: Bảng dữ liệu game với tính tiến hóa 44
Hình 3.17: Sơ đồ logic với node ranking và gameData 44
Hình 3.18: Sơ đồ logic với bảng dữ liệu game 44
Hình 3.19: Sơ đồ luồng dữ liệu nghiệp vụ Xem xếp hạng tổng điểm 45
Hình 3.20: Lƣợc đồ tuần tự nghiệp vụ Xem xếp hạng tổng điểm 46
Hình 3.21: Sơ đồ luồng dữ liệu Nghiệp vụ Xem xếp hạng màn chơi 46
Hình 3.22: Lƣợc đồ tuần tự nghiệp vụ Xem xếp hạng màn chơi 47
Hình 3.23: Sơ đồ luồng dữ liệu nghiệp vụ Xem đáp án 48
Hình 3.24: Lƣợc đồ tuần tự Xem đáp án từ danh sách xếp hạng 49
Hình 3.25: Lƣợc đồ tuần tự Xem đáp án của mình sau khi chơi 49
Trang 21Hình 3.26: Sơ đồ luồng dữ liệu Nghiệp vụ Tạm dừng 50
Hình 3.27: Lược đồ tuần tự nghiệp vụ Tạm dừng 51
Hình 3.28: Sơ đồ luồng dữ liệu nghiệp vụ Xem hướng dẫn chơi game 51
Hình 3.29: Lược đồ tuần tự nghiệp vụ Xem hướng dẫn chơi game 52
Hình 3.30: Sơ đồ luồng dữ liệu nghiệp vụ Cài đặt âm thanh 53
Hình 3.31: Sơ đồ tuần tự nghiệp vụ Cài đặt âm thanh 54
Hình 3.32: Bảng cài đặt âm thanh với tính đúng đắn 54
Hình 3.33: Bảng cài đặt âm thanh với tính tiến hóa 55
Hình 3.34: Sơ đồ logic với bảng cài đặt âm thanh 55
Hình 3.35: Sơ đồ luồng dữ liệu nghiệp vụ Cài đặt ngôn ngữ 55
Hình 3.36: Lược đồ tuần tự nghiệp vụ Cài đặt ngôn ngữ 56
Hình 3.37: Sơ đồ luồng dữ liệu nghiệp vụ Sửa thông tin cá nhân 56
Hình 3.38: Lược đồ tuần tự nghiệp vụ sửa thông tin cá nhân 57
Hình 3.39: Sơ đồ luồng dữ liệu nghiệp vụ Xem thông báo 58
Hình 3.40: Lược đồ tuần tự nghiệp vụ Xem thông báo 59
Hình 3.41: Node notifications với tính đúng đắn 59
Hình 3.42: Node notifications với tính tiến hóa 60
Hình 3.43: Sơ đồ logic với node notifications 60
Hình 3.44: Sơ đồ luồng dữ liệu nghiệp vụ Đăng nhập admin 60
Hình 3.45: Lược đồ tuần tự nghiệp vụ Đăng nhập admin 61
Hình 3.46: Node admin với tính đúng đắn 62
Hình 3.47: Node admin với tính tiến hóa 62
Hình 3.48: Sơ đồ logic với node admin 62
Hình 3.49: Sơ đồ luồng dữ liệu nghiệp vụ Sửa thời gian màn game 63
Hình 3.50: Lược đồ tuần tự nghiệp vụ Sửa thời gian màn game 64
Trang 22Hình 3.58: Lược đồ tuần tự nghiệp vụ Xóa User 70 Hình 3.59: Sơ đồ luồng dữ liệu nghiệp vụ Đổi mật khẩu 70 Hình 3.60: Lược đồ tuần tự nghiệp vụ Đổi mật khẩu 71 Hình 3.61: Sơ đồ luồng dữ liệu Thêm thông báo 72 Hình 3.62: Lược đồ tuần tự nghiệp vụ Thêm thông báo 73 Hình 3.63: Sơ đồ luồng dữ liệu nghiệp vụ Xóa thông báo 73 Hình 3.64: Lược đồ tuần tự nghiệp vụ Xóa thông báo 74 Hình 3.65: Sơ đồ luồng dữ liệu nghiệp vụ Tìm kiếm thông báo 75 Hình 3.66: Lược đồ tuần tự nghiệp vụ Tìm kiếm thông báo 76 Hình 3.67: Sơ đồ luồng dữ liệu nghiệp vụ Tham gia sảnh chờ 76 Hình 3.68: Lượt đồ tuần tự nghiệp vụ Tham gia sảnh chờ 77 Hình 3.69: Sơ đồ luồng dữ liệu nghiệp vụ Chơi game online 79 Hình 3.70: Lược đồ tuần tự nghiệp vụ Chơi game online 80 Hình 3.71: Sơ đồ luồng dữ liệu nghiệp vụ Tạo bàn 81 Hình 3.72: Lược đồ tuần tự nghiệp vụ Tạo bàn 82 Hình 3.73: Sơ đồ luồng dữ liệu nghiệp vụ Tham gia bàn có sẵn 83 Hình 3.74: Lược đồ tuần tự nghiệp vụ Tham gia bàn có sẵn 83 Hình 3.75: Sơ đồ luồng dữ liệu nghiệp vụ Mời bạn 84 Hình 3.76: Sơ đồ luồng dữ liệu nghiệp vụ Mời bạn 85 Hình 3.77: Sơ đồ luồng dữ liệu nghiệp vụ Chơi lại game mới 85 Hình 3.78: Lược đồ tuần tự nghiệp vụ Chơi lại game mới 86 Hình 3.79: Sơ đồ luồng dữ liệu nghiệp vụ Xem tiến độ của người chơi khác 87 Hình 3.80: Sơ đồ luồng dữ liệu nghiệp vụ Xem tiến độ của người chơi khác 88 Hình 3.81: Sơ đồ luồng dữ liệu nghiệp vụ Xem nghĩa của đáp án 88 Hình 3.82: Lược đồ tuần tự nghiệp vụ Xem nghĩa của đáp án 89 Hình 3.83: Lược đồ ERD cho SQLite 91 Hình 3.84: Lược đồ ERD tượng trưng cho Firebase 91 Hình 3.85: Cấu trúc mẫu node users 93 Hình 3.86: Cấu trúc mẫu của node gameData 95 Hình 3.87: Cấu trúc mẫu node ranking 96 Hình 4.1: Giao diện Main menu 101 Hình 4.2: Giao diện Chơi Game 103
Trang 23Hình 4.3: Giao diện Đi đến đăng nhập Facebook 106 Hình 4.4: Giao diện Đăng nhập Facebook 107 Hình 4.5: Giao diện Chọn tiếp tục đăng nhập Facebook 108 Hình 4.6: Giao diện Chọn khôi phục đăng nhập Facebook 109 Hình 4.7: Giao diện Tạm dừng chơi 111 Hình 4.8: Giao diện Xem kết quả 113 Hình 4.9: Giao diện Xem bảng xếp hạng 115 Hình 4.10: Giao diện Xem lại đáp án 117 Hình 4.11: Giao diện Cài đặt 118 Hình 4.12: Giao diện Xem thông báo 121 Hình 4.13: Giao diện Xem chi tiết thông báo 122 Hình 4.14: Giao diện Sửa thông tin cá nhân 123 Hình 4.15: Giao diện Đăng nhập admin 125 Hình 4.16: Giao diện Quản lý User 126 Hình 4.17: Giao diện tìm User với điều kiện khoản số 127 Hình 4.18: Giao diện tìm User với điều kiện khoản ngày 127 Hình 4.19: Giao diện chọn cột cần lọc dữ liệu 129 Hình 4.20: Giao diện Đổi mật khẩu 132 Hình 4.21: Giao diện Quản lý thông báo 134 Hình 4.22: Giao diện Quản lý dữ liệu game 136 Hình 4.23: Giao diện Tham gia sảnh chờ 139 Hình 4.24: Giao diện Tạo bàn và Tham gia bàn 141 Hình 4.25: Giao diện Mời bạn 142 Hình 4.26: Giao diện Chơi game online 144 Hình 4.27: Giao diện Xem kết quả 148
Trang 24Hình 5.6: Sơ đồ lớp package View của ứng dụng Android 178 Hình 5.7: Sơ đồ lớp module chơi online của ứng dụng Android 183 Hình 5.8: Mô tả các phương thức trong module chơi online 187 Hình 5.9: Sơ đồ gói của ứng dụng Android 189
Trang 25PHẦN MỞ ĐẦU
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Smartphone sử dụng hệ điều hành Android đang phát triển nhanh chóng và trở nên phổ biến trên toàn thế giới Đầu năm 2019, thiết bị sử dụng hệ điều hành Android chiếm 81.7% trong tổng số smartphone [1] Theo phân tích, chơi game là một trong những hành vi phổ biến nhất của người sở hữu Smartphone chỉ xếp sau mạng xã hội và các ứng dụng nhắn tin trực tuyến [2] Mặc khác, tiếng Anh ngày càng trở nên quan trọng trong đời sống xã hội hiện nay và không thể thiếu ở mỗi cá nhân
Nắm bắt được nhu cầu và xu hướng hiện nay, nhóm chúng em quyết định chọn đề tài “Xây dựng game học tiếng anh trên Android” cho khóa luận tốt nghiệp
2 MỤC TIÊU
- Tìm hiểu hững kiến thức liên quan đến đề tài:
Sử dụng Firebase cho ứng dụng Android
Sử dụng thư viện JavaFX trong xây dựng ứng dụng Winform
Sử dụng Facebook Login SDK cho đăng nhập trên ứng dụng Android
Sử dụng Node.js để xây dựng server cho ứng dụng
Sử dụng thư viên Socket.io để xử lý thời gian thực và giao tiếp hai chiều giữa server và client của ứng dụng
- Xây dựng dựng game học tiếng Anh trên Android với những chức năng:
Chơi game bằng cách tìm những từ tiếng Anh với 6 ký tự cho trước
Chơi online với người chơi khác
Xem nghĩa các từ tiếng anh có trong đáp án của màn chơi
Lưu lại kết quả chơi bằng cách đăng nhập Facebook trên ứng dụng
Xem bảng xếp hạng thành tích và xem đáp án những người chơi khác đã trả lời
Trang 26 Thay đổi mật khẩu đăng nhập cho mục đích bảo mật
3 KẾT CẤU
Kết cấu khóa luận bao gồm những chương sau:
- Chương 1: Khảo sát hiện trạng
- Chương 2: Xác định yêu cầu
- Chương 3: Pân tích yêu cầu và thiết kế cơ sở dữ liệu
- Chương 4: Thiết kế giao diện và xử lý
- Chương 5: Cài đặt
- Chương 6: Kiểm thử
- Kết luận
Trang 27PHẦN NỘI DUNG CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG 1.1 HIỆN TRẠNG
Hiện nay, có rất nhiều game hỗ trợ học tiếng anh trên nền tảng Android Các ứng dụng chủ yếu ôn luyện về từ vựng, về khả năng đọc, ghi Các ứng dụng này có cấu trúc đơn giản, dễ thao tác, giao diện thân thiện với người dùng
1.2 KHẢO SÁT
1.2.1 Game Pressed For Words [3]
Hình 1.1: Màn hình chính game Press For Words
Trang 28Hình 1.2: Màn hình chơi game Press For Words
Hình 1.3: Màn hình kết thúc game Press For Words
Trang 29Hình 1.4: Màn hình tạm dừng game Press For Words
- Ưu điểm:
+ Giao diện đơn giản, dễ thao tác
+ Có phần cài đặt để người dùng tùy chỉnh các chức năng hệ thống
+ Có bảng xếp hạng, lưu điểm người dùng
+ Có hiển thị kết quả sau khi chơi cho người dùng biết được các chữ tiếng Anh còn thiếu
- Nhược điểm:
+ Phần đồ họa chưa được chú trọng
+ Xem xếp hạng chưa được tích hợp cùng ứng dụng, người dùng phải dùng trình duyệt
Trang 301.2.2 Game English Guess the Phrase [4]
Hình 1.5: Màn hình chính game English Guess the Phrase
Hình 1.6: Màn hình chơi game English Guess the Phrase
Trang 31Hình 1.7: Màn hình kết thúc game English Guess the Phrase
Trang 32- Ưu điểm:
+ Giao diện đơn giản, màu sắc hài hòa, vừa mắt, dễ thao tác
+ Có phần cài đặt để người dùng tùy chỉnh các chức năng hệ thống
+ Có hiển thị kết quả sau khi chơi cho người dùng biết được các chữ tiếng Anh còn thiếu
+ Độ khó được chia theo nhiều mức
- Nhược điểm:
+ Không giới hạn ký tự nên việc đoán ra được từ khóa của game khá khó + Xem xếp hạng chưa được tích hợp cùng ứng dụng, người dùng phải dùng trình duyệt
+ Không có phần hướng dẫn chơi game
1.2.3 Game Guess Hidden Word [5]
Hình 1.9: Màn hình chính game Guess Hidden Word
Trang 33Hình 1.10: Màn hình chọn màn game Guess Hidden Word
Trang 34Hình 1.12: Màn hình kết thúc game Guess Hidden Word
Hình 1.13: Màn hình cài đặt game Guess Hidden Word
Trang 35- Ưu điểm:
+ Giao diện đơn giản, màu sắc hài hòa, vừa mắt, dễ thao tác
+ Có phần cài đặt để người dùng tùy chỉnh các chức năng hệ thống + Có hướng dẫn chơi game
+ Có hiệu ứng hình ảnh
+ Độ khó được chia theo màn chơi
- Nhược điểm:
+ Không có chức năng xem lại đáp án
+ Không giới hạn về thời gian chơi mỗi màn
1.2.4 Game Let’s Guess A Word [6]
Hình 1.14: Màn hình chính game Let’s Guess A Word
Trang 36Hình 1.15: Màn hình chọn chế độ chơi game Let’s Guess A Word
Hình 1.16: Màn hình chọn màn chơi game Let’s Guess A Word
Trang 37Hình 1.17: Màn hình chơi game Let’s Guess A Word
Hình 1.18: Màn hình kết thúc màn game Let’s Guess A Word
- Ưu điểm:
+ Giao diện đơn giản, vừa mắt, dễ thao tác
+ Có hướng dẫn chơi game
+ Có hiệu ứng hình ảnh
Trang 38CHƯƠNG 2: XÁC ĐỊNH YÊU CẦU 2.1 USE CASE DIAGRAM
Hình 2.1: Sơ đồ Use case ứng dụng
Trang 39Hình 2.2: Sơ đồ Use case Chơi game online
Trang 402.2 MÔ TẢ CÔNG VIỆC
2.2.1 User
2.2.1.1 Bảng yêu cầu chức năng nghiệp vụ
Bảng 2.1: Bảng yêu cầu chức năng nghiệp vụ của User
việc
Quy định / Công thức liên quan
Biểu mẫu liên quan
Ghi chú
1 Đăng nhập bằng
Lưu trữ QĐ_User_Login BM_User_Login
3 Chơi game Lưu trữ,
truy xuất, tính toán
QĐ_Play_Game BM_Play_Game
4 Tạm dừng chơi Lưu trữ QĐ_Pause_Game BM_Pause_Game
5 Xem kết quả chơi Lưu trữ,
10 Sửa thông tin cá
nhân
Lưu trữ QĐ_Setting
_Profile
BM_Setting _Profile