Tải bản đầy đủ (.docx) (51 trang)

BÁO CÁO THỰC TẬP (full code + báo cáo): Xây dụng tiện ích trò chơi giải trí trên hệ điều hành android - [9 điểm]

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.95 MB, 51 trang )

[source code + apk mình để ý cuối
trang nha]
LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ lòng biết ơn
đến tất cả các cá nhân và tổ chức đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốt quá trình học tập
và nghiên cứu đề tài này. Trong suốt thời gian từ khi bắt đầu học tập tại trường đến nay, em đã
nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn bè.
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở Khoa Công nghệ thông tin
– Trường Đại học Đại học công nghệ thông tin và truyền thông đã truyền đạt vốn kiến thức quý
báu cho chúng em trong suốt thời gian học tập tại trường. Nhờ có những lời hướng dẫn, dạy bảo
của các thầy cô nên đề tài nghiên cứu của em mới có thể hoàn thiện tốt đẹp.
Một lần nữa, em xin chân thành cảm ơn thầy ………………người đã trực tiếp giúp đỡ,
quan tâm, hướng dẫn em hoàn thành tốt bài báo cáo này trong thời gian qua.
Bước đầu đi vào thực tế của em còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi những
thiếu sót , em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô về đề tài
“XÂY DỰNG APP TIỆN ÍCH TRÒ CHƠI GIẢI TRÍ OFFLINE TRÊN ANDROID” để kiến thức
của em trong lĩnh vực này được hoàn thiện hơn đồng thời có điều kiện bổ sung, nâng cao ý thức
của mình.

1|Page


MỤC LỤC

LỜI CẢM ƠN..............................................................................................................1
MỤC LỤC....................................................................................................................2
CHƯƠNG 1: TỔNG QUAN VỀ ANDROID, JAVA, XML, QSLite.........................3
1.1. Tổng Quan về Android......................................................................................3
*) Android là gì?....................................................................................................4
*) Tại sao chúng ta nên sử dụng Android ?..........................................................5
*) Các tính năng của Android...............................................................................5


*) Ứng dụng Android.............................................................................................7
1.2 Tổng quan về Java..............................................................................................8
+) Giới thiệu về Java..............................................................................................8
+) Ứng dụng của Java...........................................................................................8
*) Những đặc điểm cơ bản của Java....................................................................8
*) Biến trong java..................................................................................................9
*) Kiểu dữ liệu trong Java..........................................................................................9
*) Toán tử trong Java................................................................................................9
1.3. Tổng quan về XML..........................................................................................10
*) Giới thiệu về XML...........................................................................................10
*) Đăc điểm XML.................................................................................................10
*) Ưu nhược điểm XML.......................................................................................11
*) Thẻ trong XML....................................................................................................11
1.4. Tổng quan về SQLite.......................................................................................12
*) Giới thiệu về SQLite.......................................................................................12
*) Tại sao lại là SQLite?......................................................................................12
*) Lịch sử tóm tắt của SQLite..............................................................................13
2|Page


*) Tại sao nên sử dụng SQLite?.................................................................................13
CHƯƠNG 2: KHẢO SÁT, PHÂN TÍCH, THIẾT KẾ ỨNG DỤNG....................14
2.1. Phát biểu bài toán............................................................................................14
2.2. Phân tích ứng dụng.........................................................................................14
2.2.1. Chức năng chính của ứng dụng................................................................14
2.2.2. Các yêu cầu đặt ra cho ứng dụng..............................................................14
2.2.3. Môi trường thực hiện.................................................................................14
2.2.4. Các trò chơi trong ứng dụng.....................................................................14
2.2.5. Biểu đồ User case.......................................................................................16
2.3. Mô tả thiết kế ứng dụng.................................................................................23

2.3.1. Sơ đồ ứng dụng..........................................................................................23
2.3.2 Nhánh sơ đồ “Người dùng”.......................................................................24
2.3.3. “Nhánh sơ đồ “Mở rộng”..........................................................................27
2.3.4 Nhánh sơ đồ “Trò chơi”.............................................................................27
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG..................................................................35
3.1. Xây dựng cơ sở dữ liệu....................................................................................35
3.1.1. Bảng SAVEGAME2048.............................................................................35
3.1.2. Bảng LULDIEM........................................................................................35
3.1.3. Bảng CAIDAT............................................................................................36
3.2. Xây dựng giao diện ứng dụng.........................................................................36
3.2.1. Giao diện màn hình “Người dùng”...........................................................36
3.2.2. Giao diện màn hình “Mở rộng”................................................................38
3.2.3. Giao diện màn hình “Trò chơi”................................................................39
KẾT LUẬN................................................................................................................48
TÀI LIỆU THAM KHẢO.........................................................................................49

3|Page


CHƯƠNG 1: TỔNG QUAN VỀ ANDROID, JAVA, XML, QSLite
1.1.

Tổng Quan về Android

*) Android là gì?
Android là một mã nguồn mở và dựa trên hệ điều hành Linux, chạy trên các thiết bị di động như
điện thoại thông minh và máy tính bảng. Android được phát triển bởi Open Handset Alliance,
dẫn đầu bởi Google, và các công ty khác.
Android cung cấp một phương pháp tiếp cận thống nhất để lập trình ứng dụng cho các thiết bị di
động, nghĩa là các lập trình viên chỉ cần lập trình cho Android, và các ứng dụng của họ sẽ có thể

chạy trên các thiết bị khác nhau được hỗ trợ bởi Android.
Các phiên bản beta đầu tiên của Software Development Kit Android (SDK) được phát hành bởi
Google trong năm 2007 trong khi đó phiên bản thương mại đầu tiên, Android 1.0, được phát
hành vào tháng 9 năm 2008.
Ngày 27 tháng 6 năm 2012, tại hội nghị Google I / O, Google đã công bố phiên bản Android tiếp
theo, 4.1 Jelly Bean. Jelly Bean là một bản cập nhật gia tăng, với mục đích chính của việc cải
thiện giao diện người dùng, cả về tính năng và hiệu suất.
Mã nguồn của Android được phát hành theo giấy phép phần mềm tự do và nguồn mở. Google
công khai hầu hết các mã theo giấy phép phiên bản Apache 2.0 và phần còn lại, Linux kernel,
theo giấy phép phiên bản GNU General Public 2.

4|Page


*) Tại sao chúng ta nên sử dụng Android ?

Open Soure: Mã nguồn mởLarger Developer and Community Reach: Có những lập trình viên và
cộng đồng phát triển lớnIncreased marketing: phát triển thương mại
Inter app integration: ứng dụng hội nhập quốc tế
Reduce cost of development: giảm chi phí phát triển
Higher Success Ratio: Tỷ lệ thành công cao hơn
Rich development Environment:Môi trường phát triển đa dạng

*) Các tính năng của Android

Android là một hệ điều hành mạnh cạnh tranh với Apple 4GS và hỗ trợ các tính năng tuyệt vời.
Một phần trong số đó được liệt kê dưới đây –
STT Tính năng & Mô tả
5|Page



Giao diện người dùng đẹp
1

2

3

4

5

6

7

8

9

Màn hình cơ bản hệ điều hành Android cung cấp một giao diện người dùng đẹp và trực
quan.
Kết nối
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and
WiMAX.
Lưu trữ
SQLite, một cơ sở dữ liệu quan hệ nhẹ, được sử dụng cho mục đích lưu trữ dữ liệu.
Hỗ trợ phương tiện truyền thông
H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI,
Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.

Tin nhắn
SMS and MMS
Trình duyệt web
Dựa vào cơ chế WebKit mã nguồn mở, kết hợp với công cụ V8 JavaScript của Chrome
hỗ trợ HTML5 và CSS3.
Cảm ứng đa điểm
Android có hỗ trợ cho cảm ứng đa điểm mà ban đầu đã được thực hiện có sẵn trong
điện thoại như HTC Hero.
Multi-tasking
Người dùng có thể nhảy từ một nhiệm vụ nàyđến nhiệm vụ khác và cùng một thời
gian, các ứng dụng khác nhau có thể chạy đồng thời.
Resizable widgets
6|Page


Widget là thay đổi kích thước, vì vậy người dùng có thể mở rộng chúng để hiển thị nội
dung nhiều hơn hoặc thu nhỏ chúng để tiết kiệm không gian.

10

11

12

13

Đa ngôn ngữ
Hỗ trợ thư mục đơn và văn bản hai chiều.
GCM
Google Cloud Messaging (GCM) là một dịch vụ cho phép các nhà phát triển gửi tin

nhắn dữ liệu lên user của họ trên các thiết bị Android, mà không cần một giải pháp
đồng bộ hóa độc quyền.
Wi-Fi Direct
Một công nghệ cho phép các ứng dụng Tìm thấy và ghép đôi trực tiếp, qua một băng
thông cao kết nối peer-to-peer.
Android Beam
Một công nghệ NFC cho phép người dùng chia sẻ ngay lập tức, chỉ bằng cách chạm
hai điện thoại NFC với nhau.

*) Ứng dụng Android

Ứng dụng Android thường được phát triển bằng ngôn ngữ Java sử dụng Android Software
Development Kit.
Sau khi phát triển, ứng dụng Android có thể được đóng gói một cách dễ dàng và được bán ra
thông qua một cửa hàng như Google Play, SlideME, Opera Mobile Store, Mobango, F-Droid và
Amazon Appstore.
Có hàng trăm triệu thiết bị di động Android tại hơn 190 quốc gia trên thế giới. Đó là cơ sở cài
đặt lớn nhất của bất kỳ nền tảng di động và phát triển rất nhanh. Mỗi ngày hơn 1 triệu thiết bị
Android mới được kích hoạt trên toàn thế giới.
Hướng dẫn này được viết với mục đích để dạy cho bạn làm thế nào để phát triển và gói ứng
dụng Android. Chúng tôi sẽ bắt đầu từ việc thiết lập môi trường để lập trình ứng dụng Android
và sau đó đi sâu xem xét các khía cạnh khác nhau của các ứng dụng Android.
7|Page


1.2 Tổng quan về Java
+) Giới thiệu về Java
java là một ngôn ngữ lập lập trình, được phát triển bởi Sun Microsystem vào năm 1995, là
ngôn ngữ kế thừa trực tiếp từ C/C++ và là một ngôn ngữ lập trình hướng đối tượng.
Vì sao ngôn ngữ này lại được đặt tên là Java? Java là tên một hòn đảo ở Indonesia - hòn

đảo nổi tiếng với loại coffee Peet và cũng là loại nước uống phổ biến của các kỹ sư Sun. Ban
đầu Ngôn ngữ này được đặt tên là "Oak" (có nghĩa là "Cây sồi" - 1991), nhưng các luật sư của
Sun xác định rằng tên đó đã được đăng ký nhãn hiệu nên các nhà phát triển đã phải thay thế
bằng một tên mới - và cũng vì lý do trên mà cái tên Java đã ra đời và trở thành tên gọi chính
thức của Ngôn ngữ này - Ngôn ngữ Lập trình Java.
+) Ứng dụng của Java
Ngày nay Java được sử dụng với các mục đích sau:
 Phát triển ứng dụng cho các thiết bị điện tử thông minh, các ứng dụng cho doanh nghiệp
với quy mô lớn.
 Tạo các trang web có nội dung động (web applet), nâng cao chức năng của server.
 Phát triển nhiều loại ứng dụng khác nhau: Cơ sở dữ liệu, mạng, Internet, viễn thông, giải
trí,...
*) Những đặc điểm cơ bản của Java
Tiêu chí hàng đầu của Ngôn ngữ Lập trình Java là "Write Once, Run Anywhere" (Viết một
lần, chạy mọi nơi), nghĩa là Java cho phép chúng ta viết code một lần và thực thi được trên các
hệ điều hành khác nhau. Ví dụ, chúng ta viết code trên Hệ điều hành Windows và nó có thể thực
thi được trên các Hệ điều hành Linux và Mac OS...
Với đặc điểm nổi bật đó, Java có những đặc điểm cơ bản như sau:
 Đơn giản và quen thuộc: Vì Java kế thừa trực tiếp từ C/C++ nên nó có những đặc điểm
của ngôn ngữ này, Java đơn giản vì mặc dù dựa trên cơ sở C++ nhưng Sun đã cẩn thận
lược bỏ các tính năng khó nhất của của C++ để làm cho ngôn ngữ này dễ sử dụng hơn.
 Hướng đối tượng và quen thuộc.
 Mạnh mẽ (thể hiện ở cơ chế tự động thu gom rác - Garbage Collection) và an toàn.
 Kiến trúc trung lập, độc lập nền tảng và có tính khả chuyển (Portability).
 Hiệu suất cao.
8|Page


 Máy ảo (biên dịch và thông dịch).
 Phân tán.

 Đa nhiệm: Ngôn ngữ Java cho phép xâ dựng trình ứng dụng, trong đó nhiều quá trình có
thể xảy ra đồng thời. Tính đa nhiệm cho phép các nhà lập trình có thể biên soạn phần
mềm đáp ứng tốt hơn, tương tác tốt hơn và thực hiện theo thời gian thực.
*) Biến trong java
Biến là tên một khu nhớ. Có ba kiểu biến: biến cục bộ (còn gọi là biến local), thuộc tính (biến
của instance- đối tượng) và biến static.
Bạn phải khai báo tất cả các biến trước khi chúng có thể được sử dụng. Form cơ bản của một
khai báo biến như sau:
kieu_du_lieu bien [ = giatri][, bien [= giatri] ...] ;

Ở đây, kieu_du_lieu là một kiểu dữ liệu của Java và bien là tên của biến. Để khai báo nhiều hơn
một biến với kiểu cụ thể, bạn có thể sử dụng một danh sách biến phân biệt nhau bởi dấu phảy.
Dưới đây là ví dụ về khai báo và khởi tạo biến hợp lệ trong Java:
int a, b, c;

// Khai bao ba bien kieu int la a, b, và c.

int a = 5, b = 7; // Vi du ve khoi tao bien
byte A = 11;

// Khoi tao mot bien kieu byte ten la A.

double pi = 3.14159; // Khai bao va gan mot gia tri cua PI.
char nam = 'b';

// Bien nam duoc khoi tao voi gia tri 'a'.

*) Kiểu dữ liệu trong Java
Các biến là không gì khác ngoài các vị trí bộ nhớ dành riêng để lưu các giá trị. Nghĩa là, khi
bạn tạo một biến, bạn dự trữ một số không gian trong bộ nhớ.

Dựa trên kiểu dữ liệu của một biến, hệ điều hành cấp phát bộ nhớ và quyết định cái gì có thể
được lưu giữ trong bộ nhớ dành riêng. Vì thế, bằng việc gán các kiểu dữ liệu khác nhau tới các
biến, bạn có thể lưu giữ integer, thập phân, hoặc các ký tự trong những biến này.
Có hai kiểu dữ liệu có sẵn trong Java:



Các kiểu dữ liệu gốc (Primitive)
Các kiểu dữ liệu tham chiếu/đối tượng (không phải kiểu gốc Non-primitive)
9|Page


*) Toán tử trong Java
Java cung cấp rất nhiều toán tử đa dạng để thao tác với các biến. Chúng ta có thể chia tất cả các
toán tử trong Java thành các nhóm sau:










Toán tử số học
- Các toán tử số học được sử dụng trong các biểu thức toán học theo cách tương tự như chúng
được sử dụng trong đại số học
- các toán tử số học bao gồm: Phép cộng(+), phép trừ (-), phép nhân (*), phép chia (/), phép chia
dư (%), Phép lượng tăng(++), phép lượng giảm(--)

Toán tử quan hệ
Các toán tử quan hệ bao gồm: so sánh bằng (==), so sánh khác (!=), so sánh lớn (>), so sánh nhỏ
(<), so sánh nhỏ hơn hoặc bằng (<=), so sánh lớn hơn hoặc bằng (>=)
Toán tử thao tác bit
Java định nghĩa một số toán tử thao tác bit có thể được áp dụng cho các kiểu giá trị integer, long,
int, short, char, và byte.
Các toán tử thao tắc bit bao gồm: toán tử Và(&), toán tử hoặc (|, ^), toán tử dịch trái(<<), dịch
phải(>>), dịch phải và điển 0 vào chỗ trống (>>>)
Toán tử logic
Toán tử logoc bao gồm: toán tử và(&&), toán tử hoặc(||), toán tử phủ định (!)
Toán tử gán
Các toán tử gắn bao gồm: (=, +=, -=, *=, /=, <<=, >>=, &=, ^=, |=)
Các toán tử hỗn hợp
Ngôn ngữ Java cũng hỗ trợ một số toán tử hỗn hợp khác.
1.3. Tổng quan về XML
*) Giới thiệu về XML
XML là viết tắt của từ eXtensible Markup Language, hay còn gọi là ngôn ngữ đánh dấu mở
rộng do W3C đề nghị với mục đích tạo ra các ngôn ngữ đánh dấu khác. Đây là một tập hợp con
đơn giản có thể mô tả nhiều loại dữ liệu khác nhau nên rất hữu ích trong việc chia sẻ dữ liệu
giữa các hệ thống. Ví dụ khi bạn xây dựng một ứng dụng bằng C# và một ứng dụng bằng PHP
thì hai ngôn ngữ này không thể hiểu nhau, vì vậy ta sẽ sử dụng XML để trao đổi dữ liệu.
Tất cả những đặc tả dữ liệu XML đều phải tuân theo quy luật và cú pháp của nó nên hầu như các
file XML đều rất nghiêm khắc trong việc biên dịch. Tuy nhiên công nghệ này cần phải được
xem xét bởi vì trong quá trình thao tác và truyền dữ liệu nó có tỉ lệ sai sót lên tới 5% - 7%. Con
số này không cao nhưng cũng rất đáng để cân nhức khi sử dụng.
10 | P a g e


Điển hình nhất là ngôn ngữ đánh dấu siêu văn bản HTML sử dụng cú pháp của XML để tạo nên
và nó có các bộ phần tử và thuộc tính không mềm dẻo nên chỉ có tác dụng trong việc trình bày

dữ liệu trên trình duyệt Browser.

*) Đăc điểm XML
XML được dùng cho dữ liệu có cấu trúc.
Về trực quan, XML khá giống với HTML.
Tuy là văn bản, nhưng XML không phải dùng để đọc.
XML thường rất dài.
XML được coi là cầu nối đưa HTML tới XHTML và là nền tảng cho RDF và Web mã
hóa.
o XML là một module.
o XML miễn phí bản quyền, platform độc lập và được hỗ trợ rất tốt.
o
o
o
o
o

*) Ưu nhược điểm XML
1.7.1. Ưu điểm
Ưu điểm lớn nhất của XML chính là sự độc lập. Điều này cũng rất dễ hiểu, vì XML được
sử dụng để mô tả dữ liệu dưới dạng text, nên hầu hết các phần mềm hay các chương trình
bình thường đều có thể đọc được chúng.
XML có thể đọc và phân tích nguồn dữ liệu khá dễ dàng nên nó được sử dụng với mục
đích chính là trao đổi dữ liệu giữa các chương trình, các hệ thống khác nhau. XML được
sử dụng cho Remote Procedure Calls nhằm phục vụ cho các dịch vụ của website.
1.7.2. Nhược điểm
Tỷ lệ sai sót khi sử dụng XML để truyền dữ liệu khoảng từ 5-7%. Con số này tuy
không quá cao, nhưng trên thực tế, người ta vẫn cần cân nhắc trước khi sử dụng nó để
trao đổi thông tin.
*) Thẻ trong XML

Các thẻ XML cấu thành nên XML. Chúng định nghĩa phạm vi một phần tử trong XML. Chúng
cũng có thể được sử dụng để chèn các comment, khai báo các thiết lạp cần thiết để phân tích
môi trường và để chèn các chỉ lệnh đặc biệt.
Chúng ta có thể phân loại các thẻ XML thành:
11 | P a g e


-Thẻ mở trong XML
Phần bắt đầu của mỗi phần tử XML không trống được đánh dấu bởi một thẻ mở. Ví dụ về một
thẻ mở là:
<address>
-Thẻ đóng trong XML
Mỗi phần tử mà có một thẻ mở nên kết thúc với một thẻ đóng. Ví dụ về thẻ đóng là:
</address>
Ghi nhớ là các thẻ đóng phải có dấu gạch chéo (/) ở trước tên phần tử.
- Thẻ mở trống trong XML
Phần text xuất hiện giữa thẻ mở và thẻ đóng được gọi là nội dung. Một phần tử không có nội
dung nào được coi là trống (empty). Một phần tử trống có thể được biểu diễn theo hai cách:
1.4. Tổng quan về SQLite
*) Giới thiệu về SQLite
SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine, không cần máy chủ,
không cần cấu hình, khép kín và nhỏ gọn. Nó là một cơ sở dữ liệu, không cần cấu hình, có nghĩa
là giống như các cơ sở dữ liệu khác mà bạn không cần phải cấu hình nó trong hệ thống của
mình.
SQLite engine không phải là một quy trình độc lập (standalone process) như các cơ sở dữ liệu
khác, bạn có thể liên kết nó một cách tĩnh hoặc động tùy theo yêu cầu của bạn với ứng dụng của
bạn. SQLite truy cập trực tiếp các file lưu trữ (storage files) của nó.
*) Tại sao lại là SQLite?
 SQLite không yêu cầu một quy trình hoặc hệ thống máy chủ riêng biệt để hoạt động.
 SQLite không cần cấu hình, có nghĩa là không cần thiết lập hoặc quản trị.

 Một cơ sở dữ liệu SQLite hoàn chỉnh được lưu trữ trong một file disk đa nền tảng (crossplatform disk file).
 SQLite rất nhỏ và trọng lượng nhẹ, dưới 400KiB được cấu hình đầy đủ hoặc dưới
250KiB với các tính năng tùy chọn bị bỏ qua.
12 | P a g e


 SQLite là khép kín (self-contained), có nghĩa là không có phụ thuộc bên ngoài.
 Các transaction trong SQLite hoàn toàn tuân thủ ACID, cho phép truy cập an toàn từ
nhiều tiến trình (process) hoặc luồng (thread).
 SQLite hỗ trợ hầu hết các tính năng ngôn ngữ truy vấn (query language) được tìm thấy
trong tiêu chuẩn SQL92 (SQL2).
 SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ sử dụng.
 SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows (Win32, WinCE,
WinRT).
*) Lịch sử tóm tắt của SQLite
 2000 - D. Richard Hipp đã thiết kế SQLite cho mục đích không yêu cầu quản trị để vận
hành chương trình.
 2000 - Vào tháng 8, SQLite 1.0 được phát hành với trình quản lý cơ sở dữ liệu GNU.
 2011 - Hipp tuyên bố bổ sung giao diện UNQl vào SQLite DB và phát
triển UNQLite (Cơ sở dữ liệu hướng tài liệu - Document oriented database).
*) Tại sao nên sử dụng SQLite?
 SQLite không yêu cầu một tiến trình Server riêng rẽ để hoạt động.
 SQLite không cần cấu hình, nghĩa là không cần thiết phải cài đặt.
 Một SQLite Database đầy đủ được lưu giữ trong một disk file đơn.
 SQLite là rất nhỏ gọn, nhỏ hơn 400kB đã đươc cấu hình đầy đủ hoặc nhỏ hơn 250kB khi
đã bỏ qua các tính năng tùy ý.
 SQLite là tự chứa, nghĩa là không có sự phụ thuộc vào ngoại vi.
 Các Transaction trong SQLite là tuân theo đầy đủ chuẩn ACID, đảm bảo truy cập an toàn
từ nhiều tiến trình hoặc thread.
 SQLite hỗ trợ hầu hết các tính năng của một ngôn ngữ truy vấn trong chuẩn SQL92.

 SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ dàng sử dụng.
 SQLite là có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows (Win32,
WinCE, WinRT).

13 | P a g e


CHƯƠNG 2: KHẢO SÁT, PHÂN TÍCH, THIẾT KẾ ỨNG DỤNG

2.1. Phát biểu bài toán
- Ứng dụng là một tiện ích trò chơi giải trí bao gồm một số trò chơi đơn giản như 2048, rắn săn
mồi, freaking math…..
- Trong ứng dụng người chơi có thể lựa chọn trò chơi mà mình muốn chơi, có thể thay đổi
avatar, thay đổi tên người chơi, đặt lại trò chơi, cài đặt bật tắt âm thanh, và cũng có thể lên cấp
độ trong trò chơi.
2.2. Phân tích ứng dụng
2.2.1. Chức năng chính của ứng dụng
- Game giải trí: Cung cấp các tiện ích trò chơi giải trí cho người chơi
- Yêu cầu phi chức năng:
+ Chương trình có giao diện thân thiện với người dùng.
2.2.2. Các yêu cầu đặt ra cho ứng dụng
R1: Giao diện đơn giản, dễ nhìn
R2: Dễ dàng thay đổi thông tin người chơi
R3: Có thể lưu lại trò chơi khi ứng dụng bị thoát đột ngột.
R4: Cần có âm thanh nền hoặc âm thanh phím bấm
R5: Đối với một số trò chơi cần đếm số thời gian mất để hoàn thành mức chơi
R6: Một số game có thể quay lại bước đi trước đó.
2.2.3. Môi trường thực hiện
- Sử dụng IDE: Android Studio
- Hệ cơ sở dữ liệu: SQLite

- Ngôn ngữ lập trình: Java
- Ngôn ngữ đánh dấu thiết kế giao diện: XML
14 | P a g e


2.2.4. Các trò chơi trong ứng dụng
*) Game 2048
2048 là một game trí tuệ giải đố, Mục tiêu của trò chơi là trượt các khối vuông có mang
số trên một lưới vuông để kết hợp chúng lại và tạo ra khối vuông có giá trị 2048.
Tính năng chính của game 2048
 Tự động lưu game khi bị thoát đột ngột.
 Cho phép lùi lại 1 bước nếu đi sai.
 Có thể xem điểm cao nhất người chơi đặt được
 Tiếp tục chơi game để gia tăng điểm số sau khi đã tạo được ô 2048.
 Giao diện đơn giản dễ nhìn.
*) Freaking math
Freaking math là một game thể loại game trí tuệ, mục tiêu của trò chơi là trả lời các câu
hỏi phép tính +, - trong 1 khoảng thời gian rất ngắn để đặt được số điểm cao nhất.
Tính năng chính của game Freaking math
 Tự động sinh ngẫu nhiên câu hỏi và đáp án.
 Có chức năng đếm ngược thời
 Có thể cài đặt bật tắt âm thanh
 Có thể xem điểm cao nhất người chơi đặt được
 Số lượng câu không giới hạn
 Giao diện đơn giản dễ nhìn.
*) Siêu tính nhẩm
Siêu tính nhẩm là một game thể loại game trí tuệ,trò chơi bao gồm 2 người chơi, mục
tiêu của trò chơi là trả lời các câu hỏi phép tính +, - trong 1 khoảng thời gian rất ngắn để
đặt được số điểm cao nhất và tìm ra người chiến thắng.
Tính năng chính của game Siêu tính nhẩm

 Tự động sinh ngẫu nhiên câu hỏi và đáp án.
 Có thể xem điểm đồng thời của 2 người chơi
15 | P a g e


 Tự động sinh ngẫu nhiên câu hỏi và đáp án.
 Đếm ngược thời gian
 Số lượng câu không giới hạn
 Giao diện đơn giản dễ nhìn.
*) Ghép hình
Ghép hình thuộc thể loại trò chơi giải đó, mục tiêu của trò chơi là di chuyển các tấm
hình bị cắt nhỏ ghép thành các tấm hình hoàn chỉnh
Tính năng chính của game Ghép hình
 Đếm thời gian người chơi.
 Đếm số bước đi của người chơi.
 Chức năng chơi lại nếu cảm thấy khó giải quyết
 Xem thời gian tốt nhất của người chơi.
 Giao diện đơn giản dễ nhìn.
*) Rắn săn mồi
Rắn săn mồi là thể loại game vui nhộn, nhiệm vụ của người chơi là điều khiển con rắn
trên một màn hình cố định, sao cho con rắn có thể ăn được nhiều mồi nhất mà đầu con rắn
kg bị đụng vào thân con rắn.

Tính năng chính của game Rắn săn mồi
 Tạm dừng trò chơi.
 Chọn mức độ dễ, trung bình, khó.
 Xử dụng 4 nút lên, xuống, trái, phải để điều khiển con rắn theo các hướng
 Xem điểm cao nhất
 Giao diện đơn giản dễ nhìn.


16 | P a g e


2.2.5. Biểu đồ User case
*) Xác định Actor
Actor hay còn gọi là tác nhân. Để xác định được tác nhân cần trả lười được những câu
hỏi sau:
- Ai là người kích hoạt hệ thống?
- Ai là người duy trì hệ thống?
- Ai là người được hệ thống giúp đỡ?
- Ai là người lấy thông tin từ hệ thống?
- Ai la người cung cấp thông tin cho hệ thống?
Với những câu hỏi trên ta xác được được tác nhân sử dụng ứng dụng và duy trì game hay
trao đổi thông tin với game chính là người chơi (Player)
*) Xác định User case
 User case chính

o User case: Lựa chọn trò chơi
Actor: Player
Mô tả: Cho phép người chơi lựa chọn các trò chơi có trong ứng dụng
o User case: Đặt lại trò chơi
Actor: Player
Mô tả: Cho phép người chơi xóa toàn bộ dữ liệu các trò chơi
o User case: Cài đặt âm thanh
Actor: Player
Mô tả: Cho phép người bật tắt âm thanh game
17 | P a g e


o User case: Thay đổi tên người dùng

Actor: Player
Mô tả: Cho phép người chơi thay đổi tên hiển thị
o User case: Thay đổi ảnh avatar
Actor: Player
Mô tả: Cho phép người chơi thay đổi avatar hiển thị

 User case game 2048

o User case: Chơi tiếp
Actor: Player
Mô tả: cho phép người chơi nối tiếp trước đó
o User case: Trò chơi mới
Actor: Player
Mô tả: Cho phép chơi mới trò chơi
o User case: Quay về
Actor: Player
Mô tả: Cho phép người chơi trở lại màn hình “Game play”
o User case: Điểm, Điểm cao nhất
Actor: Player
Mô tả: Cho phép hiển thị điểm tức thời và điểm cao nhất của người chơi

18 | P a g e


o User case: Game over
Actor: Player
Mô tả: Cho phép hiển thị thông báo trò chơi kết thúc
o User case: Chơi lại
Actor: Player
Mô tả: Cho phép chơi lại trò chơi

o User case: Trở về
Actor: Player
Mô tả: Cho phép trở về màn hình chính game 2048
o User case: Back step
Actor: Player
Mô tả: Cho phép trở về một bước trước đó
o

 User case game Freaking math

o User case: Chơi ngay
Actor: Player
Mô tả: Cho phép bắt đầu trò chơi
o User case: Quay về
Actor: Player
Mô tả: Cho phép người chơi trở lại màn hình “Game play”
o User case: Điểm cao nhất
Actor: Player
Mô tả: Cho phép hiển thị điểm cao nhất của người chơi
19 | P a g e


o User case: Game over
Actor: Player
Mô tả: Cho phép hiển thị thông báo trò chơi kết thúc
o User case: Chơi lại
Actor: Player
Mô tả: Cho phép chơi lại trò chơi
o User case: Trở về
Actor: Player

Mô tả: Cho phép trở về màn hình chính game 2048

 User case Siêu tính nhẩm

o User case: Chơi ngay
Actor: Player
Mô tả: Cho phép bắt đầu trò chơi
o User case: Quay về
Actor: Player
Mô tả: Cho phép người chơi trở lại màn hình “Game play”
o User case: Điểm cao nhất
Actor: Player
Mô tả: Cho phép hiển thị điểm cao nhất của người chơi
o User case: Game over
Actor: Player
Mô tả: Cho phép hiển thị thông báo trò chơi kết thúc
o User case: Chơi lại
Actor: Player
Mô tả: Cho phép chơi lại trò chơi
20 | P a g e


o User case: Trở về
Actor: Player
Mô tả: Cho phép trở về màn hình chính game 2048

 User case Rắn săn mồi

o User case: Chơi ngay
Actor: Player

Mô tả: Cho phép bắt đầu trò chơi
o User case: Quay về
Actor: Player
Mô tả: Cho phép người chơi trở lại màn hình “Game play”
o User case: Điểm cao nhất
Actor: Player
Mô tả: Cho phép hiển thị điểm cao nhất của người chơi
o User case: Chơi lại
Actor: Player
Mô tả: Cho phép chơi lại trò chơi

21 | P a g e


o User case: Trở về
Actor: Player
Mô tả: Cho phép trở về màn hình chính game 2048
o User case tạm dừng
Actor: Player
Mô tả: Cho phép tạm dừng trò chơi hoặc tiếp tục trò chơi
 User case Ghép hình

o User case: Chơi ngay
Actor: Player
Mô tả: Cho phép bắt đầu trò chơi
o User case: Số bước đi
Actor: Player
Mô tả: Cho phép đếm số bước người chơi thực hiện
o User case: Thời gian
Actor: Player

Mô tả: Cho phép đếm thời gian của người chơi
o User case: Chơi lại
Actor: Player
Mô tả: Cho phép chơi lại trò chơi
o User case: Trở về
Actor: Player
Mô tả: Cho phép trở về màn hình chính game 2048
o User case Win game
22 | P a g e


Actor: Player
Mô tả: Cho phép hiển thị màn hình chiến thắng

23 | P a g e


2.3. Mô tả thiết kế ứng dụng
2.3.1. Sơ đồ ứng dụng
Figure 1Sơ đồ ứng dụng

24 | P a g e


2.3.2 Nhánh sơ đồ “Người dùng”
*) Hình ảnh đại diện
- Để thay đổi avatar người dùng click vào ảnh avatar sau đó một danh sách các hình ảnh
hiện lên, người dùng nhấn vào hình ảnh muốn lựa chọn hình ảnh đại diện sẽ được thay đổi.
- Hình ảnh đại diện mặc định bao gồm 12 ảnh, 6 ảnh nam và 6 ảnh nữ.
*) Tên người dùng

- Quy trình thay đổi tên người dùng

Figure 2: Quy trình thay đổi tên người dùng

-

Mô tả:
+ Khi người dùng muốn thay đổi tên hiển thị, người dùng tiến hành click vào
nickname thì 1 dialog thay đổi tên hiện ra. Người dùng nhập tên muốn thay đổi và
ấn nút “Thay đổi” hệ thống kiểm tra nếu tên hợp thì tên hiển thị sẽ được thay đổi,
ngược lại yêu cầu nhập tên mới.

*) Cấp độ người chơi
25 | P a g e


×