1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng game cờ gánh dân gian trên điện thoại android

69 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 2,7 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục đích và ý nghĩa Xây dựng game với các mục đích ý nghĩa sau: - Tạo ứng dụng game cờ gánh dân gian trên điện thoại Android có giao diện trực quan, phục vụ nhu cầu giải trí của nhiều n

Trang 1

z



NGÀNH: CỬ NHÂN CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI:

XÂY DỰNG GAME CỜ GÁNH DÂN GIAN

TRÊN ĐIỆN THOẠI ANDROID

GVHD : PGS.TSKH Trần Quốc Chiến SVTH : Nguyễn Quốc Tùng

Lớp : 10CNTT2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM

KHOA TIN HỌC

Trang 2



KHÓA LUẬN TỐT NGHIỆP

NGÀNH: CỬ NHÂN CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI:

XÂY DỰNG GAME CỜ GÁNH DÂN GIAN

TRÊN ĐIỆN THOẠI ANDROID

GVHD : PGS.TSKH Trần Quốc Chiến SVTH : Nguyễn Quốc Tùng

Lớp : 10CNTT2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM

KHOA TIN HỌC

Đà Nẵng, tháng 5 năm 2014

Trang 3

LỜI CẢM ƠN

Trước tiên, tôi muốn gửi lời cảm ơn sâu sắc nhất đến thầy giáo, Phó Giáo sư Tiến sĩ khoa học Trần Quốc Chiến đã tận tình hướng dẫn em trong suốt quá trình thực tập và thực hiện khóa luận tốt nghiệp

Tôi xin bày tỏ lời cảm ơn sâu sắc đến những thầy cô giáo đã giảng dạy tối trong suốt bốn năm qua, những kiến thức mà tôi nhận được trên giảng đường đại học sẽ là hành trang giúp tôi vững bước trong tương lai

Tôi cũng muốn gửi lời cảm ơn đến các anh chị và các bạn trong Công ty Cổ phần Phần mềm Kế toán BRAVO – nơi tôi đang công tác – đã giúp đỡ và cho tôi

những lời khuyên bổ ích về chuyên môn trong quá trình nghiên cứu

Cuối cùng, em muốn gửi lời cảm ơn sâu sắc đến tất cả bạn bè, và đặc biệt là cha

mẹ và anh chị em, những người luôn kịp thời động viên và giúp đỡ em vượt qua những khó khăn trong cuộc sống

Tôi xin chân thành cảm ơn!

Sinh viên thực hiện

Nguyễn Quốc Tùng

Trang 4

LỜI CAM ĐOAN

Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn trực

tiếp của thầy PGS.TSKH Trần Quốc Chiến

Mọi tham khảo dùng trong cáo cáo này đều được trích dẫn rõ ràng tên tác giả,

tên công trình, thời gian, địa điểm công bố

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo hay gian trá tôi xin chịu

hoàn toàn trách nhiệm

Sinh viên thực hiện

Nguyễn Quốc Tùng

Trang 5

MỤC LỤC

LỜI MỞ DẦU 1

TỔNG QUAN ĐỀ TÀI 2

I Phát biểu bài toán 2

II Mục đích, ý nghĩa, phạm vi đề tài 2

II.1 Tên đề tài 2

II.2 Mục đích và ý nghĩa 2

II.3 Phạm vi đề tài 3

III Những việc sẽ giải quyết trong đề tài 3

III.1 Các bước thực hiện 3

III.2 Dự kiến kết quả đạt được 3

IV Nội dung của đề tài 4

PHẦN 1: CƠ SỞ LÝ THUYẾT 5

I Tìm hiểu về Android 5

I.1 Android và hệ điều hành Android 5

I.2 Các phiên bản của hệ điều hành Android 6

I.3 Các thành phần ứng dụng của Android 9

I.3.1 Activity là gì? 9

I.3.2 Services 15

I.3.3 Content Providers 16

I.3.4 Intent 16

I.3.5 Broadcast receivers 17

II Lập trình ứng dụng Android 18

II.1 Thiết lập môi trường phát triển ứng dụng 18

II.2 Các thành phần trong Android Project 18

II.2.1 Tạo mới Android Project 18

II.2.2 Thiết kế giao diện trong Android 20

Trang 6

III.1 Giới thiệu về Cờ Gánh 25

III.2 Luật chơi game cờ gánh 26

PHẦN 2: THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG GAME CỜ GÁNH 29

I Phân tích hệ thống 29

I.1 Mô tả bài toán 29

I.2 Phân tích yêu cầu 30

II Thuật toán tìm kiếm có đối thủ 30

II.1 Cây trò chơi đầy đủ 31

II.2 Chiến lược Minimax 33

II.3 Phương pháp cắt tỉa Alpha – Beta 36

III Thiết kế hệ thống thông tin 39

III.1 Xây dựng kiến trúc chương trình 39

III.2 Xây dựng cấu trúc dữ liệu và thuật toán 42

III.3 Biểu đồ trạng thái 50

IV Biểu đồ lớp 51

PHẦN 3: KẾT QUẢ CỦA ỨNG DỤNG 52

I Màn hình Menu chính 52

II Màn hình chơi game 53

II.1 Lựa chọn mức độ 53

II.2 Bắt đầu game 53

II.3 Các nước đi hợp lệ 54

II.4 Khi mở gánh 55

III Kết thúc trò chơi 56

III.1 Màn hình khi chiến thắng 56

III.2 Màn hình khi thua 56

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57

TÀI LIỆU THAM KHẢO 58

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1.1: Hình ảnh về Android 5

Hình 1.2: Các phiên bản của hệ điều hành Andoid 6

Hình 1.3: Bản báo cáo mới nhất của Google về tình hình các phiên bản Android 9

Hình 1.4: Activity Lifecycle 13

Hình 1.5: Service Lifecycle 15

Hình 1.6: Truyền Intent và số liệu sang Activity khác 16

Hình 1.7: Tạo mới 1 ứng dụng Android 19

Hình 1.8: Cấu trúc 1 Project 20

Hình 1.9: Các em bé đang chơi cờ gánh trên bãi cát 26

Hình 1.10: Mô hình bàn cờ gánh 26

Hình 1.11: Các nước quân cờ có thể đi theo chiều mũi tên 27

Hình 1.12:Quân cờ đang vào ăn hai cặp gánh 27

Hình 1.13: Các quân cờ xanh đã bóp chết tất cả các quân cờ đỏ 28

Hình 1.14: Quân đỏ di chuyển theo chiều mũi tên thì để mở gánh 28

Hình 2.1: Vị trí ban đầu của bàn cờ Gánh 32

Hình 2.2:Biểu diễn cây trò chơi Cờ Gánh với Đỏ đi trước 33

Hình 2.3: Cắt bỏ cây con gốc a, nếu eval(u)> eval(v) 36

Hình 2.4: Minh họa giải thuật Alpha-beta 39

Hình 2.5: Kiến trúc menu trong game 39

Hình 2.6: Kiến trúc Game Loop của game 40

Hình 2.7: Các thuộc tính của ChessBoard 41

Hình 2.8: Máy tìm nước đi tốt nhất theo chiến lược Minimax 43

Hình 2.9: Khởi tạo giá trị bàn cờ ban đầu 44

Hình 2.10: Ví dụ quân cờ chỉ di chuyển theo hàng ngang, cột dọc 46

Hình 2.11:Nước đi hợp lệ của quân cờ 46

Hình 2.12: Ví dụ quân cờ xanh đang mở gánh, đối phương phải vào ăn gánh 47

Hình 2.13: Ví dụ các bước tìm các quân cờ bị bóp chết 49

Hình 2.14: Biểu đồ trạng thái InGame 50

Hình 2.15: Biểu đồ trạng thái cho cả hệ thống 50

Hình 2.16: Biểu đồ lớp 51

Hình 3.1: Giao diện main_menu của trò chơi 52

Hình 3.2: Lựa chọn mức độ trò chơi 53

Trang 8

Hình 3.3: Màn hình chính khi chơi game 53

Hình 3.4: Các nước đi hợp lệ của quân cờ 54

Hình 3.5: Mở gánh trong trò chơi 55

Hình 3.6: Màn hình chiến thắng 56

Hình 3.7: Màn hình khi thua 56

Trang 9

DANH MỤC TỪ VIẾT TẮT

- JDK : Java Development Kit

- SDK : Software Development Kit

- IDE : Integrated Development Environment

- Menu : Trình đơn

- User : Người sử dụng

- Touch : chạm (trỏ)

Trang 10

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

LỜI MỞ DẦU

Từ lâu, các loại hình giải trí thật sự đa dạng và phong phú, và khi game xuất hiện trên máy tính thì nó đã nhanh chóng trở thành công cụ giải trí số một trên toàn thế giới Số lượng người chơi game trên máy tính nhất là máy tính bảng và các thiết bị điện thoại di động lên tới con số hàng tỉ, không phân biệt về tuổi tác, giới tính hay màu da

Một trong số đó là game Snake được bắt nguồn từ một chiếc di động mà Nokia trình làng năm 1997 có tên là Nokia 6110 đã mở ra một kỷ nguyên mới cho lĩnh vực lập trình game trên di động Nhưng với sự hạn chế về đồ họa, tốc độ xử lý, cốt truyện game đã nhanh chóng gây ra nhàm chán đối với người chơi Và các công nghệ lập trình game đã ra đời như Brew, App Store, J2ME và đặc biệt là Android

Các thiết bị di động sử dụng hệ điều hành Android với phần cứng mạnh mẽ, các nút bấm chơi game chuyên dụng Thế giới game trên Smart phone lại gần như thống trị

cả thế giới Game được xây dựng trên các thiết bị di động này có hình ảnh mượt mà hơn, tốc độ xử lý mạnh mẽ hơn cùng với những hiệu ứng rất gần với thực tế hơn Cùng với đó là các loại hình game trí tuệ luôn có khả năng thu hút đông số người chơi, đặc biệt là số người chơi thích thử thách, đấu trí

Vì vậy em quyết định chọn đề tài “Nghiên cứu công nghệ phát triển game trên điện thoại Android Xây dựng game cờ gánh dân gian” làm đề tài khóa văn tốt nghiệp của mình Với mục đích tìm hiểu rõ hơn về Android, các tính năng của nó, nâng cao kỹ thuật lập trình cá nhân và đặc biệt là quản bá hình ảnh các trò chơi dân gian của Việt Nam không để nó bị mai mọt Hy vọng sẽ tạo ra được một sản phẩm có ích, đẹp mắt và thu hút người chơi

Trang 11

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

TỔNG QUAN ĐỀ TÀI

Trò chơi dân gian Cờ Gánh là một trong số trò chơi dân gian tương đối phổ biến

ở các vùng nông thôn Việt Nam Nhưng nó và các trò khác ngày càng bị quên lãng do

xã hội ngày càng phát triển diện tích đất ngày càng thu hẹp hơn và với những nhu cầu giải trí cao hơn Vì vậy việc tin học hóa trò chơi dân gian cũng được coi là hoàn toàn hợp lý

Đây là một trò chơi có cấu trúc và cách chơi hoàn toàn giống với trò chơi dân gian Cờ Gánh Trò chơi giúp cho việc tổ chức một ván chơi cờ gánh trở nên dễ dàng hơn Với những hình ảnh và các hỗ trợ khác tạo nên một không khí chơi hấp dẫn và tạo được sự hứng thú Với luật chơi đơn giản, trò chơi phù hợp với mọi lứa tuổi, hứa hẹn

sẽ là một trò chơi phổ biến trên các máy tính hiện nay

II.1 Tên đề tài

“Xây dựng game cờ gánh dân gian trên điện thoại Android”

II.2 Mục đích và ý nghĩa

Xây dựng game với các mục đích ý nghĩa sau:

- Tạo ứng dụng game cờ gánh dân gian trên điện thoại Android có giao diện trực quan, phục vụ nhu cầu giải trí của nhiều người chơi và giúp mọi người biết rõ hơn về trò chơi này

- Nắm bắt và hiểu được công nghệ lập trình game trên hệ điều hành Android Nâng cao kỹ năng lập trình, kỹ năng giải quyết vấn đề

- Ứng dụng trí tuệ nhân tạo để máy có khả năng suy nghĩ tối ưu cho mỗi nước

Trang 12

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

- Sử dụng thành thạo một số công cụ hổ trợ cho môi trường làm việc, lập trình game

II.3 Phạm vi đề tài

Ứng dụng trên các thiết bị di động sử dụng trên hệ điều hành Android có kích thước màn hình xác định, là một game trí tuệ có khả năng tổ chức chơi giữa Người và Máy với các mức độ khác nhau

III Những việc sẽ giải quyết trong đề tài

III.1 Các bước thực hiện

- Tìm hiểu thông tin liên quan

- Xem xét bàn bạc tính khả thi của các yêu cầu trong ứng dụng

- Xác định thời gian thực hiện và hoàn thành dự án

- Lên kế hoạch để thực hiện dự án

- Phân tích các yêu cầu của dự án

- Phân tích thiết kế từng chi tiết của từng module

- Dựa vào bảng phân tích thiết kế tiến hành code ứng dụng

- Tiến hành kiểm thử ứng dụng

- Báo cáo sẽ được viết song song trong suốt quá trình làm dự án

III.2 Dự kiến kết quả đạt được

Hi vọng chương trình sẽ đáp ứng được các yêu cầu như sau:

- Xây dựng hoàn chỉnh game cờ gánh chơi giữa người và máy với các mức độ khác nhau

- Đồ họa bắt mắt, các thao tác đơn giản, tiện dụng

- Tối ưu khả năng suy nghĩ của máy

Trang 13

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

IV Nội dung của đề tài

Toàn bộ khóa luận bao gồm 3 phần:

Trang 14

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

PHẦN 1:

CƠ SỞ LÝ THUYẾT

Android là một hệ thống điều hành, middleware và các ứng dụng di động chủ chốt Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu phát HD, HD Player, TV…) phát triển bởi Google và dựa trên nền tảng Linux Trước đây, Android được phát triển bởi công ty liên hợp Android (sau đó được Google mua lại vào năm 2005)

Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ java Sự ra mắt

của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di động trong tương lai

Tính năng mở của hệ điều hành Android là gì? Android được xây dựng cho

phép các nhà phát triển để tạo ra các ứng dụng di động hấp dẫn tận dụng tất cả một chiếc điện thoại đã cung cấp Nó được xây dựng để được thực sự mở Android được

Hình 1.1: Hình ảnh về Android

Trang 15

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

xây dựng trên mở Linux Kernel Hơn nữa, nó sử dụng một máy ảo tùy chỉnh được thiết

kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng trong môi trường di động Nền tảng này sẽ tiếp tục tiến triển như cộng đồng nhà phát triển công việc cùng nhau để xây dựng các ứng dụng di động sáng tạo

Tất cả ứng dụng có thể được tạo ra cho Android? Android không phân biệt giữa

các ứng dụng lõi của điện thoại và các ứng dụng của bên thứ ba Họ tất cả có thể được xây dựng để có thể truy cập bằng khả năng của một người cung cấp cho người sử dụng điện thoại với một dải rộng các ứng dụng và dịch vụ Với các thiết bị xây dựng trên Hệ điều hành Android, người dùng có thể hoàn toàn thích ứng với điện thoại đến lợi ích của họ Họ có thể trao đổi trên màn hình của điện thoại những phong cách của dialer,

hoặc bất kỳ ứng dụng

Phá bỏ các rào cản ứng dụng của Android? Android phá bỏ rào cản để xây

dựng các ứng dụng mới và sáng tạo Ví dụ như địa chỉ liên hệ của người dùng, lịch, hoặc vị trí địa lý - để cung cấp một trải nghiệm người dùng có liên quan hơn Với Android, một nhà phát triển có thể xây dựng một ứng dụng cho phép người dùng xem

vị trí của bạn bè của họ và được cảnh báo khi họ đang có trong vùng phù cận cho họ một cơ hội để kết nối

Trang 16

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Android 1.1 (Petit Four): Ra mắt ngày 9-2-2009 Không bao gồm nhiều tính

năng, phiên bản này bổ sung một số chức năng mới cho Google Maps hiển thị chi tiết hơn, bàn phím ảo gọi điện thoại đã có thể hiển thị hoặc ẩn khi gọi, chương trình SMS cho phép người dùng lưu tập tin đính kèm Petit Four sửa một số lỗi trong Android 1.0

Android 1.5 (Cupcake): Ra mắt ngày 30-4-2009 Cupcake, tên mã đầu tiên áp dụng cho phiên bản Android Cupcake mang nhiều tính năng mới như bàn phím ảo có

khả năng dự đoán từ đang gõ, từ điển từ ngữ do người dùng đặt ra, hỗ trợ widget trên giao diện chủ, quay phim và phát lại video clip, lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình theo hướng sử dụng (screen rotation)

Android 1.6 (Donut): Ra mắt ngày 30-9-2009 Donut khắc phục các chức năng

"lỏng lẻo" trong Cupcake, mở rộng chức năng tìm kiếm bằng giọng nói và ký tự đến

bookmark và danh bạ Android Market trở thành "chợ đầu mối" để người dùng tìm

kiếm và xem các ứng dụng Android Ứng dụng chụp ảnh và quay phim trong Donut

nhanh hơn Hệ điều hành hỗ trợ màn hình có độ phân giải lớn hơn, hướng đến các thế

hệ smartphone màn hình lớn

Android 2.0 (Eclair): Ra mắt ngày 26-10-2009 Chỉ sau gần một tháng ra mắt Donut, Google tung ra Eclair, phiên bản được nhận định là "bước đi lớn" của hệ điều hành này Eclair cải tiến rất nhiều, từ giao diện đến ứng dụng bên trong hệ thống Ứng

dụng chụp ảnh tăng cường thêm chức năng zoom số (phóng to), cân bằng trắng, hỗ trợ

đèn flash và các hiệu ứng màu sắc Eclair là phiên bản Android đầu tiên hỗ trợ ảnh

nền động (live wallpaper) dù tùy chọn này tiêu tốn khá nhiều pin

Android 2.2 (Froyo): Ra mắt ngày 20-5-2010 Từ phiên bản 2.0 trở đi, Android dần hoàn thiện hơn Froyo mang Adobe Flash đến Android, kéo theo hàng loạt ứng

dụng và game trên nền Flash Người dùng cũng có thể xem video clip nền Flash như

YouTube và "ra lệnh" thực hiện cuộc gọi qua Bluetooth

Trang 17

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Android 2.3 (Gingerbread): Ra mắt ngày 6-12-2010 Đến cuối năm 2012, Gingerbread vẫn đang "phủ sóng" trên rất nhiều thiết bị dùng Android, chiếm đến hơn

phân nửa (54%) Google hợp tác Samsung trình làng dòng smartphone đầu tiên sử

dụng Gingerbread mang tên Nexus S, hỗ trợ công nghệ giao tiếp tầm gần NFC

Android 3.0 (Honeycomb): Ra mắt ngày 22-2-2011 Đây không chỉ là một

phiên bản, mà có thể xem là một thế hệ Android đầu tiên dành riêng cho máy tính bảng (tablet), ra mắt cùng tablet Motorola XOOM Honeycomb đặt nền móng quan trọng

cho thế hệ Android 4.x hợp nhất, khắc phục sự phân mảng của Android

Android 4.0 (Ice Cream Sandwich) Ra mắt: ngày 19-10-2011 "Bánh kem

sandwich" (ICS) là thế hệ Android được mong đợi nhất đến nay, ra đời cùng dòng smartphone "bom tấn" Samsung Galaxy Nexus, thế hệ smartphone đầu tiên trang bị

ICS Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹp hơn

Android 4.1 (Jelly Bean): Ra mắt: 9-7-2012 Máy tính bảng Nexus 7, sản phẩm hợp tác giữa Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra mắt Android 4.1

nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều hành cho thiết bị di động hàng đầu hiện nay, đe dọa cả "ông lớn" Windows

Android 4.2 (vẫn là Jelly Bean) Ra mắt: tháng 11-2012 Chỉ sau gần năm tháng

ra mắt Android 4.1, Google tiếp tục bồi thêm sức nặng cho Android với phiên bản 4.2

và vẫn mang tên mã Jelly Bean

Android 4.3 (vẫn là Jelly Bean) Ra mắt: tháng 24-7-2012

Android 4.4 (KitKat): ra mắt cuối tháng 10 đầu tháng 11 năm 2013 Kitkat

mới nhanh chóng chiếm được cảm tình người dùng Các số liệu sau có thể cho thấy điều này

Trang 18

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Bản báo cáo mới nhất của Google về tình hình các phiên bản hệ điều hành Android trong tháng 3 cho thấy sự gia tăng đều đặn của các phiên bản Android mới,

trong đó có Android 4.4 KitKat

Hình 1.3: Bản báo cáo mới nhất của Google về tình hình các phiên bản Android

Android 2.2 Froyo giảm 0,1% so với tháng trước và hiệu chiếm 1,1% thị phần Android, phiên bản 3.2 Honeycomb vẫn giữ nguyên mức 0,1% của tháng 2

Gingerbread tiếp tục giảm từ 19% xuống cón 17,8% Trong khi đó, những phiên bản Android 4.x như 4.0 , 4.1 và 4.3 riêng Android 4.2 và 4.4 lại có sự tăng trưởng đáng kể Cụ thể, Android 4.2 tăng 1% chiếm 18,1% thị phần, đặc biệt Android 4.4 KitKat tăng trưởng gần như gấp đôi từ 2,5% trong tháng 2 lên 5,3% trong tháng 3 Thống kê được Google lấy sô liệu từ những thiết bị chạy Android có truy cập vào kho ứng dụng của Google Play, bao gồm cả việc những ứng dụng tự động kết nối và tải về

bản cập nhập từ Google Play (Theo http://www.thongtincongnghe.com/ )

I.3.1 Activity là gì?

Activity là một thành phần cơ bản của ứng dụng Android Mỗi activity thực hiện một chức năng của ứng dụng, trong mỗi ứng dụng Android luôn có một MainActivity,

Trang 19

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

khi ta chạy ứng dụng thì Activity này sẽ được gọi thực thi trước và thể hiện những giao diện hay control lên màn hình để người dùng có thể tương tác

Một ứng dụng thường bao gồm nhiều Activity có mối liên quan với nhau, và các activity này hoạt động theo cơ chế hàng đợi, có nghĩa khi một activity đang hoạt động nhưng một activity khác được kích hoạt hoặc activity đó có độ ưu tiên lớn hơn thì activity trước đó sẽ chuyển sang trạng thái Stop hoặc Pause để activity này thực hiện

 Tạo một Activity

Để tạo một Activity bạn cần phải tạo một lớp con kế thừa từ lớp Activity Trong lớp con bạn cần thực hiện các phương thức callback mà hệ thống sẽ thực hiện khi chuyển đổi giữa các activity trong vòng đời của nó, bao gồm các trạng thái như khởi tạo, dừng, chạy, hay ngừng hẳn

 Thực hiện một giao diện người dùng

Giao diện người dùng cho một hoạt động được cung cấp bởi một hệ thống các quan điểm, đối tượng dẫn xuất từ lớp View Mỗi đối tượng View được trình bày trên không gian hình chữ nhật (Màn hình mobile) và ta có thể xử lý những sự kiện thông qua các câu lệnh trên các đối tượng View đó

 Khai báo activity trong Manifest

Bạn cần khai báo Activity trong tập tin AndroidManifest để nó có thể truy cập vào hệ thống Để có thể khai báo bạn cần phải mở tập tin AndroidManifest trong Project của bạn rồi thêm một thẻ <activity> ở bên trong cặp thẻ <application> như sau:

Trang 20

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Ngoài ra, bạn còn có thể thêm một số thuộc tính khác cho activity như label, icon, theme style

 Sử dụng intent filters

Một Activity cũng có thể chỉ định những bộ lọc khác nhau tùy mục đích sử dụng, các yếu tố lọc được để trong thẻ <intent-filter> bao gồm các yếu tố để có thể kích hoạt activity đó

Các phần tử trong thẻ tab <action> xác định thực hiện hành động của ứng dụng đối với activity đó Còn các phần tử trong thẻ <category> xác định activity này nên được liệt kê khi khởi tạo ứng dụng hệ thống (cho phép người dùng gọi activity đó)

 Bắt đầu một Activity

Bạn có thể gọi một activity bằng phương thức startActivity(), thông qua Intent

mà bạn đã miêu tả về activity đó khi bạn muốn bắt đầu

Trang 21

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

bị mà có thể thực hiện action đó cho bạn Nếu có nhiều hoạt động có thể xử lý các intent, thì người dùng có thể cọn bất kỳ một trong các intent để sử dụng Ví dụ bạn muốn cho người dùng gửi mail, bạn có thể tạo ra các intent sau đây:

Các EXTRA_MAIL được thêm vào intent là một mảng các chuỗi địa chỉ email

mà sẽ được gửi Khi một ứng dụng mail hồi đáp intent này, nó sẽ đọc mảng chuỗi được cung cấp bên trong extra và thay thế chúng trong trường “To” của Form gửi mail Trong trường hợp này activity của ứng dụng sẽ được gọi khi người dùng đã thực hiện

và activity đó sẽ được resume lại

Trang 22

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Hình 1.4: Activity Lifecycle

Trang 23

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Trong đó:

 onCreate: Khởi tạo activity

 onStart: thực hiện activity

 onResume: Thực hiện tiếp tục một activity

 onPause: Tạm dừng một activity

 onStop: Dừng hẳn một activity

 onRestart: Thực hiện lại activity

Android có cơ chế quản lý các tiến trình theo chế độ ưu tiên Các tiến trình có

độ ưu tiên thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tài nguyên

 Một Activity bao gồm 4 trạng thái

 Active (running): Activity đang hiển thị lên màn hình (foreground)

 Paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus)

 Stop: Một activity được thay thế hoàn toàn bở một activity khác sẽ chuyển sang trạng thái stop

 Killed: Khi hệ thống thiếu bộ nhớ nó sẽ giải phóng các tiến trình theo nguyên tắc độ ưu tiên Các activity ở trạng thái stop hoặc pause cũng có thể

bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó

 Vậy ta có thể hiểu vòng đời của Activity nhƣ sau:

 Entire lifetime: Bắt đầu phương thức onCreate() cho tới phương thức

onDestroy()

 Visible lifetime: Từ phương thức onStart() cho tới phương thức onStop()

Trang 24

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

 Foreground lifetime: Từ phương thức onResume() đến phương thức

onPause()

I.3.2 Services

Services là những thành phần chạy ẩn trong ứng dụng Android Service

sử dụng để cập nhật thông tin, dữ liệu hay đưa ra các cảnh cáo, nhắc nhở Một service

có thể chạy nền và có thể tiếp tục chạy khi người dùng chuyển sang một Activity khác

Để bắt đầu một service bạn cần gọi phương thức startService() khi một thành phần của ứng dụng được bắt đầu, ví dụ như một Activity Service cần được khai báo trong file AndroidManifest.xml của ứng dụng:

Hình 1.5: Service Lifecycle

Trang 25

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

I.3.3 Content Providers

Content Providers giúp lưu trữ và lấy dữ liệu và làm cho nó có thể truy cập đến tất cả các ứng dụng khác Đây là cách duy nhất để chia sẻ dữ liệu qua các ứng dụng

Dữ liệu thường được lưu trữ ở file hệ thống hoặc trong một Sqlite Database Content Provider thực hiện một tập phương thức chuẩn mà các ứng dụng khác có thể truy xuất và lưu dữ liệu của loại nó điều khiển Tuy nhiên những ứng dụng không thể gọi các phương thức trực tiếp Hơn thế chúng dùng content resolver và gọi những phương thức đó Một content resolver có thể giao tiếp đến nhiều content provider; nó cộng tác với các provider để quản lý bất kỳ giao tiếp nào liên quan

Mỗi ứng dụng Android chạy trên Process của nó Bất cứ lúc nào Content Provider cũng có thể quản lý được các thành phần bên trong nó

 Android phải đảm bảo các process thành phần phải đang chạy

 Khởi tạo nếu cần thiết

 Một trường hợp tương thích của các thành phần là có giá trị hoặc đang

khởi tạo trong trường hợp cần thiết

I.3.4 Intent

 Intent là gì?

Intent là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity Intent còn là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau

Trang 26

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Intent chính là người đưa thư, giúp chúng ta triệu gọi cũng như truyền các dữ liệu cần thiết để thực hiện một Activity từ một Activity khác

Intent là một khái niệm then chốt và đặc trưng của Android Platform Có thể nói lập trình Android chính là lập trình Intent base

 Các thuộc tính của đối tƣợng Intent

Intent về cơ bản là một cấu trúc dữ liệu được mô tả trong lớp

android.content.Intent

Action: Tên (string) của action mà Intent sẽ yêu cầu thực hiện, có thể

là action được android định nghĩa sẵn (built-in standard action) hoặc

do người lập trình tự định nghĩa

Data: Dữ liệu mà activity được gọi sẽ xử lý, định dạng URI thông qua

hàm Uri.parse(data)

Category: thông tin về nhóm của action

định

Component: chỉ định cụ thể lớp sẽ thực thi Activity, khi được xác

định các thuộc tính khác trở thành không bắt buộc (optional)

Extras: chứa tất cả các cặp (key, value) do ứng dụng thêm vào để

truyền qua Intent(cấu trúc Bundle)

I.3.5 Broadcast receivers

Là một thành phần của ứng dụng có chức năng thu nhận và phản ứng lại những thông báo được broadcast Nhiều broadcast gốc trong mã hệ thống và các ứng dụng cũng có thể khởi tạo broadcast

Trang 27

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Broadcast receivers không hiển thị giao diện người dùng Tuy nhiên chúng có thể khởi tạo một Activity phản hồi lại những thông tin được nhận Chúng cũng có thể dùng Notification Manager để thông báo đến người dùng

II.1 Thiết lập môi trường phát triển ứng dụng

Môi trường được thiết lập trên các hệ điều hành Windows và cụ thể ở đây tôi dùng Windows 8 bản 64 bit Để thực hiện việc này bạn cần có các gói cài đặt sau:

 JDK Java for windows

II.2 Các thành phần trong Android Project

II.2.1 Tạo mới Android Project

Mở eclipse, chọn File  New  Android Application Project (trường hợp không có Android Application Project thì ta bấm vào Orther)

Trang 28

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Hình 1.7: Tạo mới 1 ứng dụng Android

- Application Name: Tên ứng dụng mà bạn mong muốn

- Project Name: Tự động cập nhập khi chúng ta điền Application Name

- Package Name: Tên package, bạn đặt sao cũng được nhưng sao cho dễ nhớ và

không có các ký tự đặc biệt (chỉ gồm chữ thường và các chữ số từ 0 ~ 9)

- Minimum Required SDK: Phiên bản Android thấp nhất chạy ứng dụng này

- Target SDK: Phiên bản hiện tại của ứng dụng

- Compile With: Phiên dịch sang phiên bản khác

Sau khi tạo mới xong 1 Android Application Project ta sẽ tìm hiểu cấu trúc của một Android Project Một Android Project gồm:

- /src folder: chứa các mã nguồn (source code) là các file Java

- /gen: Chứa file R.java dùng để quản lý các tài nguyên được tạo ra từ các tập tin

nguồn, file này tự tạo nên không được chỉnh sửa, thay đổi

Trang 29

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

- /Android 4.4: bao gồm các API 4.4 tương ứng với hệ điều hành Android 4.4,

các thư viện này được Import khi ta khởi tạo Project bằng cách chọn Target ở

trên

- /assets: chứa các file tài nguyên như database sẽ đi

kèm với Project khi ta đóng gói ứng dụng

- /res/drawable-hdpi: nơi lưu hình ảnh sử dụng cho

ứng dụng hdpi (High dpi: độ phân giải cao) tương thích với điện thoại có màn hình WVGA800 (480x800), WVGA854 (480x854)

- /res/drawable-ldpi: cũng là thư mục để chứa các

file ảnh có độ phân giải thấp hơn Low dpi: QVGA (240x320), WQVGA400 (240x400), WQVGA432 (240x432)

- /res/drawable-mdpi: chứa các file ảnh có độ phân

giải trung bình Medium dpi: HVGA (320x480), WVGA800 (480x800), WVGA854 (480x854)

- /res/layout/main.xml: file thiết kế giao diện cho ứng dụng, có thể tạo thêm

nhiều file khác cho nhưng màn hình khác nhau

- /res/values/strings.xml: định nghĩa giá trị cho các tài nguyên trong project,

giúp tối ưu hóa trong việc quản lý giá trị mặc định các đối tượng String trên mỗi layout

- /AndroidManifest.xml: file cấu hình cho ứng dụng

Ngoài ra còn có một số folder và file do người lập trình tự định nghĩa

II.2.2 Thiết kế giao diện trong Android

Không giống như lập trình java thông thường, lập trình android ngoài các lớp

Hình 1.8: Cấu trúc 1 Project

Trang 30

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

dòng XML nào, nhưng sử dụng XML sẽ đơn giản công việc đi rất nhiều Đồng thời sử dụng XML sẽ giúp việc chỉnh sửa ứng dụng sau này trở nên dễ dàng

Về nguyên tắc, khi lập trình ứng dụng ta thiết kế giao diện bằng XML và cài đặt các xử lý khi tương tác với giao diện trong code

 Các Layout

Layout được dùng để quản lý các thành phần giao diện khác theo 1 trật tự nhất định Layout được sử dụng nhằm mục đích thiết kế giao diện cho nhiều độ phân giải Thường khi lập trình nên kết hợp nhiều layout với nhau để tạo ra giao diện bạn mong muốn

FrameLayout: Layout đơn giản nhất, thêm các thành phần con vào

góc trên bên trái của màn hình

LinearLayout: thêm các thành phần con theo 1 chiều nhất định

(ngang hoặc dọc) Đây là layout được sử dụng nhiều nhất

RelativeLayout: thêm các thành phần con dựa trên mối quan hệ với

các thành phần khác hoặc với biên của layout

TableLayout: thêm các thành phần con dựa trên 1 lưới các ô ngang và

dọc

AbsoluteLayout: thêm các thành phần con dựa theo tọa độ x, y

 Một số thuộc tính cơ bản

Layout_width, layout_height: chiều rộng của view fill_parent là to

bằng kích thước của layout chứa view này, wrap_content là vừa đủ nội dung cần hiển thị của view)

Orientation: với LinearLayout, việc sắp xếp các view là nằm kề nhau

theo hàng ngang hoặc hàng dọc, ta khai báo orientation để chọn sắp theo kiểu nào (horizontal/vertical)

Trang 31

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Gravity: thuộc tính này qui định các view nằm bên trong layout sẽ đặt

theo vị trí nào so với layout(trung tâm, trái , phải, trên dưới…)

Weight: để các view phần chia tỉ lệ diện tích hiển thị trên màn hình (tỉ

lệ tính theo weight của từng view trên tổng số weight, các view ko khai báo weight thì sẽ xem qua width và height)

 Đồ họa trên Android

Android cung cấp cho chúng ta một thư viện đồ họa đầy đủ, đó chính là gói

android.graphics Bên trong nó chứa các lớp đồ họa như Color, Canvas

- Color: Color được thể hiện bởi 4 giá trị, đầu tiên là alpha, red, green and blue

(AGRB) Mỗi thể hiện gồm 256 giá trị(8 bit) do đó một màu có giá trị cao nhất lên tới 32 bit integer Với android thuận tiện hơn khi cho phép chúng ta thể hiện giá trị màu bằng một số nguyên thay vì thể hiện theo cách của lớp Color hay dùng

Để khởi tạo một giá trị màu ta có thể khai báo:

Nếu ta có thể biết độ alpha, thì ta có thể khai báo:

Nhưng trong Android, người ta thường định nghĩa trong file XML, chẳng hạn

color.xml để sau này thuận tiện hơn cho việc sửa chữa

Khi đó ta sử dụng màu trong code của mình bằng cách:

Trang 32

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

- Paint: Paint là một lớp quan trọng trong Android, một ứng dụng android chẳng

khi nào thiếu lớp này Nó bao gồm các kiểu style, color và những thông tin cần thiết để vẽ bất cứ dạng đồ họa nào như bitmap, text,

Ví dụ: ta paint cái gì lên screen, muốn vẽ nó với solid color Ta set nó như sau:

cPaint.setColor(Color.LTGRAY);

- Canvas: Là một lớp quan trọng trong quá trình xây dựng ứng dụng, đặc bệt

trong Game Nếu như lớp Paint cung cấp cho bạn những dụng cụ như color, đường nét, độ to nhỏ của nét để vẽ, thì Canvas cung cấp cho bạn những phương thức để vẽ nên những gì bạn muốn, đường thẳng, đường tròn, hình chữ nhật,

Để sử dụng Canvas để vẽ, ta cần override lại phương thức View.onDraw()

@Override Protected void onDraw(Canvas canvas) { // Drawing commands go here

} Lúc này ta có thể đưa những phương thức vẽ vào onDraw()

- Bitmap: Đối tượng Bitmap là một kiểu tổ chức bộ nhớ hoặc định dạng tập tin

để lưu trữ ảnh số Đối tượng Bitmap đơn giản là một mảng hai chiều, trong đó mỗi phần tử chứa một giá trị màu RGB tương ứng với một điểm màu trên bức ảnh số hoặc điểm màu được vẽ lên màn hình

Ta dùng BitmapFactory.decodeResource( ) để đối tượng Bitmap từ một tập tin hình ảnh lưu trong thư mục drawable

@Override

protected void onDraw(Canvas canvas) {

Paint bPaint=new Paint();

Bitmap bitmap =

BitmapFactory.decodeResource(getResource(),

Trang 33

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

R.drawable.image);

Canvas.drawBitmap(bitmap,0,0,bPaint); }

 Âm thanh trên Android

Android cung cấp cho chúng ta một thư viện đa phương tiện đầy đủ (audio và video), đó là gói android.media Phần chính của gói này là lớp MediaPlayer

Trong một ứng dụng game ta cần sử dụng lớp MediaPlayer để phát âm thanh cho game những lúc cần thiết Android hổ trợ một số định dạng âm thanh như OGG, MP3, WAV Để phát được âm thanh trước hết ta phải tạo đối tượng MediaPlayer bằng phương thức MediaPlayer.create( ) Sau đó gọi phương thức start() để bắt đầu phát âm thanh

MediaPlayer media = MediaPlayer.create(this, R.raw.amthanh); Media.start();

Phương thức seedTo( ) được gọi với tham số là playbackPosition được truyền vào, khi ta gọi phương thức start() thì mediaPlayer sẽ bắt đầu chơi tại vị trí playbackPosition

Media.seedTo(5000);

Media.start(); // bat đau phát tu giây thu 5

Ngoài ra lớp MediaPlayer còn chứa phương thức stop() để dừng âm thanh khi cần thiết Nếu đã gọi phương thức stop() để dừng âm thanh, khi nào muốn phát lại âm thanh thì phải gọi phương thức prepare() trước khi gọi lại start() một lần nữa Nhưng nếu gọi pause() thì ta có thể gọi start() ngay mà không cần gọi prepare()

media.stop(); //dừng âm thanh lại media.prepare();

Trang 34

Xây dựng game cờ Gánh dân gian GVHD: PGS.TSKH Trần Quốc Chiến

Ngoài ra khi đã sử dụng xong đối tượng MediaPlayer ta gọi phương thức release() để giải phóng đối tượng MediaPlayer

III.1 Giới thiệu về Cờ Gánh

Văn hóa dân gian nói chung, trò chơi dân gian nói riêng là nơi nuôi dưỡng tâm hồn con người Việt Nam từ xưa và vẫn còn nguyên giá trị cho đến ngày hôm nay Trò chơi dân gian không chỉ là hoạt động giải trí những lúc nhàn rỗi mà còn thể hiện bản lĩnh, trí tuệ và lòng tự hào dân tộc của cha ông ta Cũng như bao miền quê khác trên mảnh đất Việt Nam, người xứ Quảng cũng góp phần làm nên những hương sắc riêng trong văn hóa dân gian Trong những giá trị văn hóa ấy, cờ Gánh là một trong những trò chơi thể hiện trí tuệ và tính nhân văn sâu sắc của mảnh đất và con người nơi đây Cho đến nay không ai biết chắc chắn cờ Gánh xứ Quảng được ra đời từ khi nào Một giả thiết nguồn gốc của trò chơi này được nghĩ đến đó là từ môn cờ Vây, cờ Tướng của người Trung Hoa, cờ Vua của người phương Tây, người dân xứ Quảng đã được giản cách chơi, kết hợp với các môn cờ dân tộc để làm nên cờ Gánh cho riêng mình chăng? Bởi lẽ trước đây Hội An – Quảng Nam là một thương cảng tấp nập, trên bến dưới thuyền, với sự xuất hiện của cả người Hoa lẫn người phương Tây đã mang theo các môn cờ vào nước ta Tuy nhiên đây chỉ là những giả thiết và cần được tiếp tục chứng minh qua thời gian và tâm sức của những con người yêu mảnh đất xứ Quảng Tạm gác lại nguồn gốc của trò chơi, chúng ta có thể thấy thông qua bộ môn cờ Gánh người Quảng đã gửi gắm vào đây sự sáng tạo và cả những bài học nhân văn đầy ý nghĩa

Ngày đăng: 22/05/2021, 10:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w