Tải bản đầy đủ (.doc) (36 trang)

BÁO CÁO THỰC TẬP: Lập trình ứng dụng game xếp số cho hệ điều hành Android

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 (531.37 KB, 36 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO
THỰC TẬP TỐT NGHIỆP
Nội dung: Lập trình ứng dụng game
xếp số cho hệ điều hành Android

Nơi thực tập
: Viện CNTT&TT-CDIT
Người hướng dẫn : Hoàng Xuân Sơn
Sinh viên thực hiện : Trần Phú Yên

Hà nội, 07/ 2015

1


LỜI CẢM ƠN

Trên thực tế không có sự thành công nào mà không gắn liền với n
hững hỗ trợ,
giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của mọi người. Và
trong thời gian thực tập tốt nghiệp lần này , em đã nhận được rất
nhiều sự giúp đỡ từ nhà trường , thầy cô của Viện Công nghệ
thông tin & Truyền thông – CDIT, đặc biệt là thầy Hoàng Xuân Sơn
– người trực tiếp hướng dẫn và giúp đỡ em.
Lần
thực
tập
này


được thực hiện trong khoảng thời gian 6 tuần. Bước
đầu đi vào
nghiên cứu, tìm hiểu lĩnh vực lập trình game trên nền tảng
Android. Kiến thức của em còn hạn chế và nhiều bỡ ngỡ. Do vậy,
không tránh khỏi những thiếu sót là điều chắc chắn,em rất mong
nhận được những ý kiến đóng góp quý báu của quý Thầy Cô và
Thầy hướng dẫn em để kiến thức của em trong lĩnh vực này được
hoàn thiện hơn và đề tài thực tập lần này của em được hoàn
thành đúng tiến độ.
Một lần nữa em xin chân thành cảm ơn các Thầy Cô và em sẽ cố
gắng để hoàn thiện chuyên môn hơn sau đợt thực tập này!

2


MỤC LỤC
MỤC LỤC.......................................................................................................................................3
Phần A : GIỚI THIỆU ĐƠN VỊ THỰC TẬP...............................................................................4
I. Lịch sử phát triển..............................................................................................................................4
II. Những đóng góp của CDIT cho sự phát triển của ngành ICT Việt Nam.....................................5

Phần B : NỘI DUNG THỰC TẬP................................................................................................7
I. Phần giới thiệu chung........................................................................................................................7
II. Báo cáo thực tập...............................................................................................................................8

3


Phần A : GIỚI THIỆU ĐƠN VỊ THỰC TẬP
I. Lịch sử phát triển

Được thành lập từ năm 1999 với chức năng chính của CDIT là nghiên cứu, ứng dụng
khoa học và đào tạo nguồn nhân lực cho lĩnh vực Công nghệ thông tin chuyên ngành Bưu
chính viễn thông và các ngành kinh tế – xã hội khác của Việt Nam. Qua 15 năm xây dựng
và phát triển, CDIT đã luôn hoàn thành xuất sắc mọi nhiệm vụ được giao, góp phần to
lớn trong sự phát triển của ngành Thông tin và truyền thông. Kết quả, trong 15 năm phát
triển CDIT đã được Đảng, Nhà nước tặng thưởng Huân chương Lao động Hạng Nhất,
Nhì, Ba.
Trong lĩnh vực hoạt động nghiên cứu khoa học và triển khai công nghệ, CDIT là đơn vị
tiên phong trong việc sản xuất nội địa các hệ thống Viễn thông thay thế nhập ngoại, từ
các thế hệ Tổng đài đầu tiên đến các hệ thống phần mềm tích hợp phức tạp đều là các sản
phẩm từ các công trình nghiên cứu KHCN của CDIT được phát triển và ứng dụng thành
công trên mạng lưới viễn thông của VNPT các tỉnh thành của cả nước.
Trong lĩnh vực hoạt động đào tạo, với thế mạnh từ một đơn vị nghiên cứu, CDIT đã
chuyển giao các kết quả sang lĩnh vực đào tạo ngắn hạn. Đến nay, hàng nghìn kỹ sư của
63 Bưu điện tỉnh thành và Tổng Công ty Bưu chính đã được CDIT đào tạo và chuyển
giao công nghệ.
Trong thời gian tới, thực hiện triển khai “Đề án đào tạo và phát triển nguồn nhân lực an
toàn, an ninh thông tin đến năm 2020” – Đề án 99, CDIT cũng xác định sẽ tích cực tham
gia cùng với các đơn vị khác trong Học viện xây dựng đội ngũ, chuẩn bị cơ sở vật chất
trong nghiên cứu và đào tạo Đại học về an toàn thông tin để nâng cao tiềm lực và phát
triển các dịch vụ về An toàn, An ninh thông tin.
Trải qua 15 năm xây dựng và phát triển, CDIT đã xây dựng được đội ngũ cán bộ nghiên
cứu viên, giảng viên có trình độ chuyên môn cao, giàu kinh nghiệm, hệ thống các phòng
Lab hiện đại phục vụ các hoạt động nghiên cứu và đào tạo. Các sản phẩm công nghệ
được ứng dụng rộng rãi trong Ngành và liên tục đoạt các giải thưởng cao quý về Khoa
học công nghệ như giải thưởng VIFOTEC, Cúp Vàng CNTT trong giai đoạn các năm từ
2000 đến 2004.

4



II. Những đóng góp của CDIT cho sự phát triển của ngành ICT Việt
Nam
CDIT có nhiệm vụ nghiên cứu, ứng dụng khoa học và đào tạo nguồn nhân lực cho
lĩnh vực Viễn thông và Công nghệ thông tin (CNTT). Cùng với sự phát triển của ngành
CNTT trong xu hướng hội nhập với Truyền thông, CDIT đã đổi tên thành Viện CNTT và
Truyền thông CDIT từ 01/01/2012.
Trung tâm Công nghệ thông tin CDIT được thành lập năm 1999 trên cơ sở sáp nhập
Trung tâm Nghiên cứu Phát triển Phần mềm STC (thuộc Viện KHKT Bưu điện) và
Trung tâm Đào tạo Phát triển Phần mềm STDC (thuộc Trung tâm Đào tạo BCVT1).
CDIT có nhiệm vụ nghiên cứu, ứng dụng khoa học và đào tạo nguồn nhân lực cho lĩnh
vực Viễn thông và Công nghệ thông tin (CNTT).
Trong suốt 15 năm phát triển của mình, CDIT luôn thể hiện tinh thần đam mê, chủ động
làm chủ công nghệ ở mức độ sâu, tạo ra các sản phẩm có hàm lượng tri thức cao, đóng
góp thiết thực cho sự phát triển của ngành công nghệ thông tin và truyền thông (ICT)
Việt Nam.
NHỮNG NĂM ĐẦU TIÊN 1999-2004

Được hình thành từ các đơn vị có năng lực kỹ thuật điện tử viễn thông và CNTT, lại hoạt
động trong mạng lưới rộng lớn của Tổng công ty Bưu chính Viễn thông Việt Nam
(VNPT) nên ngay từ khi mới thành lập, CDIT là đơn vị tiên phong trong việc tự sản xuất
chế tạo tổng đài nhỏ từ 128 đến 512 số và đã triển khai tại nhiều tỉnh trên mạng lưới của
VNPT, mở rộng vùng phủ của các dịch vụ viễn thông xuống các huyện, xã vùng xa đang
là "vùng trắng" về viễn thông.
Trong lĩnh vực di động, các thiết bị mạng thường là độc quyền của các hãng lớn và có giá
thành cao. Năm 2002, CDIT đã tự thiết kế chế tạo được hệ thống nhắn tin ngắn SMSC
cho mạng di động và triển khai cung cấp cho nhà khai thác Mobifone, Vinaphone và
Viettel. Đây là hệ thống MMSC đầu tiên được triển khai trên mạng viễn thông của Việt
Nam và hoàn toàn do Việt Nam phát triển.
Thời kỳ này, các dịch vụ trên mạng viễn thông ở Việt Nam còn rất nghèo nàn. Từ khả

năng tiếp cận, nắm bắt thông tin xu hướng phát triển viễn thông của các nước phát triển,
CDIT đã đi đầu tạo ra nhiều sản phẩm, dịch vụ mới có tiếng vang với xã hội như dịch vụ
nhắn tin SMS, MMS, thanh toán cước phí điện thoại qua hệ thống ATM, dịch vụ bầu
chọn trực tuyến 1900 1570, dịch vụ Thông tin tuyển sinh, dịch vụ Thông tin Giáo dục,
dịch vụ gia tăng trên di động, Internet... Nhiều dịch vụ do CDIT tạo ra có tính tiên phong
và thực sự mang lại sắc diện mới cho đời sống tinh thần của xã hội Việt Nam khi đó.
GIAI ĐOẠN 2005 ĐẾN 2009

5


Thời kỳ 2005-2009, công nghệ viễn thông thay đổi rất nhanh. Ở Việt Nam, đây cũng là
thời kỳ các nhà khai thác, cung cấp dịch vụ chuyển đổi công nghệ sang thế hệ Mạng viễn
thông thế hệ mới (NGN) với rất nhiều kỹ thuật mới khác biệt so với các mạng viễn thông
thế hệ trước.
Với vai trò là đơn vị nghiên cứu trong Tập đoàn VNPT, CDIT đã chủ động nghiên cứu
đón đầu các công nghệ về mạng viễn thông mới. Năm 2004, CDIT đã đăng ký và thực
hiện thành công đề tài cấp Nhà nước KC.01.22 chế tạo hệ thống tổng đài Softswitch thành phần điều khiển quan trọng nhất trên mạng NGN.
Trong lĩnh vực phát triển các phần mềm, CDIT đã cung cấp nhiều sản phẩm phần mềm
lớn phục vụ thiết thực cho công tác quản lý, khai thác, điều hành của Tập đoàn VNPT và
Tổng công ty Bưu chính trên địa bàn cả nước như: Hệ thống cung cấp dịch vụ Thư thoại
Thư thông tin cho 49 Bưu điện tỉnh thành; Phần mềm Quản lý mạng ngoại vi và điều
hành sửa chữa 119 tại 40 Bưu điện tỉnh thành; Phần mềm phân tích số liệu kinh doanh
cung cấp thông tin hàng ngày cho Lãnh đạo Tập đoàn và các Ban chức năng và các
VNPT tỉnh thành; Cổng thông tin điện tử của VNPT; Phần mềm cung cấp dịch vụ chuyển
tiền nhanh cho Tổng công ty Bưu chính.
GIAI ĐOẠN 2010 ĐẾN 2014
Trong những năm gần đây, sự hội tụ giữa Viễn thông, CNTT và Media đang diễn ra
mạnh mẽ. Các kỹ thuật truy nhập di động băng rộng, dịch vụ đa phương tiện là các điểm
nhấn công nghệ hiện nay.

Năm 2012, CDIT đã được giao thực hiện đề tài cấp Nhà nước KC.01.09/11-15 chế tạo
thử nghiệm thiết bị Serving Gateway cho mạng truy nhập băng rộng thế hệ 4G - LTE.
Trong lĩnh vực ATTT, CDIT đã chủ động nghiên cứu các công nghệ và giải pháp cho hạ
tầng viễn thông mới song song với việc thiết kế và tổ chức mạng của VNPT. Hiện nay,
CDIT được giao trách nhiệm đảm bảo an toàn thông tin cho mạng băng rộng của Tập
đoàn. Viện cũng đã xây dựng hệ thống xác thực mật khẩu một lần (One Time Password)
và đưa vào triển khai cho VNPT, VMS và Văn phòng Quốc hội.

6


Phần B : NỘI DUNG THỰC TẬP
I. Phần giới thiệu chung
TÊN ĐỀ TÀI : Lập

trình ứng dụng game xếp số cho hệ điều hành Android

KẾ HOẠCH THỰC TẬP:

TT

Nội dung thực tập

Thời gian

Mục tiêu

1

Xây dựng đề cương thực tập


3/7/2015-8/7/2015

Xây dựng được đề
cương hoàn chỉnh
gồm các công việc
cần làm trong thời
gian dự kiến.

2

Tìm hiểu về đề tài game chuẩn bị
xây dựng

9/7/2015-12/7/2015

Tìm hiểu về thể loại
game, đồ họa game,
ngôn ngữ lập trình
game . . .

3

Mô tả game

12/7/201516/7/2015

4

Xây dựng game


17/7/2015-23/7/2015

Xây dựng được giao
diện của game

5

Xây dựng game

24/7/2015-3/8/2015

Xây dựng các
modul của game và
sửa lỗi

6

Demo

4/8/2015-6/8/2015

Chạy thử game trên
máy thật và đưa lên
store của HĐH
Android

7

+Phân tích thiết kế

giao diện game
+Phân tích và nêu
yêu cầu về giao diện
game
+Các yêu cầu đối
với game

Ghi chú
……


II. Báo cáo thực tập
+Tìm hiểu đề tài game chuẩn bị xây dựng
1. Tìm hiểu về thể loại game :
Game xếp số là thể loại game khá đơn giản vừa mang tính chất giải trí vừa mang tính trí
tuệ , đòi hỏi sự tập trung của người chơi qua đó giúp kích thích trí nhớ của họ.
2 . Đồ họa game
Do game chưa tới mức độ phức tạp về đồ họa nên có thể nói đến giao diện của game.
Trò chơi là 1 khung hình vuông bao gồm các ô nhỏ gồm các chữ số
trong ô đó và 1 ô trống để di chuyển các ô khác
Ngoài ra bên cạnh khung số là các menu tùy chọn với các tùy chọn
được sắp xếp hợp lý và có màu bắt mắt.
Các con số bên trong ô số được thể hiện sao cho người chơi thích thú
và dễ chịu mỗi khi phải tìm đường đi cho ô số và nhìn các con số.
Các màu ô số , hình nền của khung hoặc các hiệu ứng trong mỗi sự
kiện của game đều được tạo các hiệu ứng đẹp mắt.
+Tìm hiều về ngôn ngữ và các phần mềm lập trình nên game .
3.1 Ngôn ngữ lập trình game trên nền tảng android
3.1.1 Android
Android là gì?

Android là một phần mềm stack cho các thiết bị di động bao gồm một hệ điều hành,
middleware và các ứng dụng quan trọng. Android SDK cung cấp các công cụ và API cần
thiết để bắt đầu phát triển các ứng dụng trên nền tảng Android bằng cách sử dụng ngôn
ngữ lập trình Java.
Những đặc tính ứng dụng framework cho phép tái sử dụng và thay thế các thành phần
Dalvik máy ảo được tối ưu hóa cho các thiết bị di động Tích hợp trình duyệt dựa trên
động cơ WebKit mã nguồn mở
Kiến trúc Android
Sơ đồ dưới đây cho thấy các thành phần chính của hệ điều hành Android. Mỗi phần được
mô tả chi tiết hơn dưới đây.
Ứng dụng
Android sẽ ship với một bộ các ứng dụng lõi bao gồm một ứng dụng email, lịch chương
trình tin nhắn SMS,, bản đồ, trình duyệt, liên lạc, và những người khác. Tất cả các ứng
dụng được viết bằng cách sử dụng ngôn ngữ lập trình Java.
8


Ứng dụng Framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà phát triển
khả năng để xây dựng các ứng dụng vô cùng phong phú và sáng tạo. Các nhà phát triển
được miễn phí để tận dụng lợi thế của các thiết bị phần cứng, thông tin địa điểm truy cập,
dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo đến các thanh trạng
thái, và nhiều, nhiều hơn nữa.
Nằm bên dưới tất cả các ứng dụng là một tập hợp các dịch vụ và hệ thống, bao gồm:
Một tập phong phú và mở rộng của xem có thể được sử dụng để xây dựng một ứng dụng,
bao gồm các danh sách, lưới, hộp văn bản, các nút, và thậm chí một trình duyệt web
nhúng
Thời gian chạy Android
Android bao gồm một tập các thư viện lõi mà cung cấp hầu hết các chức năng sẵn có
trong thư viện cốt lõi của ngôn ngữ lập trình Java.

Mỗi ứng dụng Android chạy trong tiến trình riêng của mình, với trường hợp riêng của các
máy ảo Dalvik. Dalvik đã được viết nên một thiết bị có thể chạy nhiều máy ảo hiệu quả.
VM Dalvik thực hiện tác phẩm trong các Executable Dalvik (dex). VM là đăng ký trên,
và chạy các lớp học biên soạn bởi một trình biên dịch ngôn ngữ Java đã được chuyển
thành các định dạng dex.
3.1.2 Ngôn ngữ lập trình java
*Giới thiệu về ngôn ngữ Java
*Lịch sử phát triển
Năm 1990, Sun MicroSystems thực hiện dự án Green nhằm phát triển phần mềm trong
các thiết bị dân dụng. James Gosling, chuyên gia lập trình đã tạo ra một ngôn ngữ lập
trình mới có tên là Oak. Ngôn ngữ này có cú pháp gần giống như C++ nhưng bỏ qua các
tính năng nguy hiểm của C++ như truy cập trực tiếp tài nguyên hệ thống, con trỏ, định
nghĩa chồng các tác tử…
Khi ngôn ngữ Oak trưởng thành, WWW cũng đang vào thời kỳ phát triển mạnh mẽ, Sun
cho rằng đây là một ngôn ngữ thích hợp cho Internet. Năm 1995, Oak đổi tên thành Java
và sau đó đến 1996 Java đã được xem như một chuẩn công nghiệp cho Internet.
Máy ảo Java (JMV - Java Virtual Machine)
Để đảm bảo tính đa nền, Java sử dụng cơ chế Máy ảo của Java. ByteCode đó là ngôn ngữ
máy của Máy ảo Java tương tự như các lệnh nhị phân của các máy tính thực.
Khi thực hiện một chương trình, máy ảo Java lần lượt thông dịch các chỉ thị dưới dạng
Bytecode thành các chỉ thị dạng nhị phân của máy tính thực và thực thi thực sự chúng
trên máy tính thực.
Máy ảo thực tế đó là một chương trình thông dịch.
9


Hai kiểu ứng dụng dưới ngôn ngữ java
Khi bắt đầu thiết kế một ứng dụng dưới ngôn ngữ Java, chúng ta phải chọn kiểu cho nó
là Application hay Applet.
Applet: Là một chương trình ứng dụng được nhúng vào các trang web. Mã của chương

trình được tải về máy người dùng từ Web server khi người dùng truy xuất đến trang web
chứa nó.
Application: Là một chương trình ứng dụng được thực thi trực tiếp trên các máy ảo của
Java.
Bộ phát triển ứng dụng Java (JDK- Java Development Kit)
JDK là một bộ công cụ cho phép người lập trình phát triển và triển khai các ứng dụng
bằng ngôn ngữ java được cung cấp miễn phí bởi công ty JavaSoft (hoặc Sun). Có các bộ
Jdk cho các hệ điều hành khác nhau. Các ấn bản của JDK không ngừng được phát hành,
chúng ta có thể tải về từ địa chỉ hoặc
Bộ công cụ này gồm các chương trình thực thi đáng chú ý sau:
javac: Chương trình biên dịch các chương trình nguồn viết bằng ngôn ngữ java ra các tập
tin thực thi được trên máy ảo Java.
java: Đây là chương trình làm máy ảo của Java, thông dịch mã Bytecode của các chương
trình kiểu application thành mã thực thi của máy thực.
appletviewer: Bộ thông dịch, thực thi các chương trình kiểu applet.
javadoc: Tạo tài liệu về chú thích chương trình nguồn một cách tự động.
jdb: Trình gở rối.
rmic: Tạo Stub cho ứng dụng kiểu RMI.
rmiregistry: Phục vụ danh bạ (Name Server) trong hệ thống RMI
Tìm hiểu thêm về công nghệ java
Giới thiệu về gói AWT
GUI cung cấp chức năng nhập liệu theo cách thân thiện với người dùng. GUI đa dạng từ
ứng dụng đến ứng dụng và có thể chứa nhiều điều khiển như hộp văn bản, nhã, hộp danh
sách hay các điều khiển khác. Các ngôn ngữ như VB hay VC++ có thể cung cấp chức
năng kéo và thả trong khi đó phần mềm giống như C++ yêu cầu người lập trình phải viết
toàn bộ mã để xây dựng GUI.
Một phần tử (element) GUI được thiết lập bằng cách sử dụng thủ tục sau:
 Tạo đối tượng
 Xác định sự xuất hiện ban đầu của đối tượng
 Chỉ ra nó nằm ở đâu

 Thêm phần tử vào giao diện trên màn hình
Một thành phần (component) GUI là một đối tượng trực quan.
AWT là viết tắt của Abstract Windowing Toolkit. AWT cung cấp các thành phần khác
nhau để tạo GUI hiệu quả và lôi cuốn người sử dụng. Các thành phần này này có thể là:
 Vật chứa (Container)
 Thành phần (Component)
10


 Trình quản lý cách trình bày (Layout manager)
 Đồ họa (Graphic) và các tính năng vẽ (draw)
 Phông chữ (Font)
 Sự kiện (Event)
Gói AWT chứa các lớp, giao diện và các gói khác. Hình sau đây mô tả một phần nhỏ của
hệ thống phân cấp lớp AWT.

Hình 1: Hệ thống cây phân cấp lớp AWT
+ Phân tích thiết kế
Phân tích game xếp số :
Để đơn giản trong cách tiếp cận giải bài toán, người ta giả định chỉ có ô trống trong bảnglà di
chuyển đến những vị trí khác. Như vậy tại một trạng thái thì chỉ có tối đa 4 cách đi đểchuyển
sang trạng thái khác (trái, phải, lên, xuống). Người ta cũng nhận ra được rằng để cóthể chuyển từ
1 trạng thái bất kì về trạng thái đích nhƣ trên thì trạng thái đầu đó phải theo một quy luật trình
bày sau đây
Cho trạng thái đầu tiên như hình dưới, duyệt qua từng ô theo thứ tự từ trái qua và từ trênxuống, ở
mỗi ô số duyệt đến, bạn hãy đếm xem có bao nhiêu ô số có giá trị bé hơn nó

11



Hình 2 . Mô phỏng giao diện game

Đầu tiên là ô số 4. Ta thấy có 3 ô số {1,3,2} nằm phía sau và bé hơn nó nên có n1=3
Tiếp đến là ô sô 8 có 6 ô {1,6,3,2,7,5} nằm phía sau và nhỏ hơn nên có n2=6
Ô số 1 là bé nhất nên có n3=0
Tương tự ta có ô số 6 có n4=3
Ô số 3 có n5=1
Ô số 2 có n6=0
Ô số 7 có n7=1
Ô sô 5 có n8=0

Hình 3 : Các trạng thái
Tính tổng các số từ n1 -> n8 ta có :
N= 3+6+0+3+1+0+1+0 = 14

12


Số N này cho ta biết thông tin là nó có chia hết cho 2 hay không ( tính chẵn hay lẻ) .
Nếu nó là số chẵn thì chắc chắn có thể chuyển về trạng thái đích từ trạng thái này . Bởi vì
khi di chuyển ô trống về vị trí bất kỳ thì giá trị N mod 2 cũng không thay đổi . Tức là từ
trạng thái hiện tại bạn có thể di chuyển ô trống nhiều lần thì giá trị N vẫn là số chẵn .
Chuyển mảng 3x3 này thành mảng 1 chiều rồi thực hiện việc di chuyển ô trống giữa các
hàng

Hình 4. Thuật toán
Nhưng trong hình phía trên khi ta di chuyển ô trống tức là t đang hoán đổi vị trí của ô thứ 3 và ô
thứ 6 , sau khi hoán đổi ta có như sau :

Hình 5 : Thuật toán

Giá trị N ban đầu tăng lên 2 là do hiện tại có 2 ô lớn hơn nằm trước ô có giá trị 1 .
Nếu như thử vài lần thì bạn có thể thấy khi di chuyển ô trống giữa các dòng thì giá trị N sẽ có 1
trong 3 trường hợp : Không thay đổi, tăng 2 , giảm 2 .

13


2. Phân tích project
Sơ đồ cấu trúc người dùng chương trình

Khởi tạo trò chơi

Người chơi

Kiể
m
tra
điều
kiện

Tùy chỉnh trò chơi

Lưu tên và điểm

Thông
báo thắng

thua

Xử lý kết thúc game


Xét
kỷ
lục

Kết thúc trò chơi

Hình 6 : Sơ đồ cấu trúc người dùng chương trình

14


Cấu trúc chương trình

PROJECT

FormMain
Lớp FormMain
dùng để tạo giao
diện trò chơi và
quản lý các hoạt
động của trò chơi
cũng như các thuật
toán của trò chơi

Options

Ranking

Lớp options dùng

để tạo giao diện
tùy chỉnh , thiết
lập cho trò chơi

Lớp ranking dùng
để xem điểm số cao
nhất

Hình 7 : Cấu trúc chương trình

15

Sound
Lớp sound dùng để
phát âm thanh trong
trò chơi


III – Thiết kế giao diện và xây dựng game xếp số
1. Xây dựng giao diện của game .
1.1 .Giao diện chính của game.

Hình 8 :Giao diện game hoàn chỉnh

16


+ Giao diện chính của game sẽ như trên hình 17 và dưới đây là code của phần này.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=" />android:id="@+id/RelativeLayout01"

android:layout_width="fill_parent"
android:layout_height="fill_parent" >
android:id="@+id/TitleImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="24px"
android:background="@drawable/eightpuzzle" >
</ImageView>
android:id="@+id/TitleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/TitleImage"
android:layout_centerHorizontal="true"
android:layout_marginTop="24px"
android:text="Di chuyển để các số để được như hình mẫu"
android:textSize="16px"
android:typeface="sans" >
</TextView>
android:id="@+id/PlayButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/TitleText"
android:layout_centerHorizontal="true"
android:layout_margin="20px"
android:text="Bắt đầu chơi"
android:textSize="28px" >

</Button>
</RelativeLayout>

17


+ Chúng ta có thể thấy thêm phần giao diện menu của game gồm : trợ giúp ,thoát ,giới
thiệu.
Và code của phần menu :
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android=" >
android:id="@+id/helpmenu"
android:icon="@android:drawable/ic_menu_help"
android:title="Trợ giúp"/>
android:id="@+id/exitmenu"
android:icon="@android:drawable/ic_lock_power_off"
android:title="@string/exit"/>
android:id="@+id/creditsmenu"
android:icon="@android:drawable/ic_menu_info_details"
android:title="Giới thiệu"/>
</menu>

18


1.2 Giao diện menu trợ giúp sẽ hướng dẫn người chơi cách di chuyển số sao cho hợp lệ


Hình 9 : Menu hướng dẫn

19


Code :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" />android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hãy di chuyển các ô số để được như hình vẽ \nvới ít số lần di chuyển
nhất."
android:textSize="25dip" />
android:id="@+id/TitleImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="24px"
android:background="@drawable/eightpuzzle" >
</ImageView>
</LinearLayout>

20


1.3 Giao diện menu giới thiệu sẽ giới thiệu về tác giả của game


Hình 10: Menu giới thiệu

21


Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" />android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingTop="50dp"
android:text="Thiết kế bởi:"
android:textSize="25dip" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Trần Phú Yên"
android:textSize="25dip" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text=" D11HTTT1 – PTIT "
android:textSize="25dip" />

</LinearLayout>

22


1.4.

Giao diện khi chơi của game

Hình 11 : Giao diện khi chơi

23


Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=" />android:id="@+id/Game"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
android:id="@+id/GameField"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
android:id="@+id/Button00"
android:layout_width="100px"
android:layout_height="100px"
android:layout_x="5px"
android:layout_y="5px"
android:background="#000"

android:text="0"
android:textSize="48px" >
</Button>
android:id="@+id/Button01"
android:layout_width="100px"
android:layout_height="100px"
android:layout_x="110px"
android:layout_y="5px"
android:text="1"
android:textSize="48px" >
</Button>
android:id="@+id/Button02"
android:layout_width="100px"
android:layout_height="100px"
android:layout_x="215px"
android:layout_y="5px"
android:text="2"
android:textSize="48px" >
</Button>

24


android:id="@+id/Button03"
android:layout_width="100px"
android:layout_height="100px"
android:layout_x="5px"

android:layout_y="110px"
android:text="3"
android:textSize="48px" >
</Button>
android:id="@+id/Button04"
android:layout_width="100px"
android:layout_height="100px"
android:layout_x="110px"
android:layout_y="110px"
android:text="4"
android:textSize="48px" >
</Button>
android:id="@+id/Button05"
android:layout_width="100px"
android:layout_height="100px"
android:layout_x="215px"
android:layout_y="110px"
android:text="5"
android:textSize="48px" >
</Button>
android:id="@+id/Button06"
android:layout_width="100px"
android:layout_height="100px"
android:layout_x="5px"
android:layout_y="215px"
android:text="6"
android:textSize="48px" >

</Button>
android:id="@+id/Button07"
android:layout_width="100px"
25


×