NHẬN XÉT CỦA GIÁO VIÊN HƯƠNG DẪN ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Hưng Yên, ngày … tháng … năm 2012
1
Lập trình game Sudoku trên hệ điều hành Android
MỤC LỤCm MỤC LỤCm..................................................................................................................... 2 MỤC LỤC HÌNH.............................................................................................................4 PHẦN I: MỞ ĐẦU...........................................................................................................5 1.1.Introduce the topic.....................................................................................................5 1.2.The reason...................................................................................................................5 1.3. Target......................................................................................................................... 5 1.3. Solution...................................................................................................................... 5 1.4. Perform plan ,developing tool..................................................................................6 PHẦN II: CƠ SỞ LÝ THUYẾT......................................................................................7 1.Giới thiệu về Hệ điều hành Android............................................................................7 1.1.Android là gì?..................................................................................................................7 1.2.Kiến trúc Android............................................................................................................8 1.3.Phát triển ứng dụng trên Android....................................................................................9 PHẦN III: PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG GAME SUDOKU ...............12 3.1.Lịch sử game Sudoku...............................................................................................12 ......................................................................................................................................... 12 Sudoku có lịch sử xa xưa từ hàng ngàn
năm. Nó từng đi qua các nền văn hóa cổ, và có lẽ nó bắt nguồn từ Trung Hoa, theo như một tài liệu của Ả rập vào thế kỷ thứ 9.........................................................................12 Năm 990, một danh sách những “Ô số kỳ ảo” đã xuất hiện và tỏ ra không khác mấy so với bản Sudoku xuất hiện trong Từ Điển Bách Khoa Ikhwan al-salfa cùa các học giả người Ả Rập.............................................................................................................. 12 ......................................................................................................................................... 16 3.3.Xây dựng Game Sudoku trên Android...................................................................16 3.3.1.Yêu cầu về chức năng............................................................................................16 Có các chức năng sau:....................................................................................................16 Newgame: tạo game mới ...............................................................................................16 Setting: cài đặt nhạc nền và âm thanh của game.........................................................16 Help: giới thiệu và hướng dẫn cách chơi......................................................................16 2
Lập trình game Sudoku trên hệ điều hành Android
Quit: kết thúc game........................................................................................................16 3.3.2.Yêu cầu phi chức năng..........................................................................................16 Có các yêu cầu phi chức năng sau:................................................................................16 Giao diện game đẹp, dễ nhìn, sinh động, trực quan.....................................................16 Game có độ xử lý nhanh, nhạy......................................................................................16 3.4.Phân tích thiết kế hệ thống......................................................................................16 3.5.Xây dựng game Sudoku...........................................................................................16 3.5.1.Giao diện chính của game Sudoku.......................................................................16 3.4.2. Giao diện mức độ chơi..........................................................................................20 ......................................................................................................................................... 20 3.5.2.Giao diện chơi game..............................................................................................21 ......................................................................................................................................... 21
3.5.3.Giao diện lựa chọn số............................................................................................21 ......................................................................................................................................... 21 3.5.4.Giao diện Setting...................................................................................................21 ......................................................................................................................................... 22 3.5.5.Giao diện Help.......................................................................................................23 ......................................................................................................................................... 23 PHẦN IV: TỔNG KẾT..................................................................................................24 4.3.Hướng phát triển......................................................................................................25 TÀI LIỆU THAM KHẢO.............................................................................................26
3
Lập trình game Sudoku trên hệ điều hành Android
MỤC LỤC HÌNH Hinh 1: Mô hình kiến trúc nền tảng Android................................................................8 Hinh 2: Các phiên bản Android....................................................................................10
4
Lập trình game Sudoku trên hệ điều hành Android
PHẦN I: MỞ ĐẦU
1.1.
Introduce the topic
1.2.
The reason
While the trend develops Information and Technology (IT) , work and entertainment on PC are gradually being replaced, convert into mobile equipments by necessary of mobile application .However, at current time,fields develop mobile application not so much.when needs use mobile equipment to service entertainment ,playing game while Sudoku game is more and more increasing. Nowadays ,big mobile equipment producers choose Android which is the mainly operating system ,the number of user and equipment are more and more increasing lead to big needs about software. Android has the high open and is helped from community. Sudoku game programming in Android maybe say a new heading which have to apply much IT knowledge .To promote self – research ability and using knowledge which have learnt to apply in fact. Android operating system has had some game such as Sudoku game ,which is classic game in Japan with interesting and funny picture and it has appeared in Android ,simple play ,unlimited time ,interface is not frendly with user. Therefore ,to build Sudoku game program was remedied mistake above and add into some new functions. 1.3. Target -
aim : build Sudoku game on Android operating system. Target: +interface is friendly and easy to use. + approach quickly, more science. + full functions on request.
1.3. Solution
-
Build basis theory. Survey real situation use software and propose using methods.
5
Lập trình game Sudoku trên hệ điều hành Android
-
-
Collect and read document, research and learn how to work and program on Android basis. The research uses Eclip tool and library on Android to program Sudoku game. Algorithm research use in game. Analyse and design Sudoku game. Writing draff,report and setting program.
1.4. Perform plan ,developing tool -
Analyse method, general of theory. Historical method. Survey method. Experimental method.
6
Lập trình game Sudoku trên hệ điều hành Android
PHẦN II: CƠ SỞ LÝ THUYẾT 1. Giới thiệu về Hệ điều hành Android. 1.1.
Android là gì?
Android là hệ điều hành điện thoại di động mở nguồn mở miễn phí do công ty Google phát triển dựa trên nền tảng của Linux. Bất kỳ một hãng sản xuất phần cứng nào cũng đều có thể tự do sử dụng hệ điều hành Android cho thiết bị của mình, miễn là các thiết bị ấy đáp ứng được các tiêu chuẩn cơ bản do Google đặt ra (có cảm ứng chạm, GPS, 3G,...) Ra đời tháng 11/2007, hệ điều hành Android đã trải qua nhiều lần cập nhật, với phiên bản gần đây nhất là Ice Cream Sandwich 4.0. Android là nền tảng cho thiết bị di động bao gồm một hệ điều hành, midware và một số ứng dụng chủ đạo. Bộ công cụ Android SDK cung cấp các công cụ và bộ thư viên các hàm API cần thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữ lập trình java.
7
Lập trình game Sudoku trên hệ điều hành Android
1.2.
Kiến trúc Android.
Hinh 1: Mô hình kiến trúc nền tảng Android
Theo tài liệu được cung cấp bởi Goolge, kiến trúc Android có 5 thành phần được được phần lớp từ cao xuống thấp. Lần lượt như sau. - Applications: Hệ điều hành Android tích hợp sẳn một số ứng dụng cơ bản nhƣ email client, SMS, lịch điện tử, bản đồ, trình duyệt web, sổ liên lạc và một số ứng dụng khác. Ngoài ra tầng này cũng chính là tầng chứa các ứng dụng được phát triển bằng ngôn ngữ Java. -
Application Framework: Tầng này của hệ điều hành Android cung cấp một nền tảng phát triển ứng dụng
mở qua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra các ứng dụng vô cùng sáng tạo và phong phú. Các nhà phát triển ứng dụng được tự do sử dụng các 8
Lập trình game Sudoku trên hệ điều hành Android
tính năng cao cấp của thiết bị phần cứng như: thông tin định vị địa lý, khả năng chạy dịch vụ dƣới nền, thiết lập đồng hồ báo thức, thêm notification vào status bar của màn hình thiết bị. -
Libraries: Hệ điều hành Android bao gồm một tập các bộ thư viện C/C++ được sử dụng
bởi nhiều thành phần của Android system. Những tính năng này được cung cấp cho các lập trình viên thông qua bộ framework của Android. Dưới đây là một số thư viện cốt lõi.
- Android Runtime: Hệ điều hành Android tích hợp sẳn một tập hợp các thư viện cốt lõi cung cấp hầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java. Mọi ứng dụng của Android chạy trên một tiến trình của riêng nó cùng với một thể hiện của máy ảo Dalvik. Máy ảo Dalvik thực tế là một biến thể của máy ảo Java được sửa đổi, bổ sung các công nghệ đặc trong của thiết bị di động. Nó được xây dựng với mục đích làm cho các thiết bị di động có thể chạy nhiều máy ảo một cách hiệu quả. Trước khi thực thi, bất kì ứng dụng Android nào cũng được convert thành file thực thi với định dạng nén Dalvik Executable (.dex). Định dạng này được thiết kế để phù hợp với các thiết bị hạn chế về bộ nhớ cũng như tốc độ xử lý. Ngoài ra máy ảo Dalvik sử dụng bộ nhân Linux để cung cấp các tính năng như thread, low-level memory management. - Linux Kernel: Hệ điều hành Android được xây dựng trên bộ nhân Linux 2.6 cho những dịch vụ hệ thống cốt lõi như: security, memory management, process management, network stack, driver model. Bộ nhân này làm nhiệm vụ như một lớp trung gian kết nối phần cứng thiết bị và phần ứng dụng. 1.3. -
Phát triển ứng dụng trên Android.
Ngôn ngữ lập trình: Ngôn ngữ lập trình chính thức của Android là Java. Mặc dù các ứng dụng trên
Android được phát triển dựa trên nền tảng Java, nhưng Android không hỗ trợ J2ME và J2SE, là hai ngôn ngữ lập trình phổ dụng cho các thiết bị di động. Dựa trên máy ảo Java của Sun, Google đã tinh chỉnh và phát triển trên máy ảo Dalvik để biên dịch mã 9
Lập trình game Sudoku trên hệ điều hành Android
Java với tốc độ biên dịch nhanh hơn và nhẹ hơn. Đến phiên bản Froyo 2.2, Android đã hỗ trợ Just-in-time Compiler (JIT) làm tăng tốc độ biên dịch Java lên gấp 25 lần so với các phiên bản trước. - Các phiên bản Android.
Hinh 2: Các phiên bản Android -
Lập trình trên Android: Lập trình trên Android cần các công cụ sau: Android SDK bao gồm các công cụ
riêng lẻ như: debugger, các thư viện, trình giả lập điện thoại Android, các tài liệu hỗ trợ các code mẫu. Hiện Android cung cấp bộ công cụ này trên nhiều nền tảng Hệ điều hành khác nhau (Windows, Linux, Max…) yêu cầu cài sẵn Java Development Kit, Apache Ant và Python 2.2 trở lên. IDE (môi trường phát triển tích hợp): Eclipse phiên bản 3.2 trở lên với Plugin ADT (Android Development Tools), Netbeans. Tuy nhiên, người lập trình có thể sử dụng bất kỳ 1 IDE hay trình soạn thảo văn bản nào để viết code Jave và XML rồi biên dịch nên ứng dụng hoàn chỉnh bằng cách sử dụng dòng lênh (command lines). Eclipse hỗ trợ tốt hơn Netbeans nên được sử dụng làm công cụ phát triển chính thức. Một số công cụ hỗ trợ lập trình Android tiêu biểu: SQLite Manager: là một addon củ Firefox giúp quản lý SQLite của Android. DroidDraw: Giúp thiết kế file XML giao diện ứng dụng. 10
tưởng và giao diện sơ bộ của ứng dụng. StarUML: vẽ các lược đồ UML hỗ trợ và phân tích thiết kế. Chu kỳ sống của Android Trong mỗi ứng dụng Android có chứa nhiều thành phần và mỗi thành phần có một
chu trình sống riêng. Và ứng dụng chỉ được gọi là kết thúc khi tất cả các thành phần đều có một chu trình sống riêng. Và ứng dụng chỉ được gọi là kết thúc khi tất cả các thành phần trong ứng dụng kết thúc. Activity là một thành phần cho phép người dùng giao tiếp được với ứng dụng nữa nhưng không có nghĩa là ứng dụng đã kết thúc. Bởi vì ngoài Activity là thành phần có khả năng tương tác với người dùng thì còn các thành phần có khả năng tương tác với người dùng như là Service, Broadcast receier. Có nghĩa là thành phần không tương tác với người dùng có thể chạy nền dưới sự dám sát của Hệ điều hành cho đến khi người dùng tự tắt chúng.
11
Lập trình game Sudoku trên hệ điều hành Android
PHẦN III: PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG GAME SUDOKU 3.1.
Lịch sử game Sudoku Sudoku có lịch sử xa xưa từ hàng ngàn năm.
Nó từng đi qua các nền văn hóa cổ, và có lẽ nó bắt nguồn từ Trung Hoa, theo như một tài liệu của Ả rập vào thế kỷ thứ 9. Năm 990, một danh sách những “Ô số kỳ ảo” đã xuất hiện và tỏ ra không khác mấy so với bản Sudoku xuất hiện trong Từ Điển Bách Khoa Ikhwan al-salfa cùa các học giả người Ả Rập.
Trong từ điển này, họ gọi nó là wafq.Những ô số vuông vắn ấy được dùng làm bùa để giúp phụ nữ dễ sinh đẻ. Nó được gọi tên là ô vuông buduh. Món bùa này trở nên phổ biến đến mức các nhà văn Hồi giáo bắt đầu lập ra các tổ hợp số phức tạp hơn sao cho không có con số nào lặp lại. Abraham Ben ibn Ezra - một nhà triết học kiêm chiêm tinh học người Hispanic (Tây Ban Nha - Bồ Đào Nha) gốc Do thái - bắt đầu quảng bá khối vuông buduh ở châu Âu. Ông đi khắp Tây Ban Nha, Ý và các nước khác ở châu Âu để giới thiệu với công chúng về “những ô số kỳ ảo”.
Ý tưởng tạo nên những ranh giới cho các khối vuông (biến nó thành trò chơi) đã được Ahmed al-Buni ghi lại vào năm 1225, mặc dù phương pháp này được tin là có xuất xứ từ Ba Tư.
12
Lập trình game Sudoku trên hệ điều hành Android
Sudoku có thêm một bước tiến hóa mới vào năm 1776 khi một nhà toán học kiêm vật lý học người Thuỵ Sĩ tên Leonhard Euler bắt đầu nghiên cứu và phát triển các luật chơi mà ngày nay ta gọi là luật chơi Sudoku. Năm 1901, một nhà toán học người Pháp tiếp tục công trình này và năm 1959, hai người Mỹ tên là Bose và Shrikhande nối gót theo ông ta. Đi xuyên qua một cuộc hành trình dài lâu và kiên trì, Sudoku lần đầu tiên được xuất bản vào cuối thập niên 1970 trong một tờ tạp chí ở New York. Tờ tạp chí này đã giới thiệu về các ô số kỳ ảo và khuôn nó lại trong một lưới 9x9, tạo thành từ các khối 3x3. Và như thế, Sudoku đã ra đời. Năm 1986, trong một chuyến đi Mỹ, một nhà xuất bản Nhật Bản, Nikoli, đã khám phá ra các ô số. Họ đặt tên cho nó là SuDoku (Su là số, Doku là đơn độc), và làm cho nó nhanh chóng trở thành một trò chơi phổ biến ở Nhật Bản. Những “con nghiền Sudoku” chỉ bó hẹp trong khuôn khổ xứ sở anh đào trong suốt hơn 20 năm cho đến khi một thẩm phán người Hồng Kông gốc New Zealand tên là Wayne Gould tình cờ phát hiện một cuốn sudoku trong một hiệu sách Nhật Bản. Ông đâm nghiền trò chơi số cổ xưa này. Năm 2004, niềm đam mê Sudoku đã đưa Wayne Gould đến với London (Anh). Nhân một chuyến thăm ngẫu nhiên báo The Times, Gould đã thuyết phục tổng biên tập của báo này cho đăng Sudoku bên cạnh các ô chữ. Độc giả lập tức bị cuốn hút và yêu cầu đăng thêm nữa. Chỉ trong vài tuần lễ, các tờ báo trên khắp nước Anh đã thi nhau đăng Sudoku. Từ đó, Sudoku bắt đầu lan rộng sang Mỹ, Canada, Úc, Pháp, Nam Phi và nhiều quốc gia khác. Sudoku là trò puzzle (đoán số hay chữ) phát triển nhanh nhất trên thế giới. Nó hiện
có hàng triệu tín đồ và con nghiền. Nhiều nhân vật nổi tiếng ủng hộ nó. Và nó đã có được một nhà vô địch thế giới. Chính quyền nhiều nước đã khuyến cáo Sudoku như một công cụ rèn luyện trí lực và hạn chế sự phát triển của bệnh Alzheimer. Sau hơn một ngàn năm phát triển, Sudoku Việt Nam giờ đã có mặt. Với sự dẫn dắt của Bờm, bạn sẽ có dịp chơi Sudoku trực tuyến miễn phí. Hãy chơi trên điện thoại di 13
Lập trình game Sudoku trên hệ điều hành Android
động của bạn, chơi trên sách báo và tham gia các sự kiện Sudoku mà Bờm tổ chức. Cũng như Bờm và Sudoku, bạn hãy kiên nhẫn, hãy tỏ ra thông minh và đừng vội vã khi đi tìm những đáp án. Những điều tốt đẹp nhất luôn đến với người biết chờ đợi. 3.2.
Cách chơi
Trước hết, bạn cần một trí tuệ sắc bén và một chút tập trung. Luật chơi Sudoku cực kỳ đơn giản, nhưng đáp án đôi khi lại cực kỳ khó giải. Do không cần dùng đến kiến thức số học hay tính toán, Sudoku thích ứng cho mọi người. Vì vậy trẻ em cũng có cơ hội giải được Sudoku thành công như người lớn. Trên thực tế, ở một số nước châu Âu, các em nhỏ đã chiến thắng người lớn trong các cuộc thi đấu Sudoku.
Điền vào những ô trống những con số thích hợp, theo quy luật đơn giản sau: Các ô ở mỗi hàng (ngang) phải có đủ các số từ 1 đến 9, không cần theo thứ tự. Các ô ở mỗi cột (dọc) phải có đủ các số từ 1 đến 9, không cần theo thứ tự. Mỗi miền 3x3, được viền đậm, phải có đủ các số từ 1 đến 9. Trò chơi bắt đầu với một lưới Sudoku, trong đó một số ô đã cho sẵn các con số đúng. Bạn phải suy luận để tìm ra những con số trong các ô trống còn lại. Các đề sudoku mức dễ thường bắt đầu với nhiều con số đã được điền sẵn, do đó bạn sẽ dễ tìm ra đáp án hơn. Càng tìm ra nhiều con số, bạn sẽ càng dễ tìm ra các con số khác.
14
Lập trình game Sudoku trên hệ điều hành Android
15
Lập trình game Sudoku trên hệ điều hành Android
3.3.
Xây dựng Game Sudoku trên Android
3.3.1. Yêu cầu về chức năng Có các chức năng sau: Newgame: tạo game mới Setting: cài đặt nhạc nền và âm thanh của game Help: giới thiệu và hướng dẫn cách chơi Quit: kết thúc game
3.3.2. Yêu cầu phi chức năng Có các yêu cầu phi chức năng sau: Giao diện game đẹp, dễ nhìn, sinh động, trực quan. Game có độ xử lý nhanh, nhạy. 3.4.
Phân tích thiết kế hệ thống
Hình 3: Chức năng nhánh của game
3.5.
Xây dựng game Sudoku
3.5.1. Giao diện chính của game Sudoku <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" />16
Mức độ chơi được so sánh bằng cách điền ngẫu nhiên các con số trong mỗi bàn chơi. Như mức dễ thì các con số sẽ nhiều hơn mức bình thường, khó và rất khó. Cứ như
thế cấp độ càng khó thì càng giảm các ô số. Khi ít các ô thì mỗi khi người chơi điền một ô số sẽ vạch ra nhiều đường hơn và như thế sẽ có nhiều phương án lựa chọn hơn.
PHẦN IV: TỔNG KẾT Android là một hệ điều hành di động hiện đại, có tiềm năng phát triển cao. Hiện nay đã sử dụng rộng rải ở nhiều hãng điện thoại và thực sự đã trở thành một tập đoàn điện thoại mạnh mẽ khi cạnh tranh với những dòng điện thoại khác như iPhone, Windown Phone, RIM Blackberry OS, Symbian…. Cùng với sự phát triển mạnh mẽ và sự tiến bộ nhanh chóng của hệ điều hành Android đã thúc đẩy và kéo theo sự phát triển của lập trình ứng dụng tiện ích cho điện thoại và đáp ứng nhu cầu game giải trí trên điện thoại. Xu hướng lập trình ứng dụng game cho điện thoại di động đang là xu hướng mới trong lập trình nói chung và trong truyền thông di động nói riêng đang hứa hẹn những tiềm năng và thành công trên con
đường phát triển không ngừng của khoa học công nghệ hiện nay. Qua quá trình thực hiện đồ án đã giúp em tìm hiểu sâu hơn về việc xây dựng ứng dụng game cho điện thoại di động sử dụng hệ điều hành Android. Với tính mới mẽ và cấp thiết của đề tài em đã cố gắng tìm hiểu và xây dựng chương trình game Sudoku trên nền điện thoại hệ điều hành Android. Ứng dụng game Sudoku là một chương trình giải trí mới đã được xây dựng hoàn thành trên hệ điều hành Android và đã được một số thành công nhất định. 4.1.
Kết quả đạt được
Ứng dụng game đã được xây dựng hoàn thành với các yêu cầu và mục tiêu của đồ án. Tìm hiểu thêm nhiều kiến thức về lập trình ứng dụng game. Chạy nhạc nền trong game
Em đã học thêm được rất nhiều những kiến thức về hệ điều hành Android và nắm được thêm các kỹ năng lập trình ứng dụng trong đó, đồ án tuy đã hoàn thành được các mục tiêu và yêu cầu đề ra nhưng vẫn còn một số hạn chế. 4.2. Hạn chế • Chưa giới hạn được thời lượng chơi • Chức năng Continue chưa hoàn thành được 24
Lập trình game Sudoku trên hệ điều hành Android
• Chưa thể làm thêm được chức năng tùy chọn (chọn tiếng động khi điền số….). • Giao diện chưa được thực sự đẹp 4.3.
Hướng phát triển
•
Xây dựng và hoàn thành chương trình đáp ứng những mặt còn hạn chế nêu trên.
•
Bổ sung thêm các tính năng và tiện ích mới.
•
Phát triển và triển khai rộng rãi chương trình trò chơi Sudoku cho điện thoại di đông và có thể thương mại hóa.