Lập trình game sudoku trên hệ điều hành android
Trang 1NHẬN XÉT CỦA GIÁO VIÊN HƯƠNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Hưng Yên, ngày … tháng … năm 2012
Trang 2MỤ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
Trang 3Quit: 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
Trang 4MỤ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
Trang 5Nowadays ,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
Trang 6- 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
Trang 7PHẦ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
Trang 81.2 Kiến trúc Android.
Hinh 1: Mô hình kiến trúc nền tảng AndroidTheo 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
Trang 9tí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.
Trang 10Java 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
2-5 lần so với các phiên bản trước
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.
Trang 11 Balsamiq mockups và AdobeFireworks: giúp nhanh chóng phác thảo ý
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
Trang 12PHẦ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ư
Trang 13Sudoku 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
Trang 14độ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.
Đ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
Trang 163.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.1 Giao diện chính của game Sudoku
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
Trang 19Hinh 4: Giao diện chính game
Trang 203.4.2 Giao diện mức độ chơi
Hinh 5: Giao diện mức độ chơi của game Sudoku
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
Trang 213.5.2 Giao diện chơi game
3.5.3 Giao diện lựa chọn số
3.5.4 Giao diện Setting
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lndialogmenusetting"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
Trang 233.5.5 Giao diện Help
Hinh 7: Giao diện help của game Sudoku
Trang 24PHẦ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