Catalouge 2010

pnlongpro

ĐẠI HỌC ĐÀ NẴNG

TRƢỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN

Tel. (84-511) 736 949, Fax. (84-511) 842 771

Website: itf.dut.edu.vn, E-mail: cntt@dut.udn.vn

----------

BÁO CÁO THỰC TẬP TỐT NGHIỆP

NGÀNH CÔNG NGHỆ THÔNG TIN

MÃ NGÀNH : 05115

ĐỀ TÀI

TÌM HIỂU HỆ ĐIỀU HÀNH WINDOWS PHONE

VÀ XÂY DỰNG GAME TETRIS

SVTH : Hoàng Văn Hiếu

Lớp : 11TH2.LT

Đơn vị : Công ty CP GPCN LAPOO

CBHD : Nguyễn Văn Thanh

Đà Nẵng, tháng 8 năm 2013


LỜI CAM ĐOAN

Em xin cam đoan :

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

trực tiếp của anh Nguyễn Văn Nguyên

2. Mọi tham khảo dùng trong bá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ố.

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

chịu hoàn toàn trách nhiệm.

Sinh viên thực hiện

Hoàng Văn Hiếu


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

MỤC LỤC

LỜI CAM ĐOAN ....................................................................................................... 2

Chƣơng 1 .................................................................................................................... 5

GIỚI THIỆU VỀ CÔNG TY THỰC TẬP ............................................................. 5

I. Giới thiệu về đơn vị thực tập .................................................................................. 5

II. Triết lý kinh doanh và lĩnh vực hoạt động ............................................................. 6

Chương 2 ..................................................................................................................... 7

GIỚI THIỆU CHUNG VỀ ĐỀ TÀI ............................................................................ 7

2.1 Mục tiêu và nhiệm vụ của đề tài ........................................................................ 7

2.1.1 Nhiệm vụ: ............................................................................................................. 7

2.1.2 Mục tiêu: ............................................................................................................... 7

2.2 Khả năng ứng dụng thực tế. .............................................................................. 7

Chƣơng 3 .................................................................................................................... 8

CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI ........................................................................ 8

3.1. Giới thiệu về hệ điều hành Windows Phone 7 .................................................... 8

3.1.1 Giới thiệu ........................................................................................................ 8

3.1.2 Lịch sử các phiên bản phát triển của Windows Phone ................................... 9

3.1.3 Kiến trúc ....................................................................................................... 10

3.1.4 Vòng đời phát triển của 1 ứng dụng Windows Phone.................................. 11

3.1.5 Bắt đầu với App Hub .................................................................................... 11

3.1.6 Thiết kế một ứng dụng và sản sinh ra một gói ứng dụng ............................. 12

3.2 Giới thiệu công nghệ Silverlight ..................................................................... 12

3.2.1 Tổng quan ........................................................................................................... 12

3.2.2 Silverlight là gì ? ................................................................................................. 12

3.2.3 Các đặc tính của Silverlight ................................................................................ 13

3.3 Nghiên cứu công nghệ Silverlight ................................................................... 14

3.3.1 Kiến trúc tổng thể và các thành phần Siverlight ................................................. 14

3.3.2 Nền tảng của Silverlight: .................................................................................... 16

Bảng 1.3. Bảng mô tả .Net Framework cho Silverlight ............................................... 17

3.4 Giới thiệu về XNA .......................................................................................... 17

3.4.1 XNA là gì ? ......................................................................................................... 17

3.4.2 Tại sao nên sử dụng XNA ? ................................................................................ 17

3.4.3 Các phiên bản XNA ............................................................................................ 18

2.2 Kiến trúc của XNA .......................................................................................... 19

2.2.1 Kiến trúc của XNA ............................................................................................. 19

2.3 Các thành phần trong XNA ............................................................................. 20

Chƣơng 4 .................................................................................................................. 22

XÂY DỰNG ỨNG DỤNG VỚI WINDOWS PHONE ........................................ 22

4.1. Tạo mới 1 Project : ......................................................................................... 22

4.2 Giới thiệu về ngôn ngữ XAML và các control dùng trong ứng dụng Windows

Phone ..................................................................................................................... 23

4.2.1 Giới thiệu ngôn ngữ XAML ............................................................................... 23

4.2.2 Sử dụng Expression Blend để xây giao diện trong Windows Phone 7.1 ............ 24

4.2.3 Làm việc với TextBox và ViewBox ................................................................... 25

Chƣơng 5 .................................................................................................................. 27

XÂY DỰNG CHƢƠNG TRÌNH ............................................................................ 27

5.1 Giới thiệu về đề tài. ............................................................................................. 27

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 3 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

5.2 Khảo sát đề tài ..................................................................................................... 27

5.3 Mô hình USECASE ............................................................................................ 28

5.3.1. Sơ đồ Use-Case ........................................................................................... 28

5.3.2 Danh sách các Actor ..................................................................................... 29

5.3.3 Danh sách các Use-case ............................................................................... 29

5.4 Đặc tả Use-case ............................................................................................... 29

5.4.1. Use-case “Game Tetris” ..................................................................................... 29

5.4.2. Use-case “Chơi mới” ......................................................................................... 30

5.4.3. Use-case “Level” ............................................................................................... 30

5.4.4. Use-case “Hướng dẫn” ...................................................................................... 31

5.4.5. Use-case “Thông tin” ......................................................................................... 31

5.4.6. Use-case “Thoát” ............................................................................................... 32

Chƣơng 6 .................................................................................................................. 34

THIẾT KẾ GIAO DIỆN VÀ DEMO CHƢƠNG TRÌNH ................................... 34

6.1. Danh sách các màn hình ................................................................................. 34

6.2.2. Màn hình “Chơi Game” ..................................................................................... 35

6.2.3. Màn hình “Chọn cấp độ” ................................................................................... 36

6.2.4. Màn hình “Hướng dẫn” ..................................................................................... 37

6.2.5. Màn hình “Thông tin” ........................................................................................ 38

6.3. Kết quả thực hiện ............................................................................................ 39

6.3.1 Môi trường phát triển và triển khai ..................................................................... 39

6.3.2 Kết quả đạt được ................................................................................................ 39

6.4. Hướng phát triển: ............................................................................................ 40

TÀI LIỆU THAM KHẢO ...................................................................................... 41

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 4 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Chƣơng 1

GIỚI THIỆU VỀ CÔNG TY THỰC TẬP

I. Giới thiệu về đơn vị thực tập

‣ Tên đơn vị thực tập:

Công ty cổ phần giải pháp công nghệ Lapoo

‣ Địa chỉ:

Lô 04 – C42, Bắc Sơn, Q. Cẩm Lệ, TP. Đà Nẵng

‣ Lịch sử phát triển

Được thành lập ngày ngày 17 tháng 05 năm 2011. Tên giao dịch là LAPOO

Joint Stock Company. Tên viết tắt là LAPOO.

Với tâm niệm “Khách hàng là người quyết định đến sự thành bại của

LAPOO”, chúng tôi không ngừng khám phá và ứng dụng những thành tựu của

Công nghệ thông tin vào hoạt động kinh doanh của doanh nghiệp, đồng hành

cùng doanh nghiệp trong các hoạt động kinh doanh và quảng bá thương hiệu.

‣ Tầm nhìn:

Phát triển LAPOO trở thành một công ty đầu tư mạo hiểm có thương hiệu có

hiệu quả, tạo ra những công ty cung cấp sản phẩm, dịch vụ tốt nhất Việt Nam.

‣ Sứ mệnh:

- Xây dựng LAPOO phát triển bền vững.

- Xây dựng LAPOO thành một nơi mỗi nhân viên lấy việc cung cấp dịch vụ

CHẤT LƯỢNG, CÓ ÍCH làm động lực cho mình.

- Xây dựng LAPOO thành một hơi HẠNH PHÚC với những con người có

niềm tin mãnh liệt.

‣ Giá trị cốt lõi:

- Phục vụ khách hàng là tiên quyết.

- Khuyến khích khả năng và và tính sáng tạo cá nhân.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 5 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

- Có trách nhiệm với cộng đồng và xã hội.

- Đem lại lợi nhuận cho cổ đông bằng sức lao động và có ích cho con người.

- Thường xuyên đổi mới, luôn cố gắng để tốt hơn.

II. Triết lý kinh doanh và lĩnh vực hoạt động

‣ Triết lý kinh doanh:

- Tập trung vào những nỗ lực để trở thành công ty cung cấp sản phẩm, dịch

vụ tốt nhất và chăm sóc khách hàng hoàn hảo nhất. (Chứ không phải công ty

lớn nhất)

- Theo đuổi niềm đam mê kinh doanh bằng lòng nhiệt thành và đam mê

mãnh liệt nhất.

- Đối xử với các nhân viên đúng như cách thức chúng ta mong muốn mình

được đối xử.

- Tuyển dụng những ai có thể truyền tải niềm đam mê tới khách hàng và các

nhân viên khác.

- Nếu các khách hàng của chúng ta thành công, chắc chắn chúng ta cũng sẽ

thành công.

- Hãy thực hiện những điều bất khả thi, vì nếu khả thi thì người khác đã làm

rồi.

- Trong công ty, chỉ có một ông chủ duy nhất đó là Khách hàng, Khách hàng

có thể đuổi việc từ Giám đốc đến Nhân viên chỉ với một hành động duy nhất

đó là mua hàng của công ty khác. (Sam Walton, Wal-Mart).

‣ Các lĩnh vực hoạt động chính:

Công ty CP GPCN Lapoo được thành lập vào năm 2011, hoạt động trong

lĩnh vực thiết kế và lập trình website, gia công phần mềm và cung cấp dịch

vụ Seo chuyên nghiệp tại Đà Nẵng cũng như cả nước.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 6 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Chƣơng 2

GIỚI THIỆU CHUNG VỀ ĐỀ TÀI

2.1 Mục tiêu và nhiệm vụ của đề tài

2.1.1 Nhiệm vụ:

- Tìm hiểu công nghệ ADO.Net trong lập trình Game Mobile

- Nghiên cứu công nghệ Silverlight trong lập trình Game.

- Nghiên cứu XNA trong lập trình Game

- Tìm hiểu và nghiên cứu Lập trình game với Windows Phone

2.1.2 Mục tiêu:

Nghiên cứu, cài đặt thuật toán và thử nghiệm đề tài Game Tetris trên nền tảng

Windows Phone.

2.2 Khả năng ứng dụng thực tế.

Như chúng ta đã biết, hiện nay hơn 90% dân thế giới sử dụng điện thoại và hơn

60% trong số đó sử dụng các dòng điện thoại cao cấp như Smartphone phục vụ

cho mục đích giải trí của mình như quay phim, chụp hình, nghe nhạc, lướt net…và

hơn 50% trong số đó để chơi Game. Theo đó, số người dùng smartphone sẽ tăng từ

100 triệu người năm 2009 lên 1 tỉ người năm 2013.

Điện thoại thông minh phát triển mạnh ở Việt Nam đang được đánh giá là

thiên đường để cho các nhà phát triển ứng dụng di động.

Hệ điều hành Windows Phone là một hệ điều hành khá mới và chưa được ưu

chuộng tại thị trường Việt Nam. Tuy nhiên thị trường Windows Phone đang được

đánh giá là một thị trường đầy tiềm năng và phát triển rộng khắc trong thời gian tới.

Các ứng dụng trên nền Windows Phone cũng đang được chú trọng phát triển và đây

sẽ là mảnh đất màu mỡ cho các nhà phát triển ứng dụng cho dòng Smartphone.

Vì vậy, khả năng ứng dụng của các công nghệ và ngôn ngữ lập trình vào thực

tế là rất cao và rất cả khả thì đặc biệt là với ứng dụng trên nền Windows Phone.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 7 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Chƣơng 3

CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI

3.1. Giới thiệu về hệ điều hành Windows Phone 7

3.1.1 Giới thiệu

Windows Phone 7 là thế hệ kế tiếp của dòng điện thoại chạy hệ điều

hành Microsoft Windows Mobile. Windows Phone 7 được phát triển dựa trên phần

lõi là Windows CE 7 giống Zune HD, trong khi các phiên bản trước lại dựa trên

Windows CE 5.

Hình 1. Giới thiệu Windows Phone 7

Windows Phone 7 được Microsoft phát triển để thay thế cho hệ điều hành di

động Windows Mobile trước đây. Windows Phone bắt đầu từ phiên bản thứ 7 (khi

ra mắt, Microsoft gọi nó là Windows Phone 7, còn hiện giờ nó đã lên đến 8.0).

Được biết, do phát triển trong thời gian ngắn nên Windows Phone rất hạn chế trong

việc tương thích ngược với các nền tảng Windows Mobile trước đó. Một lý do nữa

để Microsoft không quan tâm nhiều đến nền tảng cũ đó là vì màn hình cảm ứng

bằng ngón tay ngày càng phổ biến hơn trên điện thoại và Windows Mobile vốn thiết

kế cho bút stylus đã trở nên rất lỗi thời.

Windows Phone 7 được Microsoft thiết kế dựa trên tiêu chí giúp lập trình

viên dễ dàng hơn trong việc tạo nên các ứng dụng RIA (Rich Internet Application)

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 8 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

với công nghệ nền tảng dựa trên .Net, Silverlight và XN Frame Work, với những

lập trình viên đã từng làm qua Silverlight thì việc chuyển sang Windows Phone 7 là

một việc rất dễ dàng, không chỉ có thế Microsoft còn ưu ái cho các nhà sản xuất với

việc tạo nên một môi trường phát triển và thiết kế cực kỳ đơn giản và có thể chạy

được trên phần cứng của nhiều hãnh khác nhau như HTC, Sony, LG, Nokia….

Với Windows Phone, Microsoft cung cấp một giao diện người dùng mới với

ngôn ngữ thiết kế của hãng có tên là Metro. Nó tích hợp hệ điều hành với các dịch

vụ khác của Microsoft, các bên thứ ba và điều khiển phần cứng nó chạy trên đó.

Microsoft phát triển Windows Phone 7 dựa trên hai công nghệ Silverlight và XNA

3.1.2 Lịch sử các phiên bản phát triển của Windows Phone

Phiên bản Windows Phone 7

Phiên bản

Chi tiết

7.0.7004 Phiên bản đầu tiên của Windows Phone 7

7.0.7008 Nâng cấp và cải thiện một vài điểm

7.0.7390

Bản cập nhật với tên mã NoDo, hỗ trợ mạng CDMA, copy và

paste, tốc độ chạy ứng dụng nhanh hơn, tích hợp Facebook sâu

hơn

7.0.7392 Sửa các lỗi liên quan đến chứng nhận bảo mật

7.0.7403 Bản tiền nâng cấp để chuẩn bị bước sang một đợt nâng cấp lên

7.10.7720

7.10.7740

Đây là Windows Phone 7.5 với tên mã Mango, được giới

thiệu 2/2011. Các tính năng mới được thêm vào như Internet

Explorer 9 hỗ trợ đồ họa và chuẩn web tốt hơn,Twitter tích hợp

vào People Hub, chạy đa nhiệm cho các ứng dụng bên thứ ba

bằng cách tạm ngừng chúng

Sửa lỗi Microsoft Exchange Server 2003 và cảnh báo hộp thư

thoại

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 9 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

7.10.8107 Hỗ trợ kết nối LTE, sửa lỗi bàn phím bị biến mất và nhiều vấn đề

7.10.8112 Bản cho Lumia 900 và HTC Titan II của nhà mạng AT&T

7.10.8773

Còn gọi là Windows Phone 7.5 Refresh với tên mã Tango. Nhiều

tính năng mới xuất hiện như MMS tốt hơn, biểu tượng cho việc

dò vị trí, xuất và quản lí danh bạ vô SIM, hỗ trợ điện thoại giá rẻ

với 256MB RAM và xung nhịp CPU chậm

7.10.8779 Sửa lỗi, cải thiện và nâng cấp

3.1.3 Kiến trúc

Windows Phone Application Platform kiến trúc được tạo thành từ bốn thành phần

chính:

Hình 2. Kiến trúc Windows Phone Application Platform

Runtimes (Runtimes): Silverlight và khung XNA, cùng với Windows tính năng

điện thoại cụ thể, kết hợp để cung cấp một môi trường trưởng thành trong việc

xây dựng an toàn, các ứng dụng đồ họa phong phú.

Tools (Công cụ): Visual Studio và Expression Blend, và các công cụ và tài liệu

liên quan của chúng, tạo ra một trải nghiệm phát triển hoàn chỉnh để nhanh

chóng tạo ra ứng dụng, gỡ lỗi, triển khai và cập nhật các ứng dụng.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 10 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Cloud (Dịch vụ điện toán đám mây): Windows Azure, Xbox LIVE, thông báo

dịch vụ, và dịch vụ định vị, cùng với một loạt các dịch vụ web khác, cho phép

các nhà phát triển để chia sẻ dữ liệu qua các đám mây và lợi ích người tiêu dùng

bằng cách cung cấp một trải nghiệm liền mạch trên thiết bị bất cứ điều gì họ

đang sử dụng. Kết nối với các dịch vụ web của bên thứ ba cũng hỗ trợ đầy đủ.

Portal Services (Dịch vụ cổng thông tin): điện thoại Windows Marketplace

cung cấp các dịch vụ mạnh mẽ cho phép các nhà phát triển đăng ký, xác nhận,

và thị trường ứng dụng của họ.

3.1.4 Vòng đời phát triển của 1 ứng dụng Windows Phone

Hình 3. Vòng đời phát triển của 1 ứng dụng Windows Phone

3.1.5 Bắt đầu với App Hub

App Hub sẽ là điểm khởi đầu cho các nhà phát triển. Các nhà phát triển có

thể bắt đầu bằng cách đăng ký cho một ID Windows Live. Tiếp theo, họ có thể đăng

ký để có được SDK Windows Phone và cấp giấy phép liên quan để phát triển các

ứng dụng bằng cách sử dụng Visual Studio và Expression Blend. Đây sẽ là một

download duy nhất có chứa tất cả mọi thứ phát triển đòi hỏi phải xây dựng một ứng

dụng cho Windows Phone. Nhà phát triển cũng có thể đăng ký một hoặc nhiều điện

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 11 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

thoại để sử dụng như là phần cứng thử nghiệm xác nhận các ứng dụng mà họ đang

xây dựng. Bất kỳ điện thoại Windows bán lẻ có thể được đăng ký như là một thiết

bị thử nghiệm.

Trung tâm ứng dụng có chứa mẫu, tài liệu, và cộng đồng nhà phát triển hoạt

động giúp làm cho các nhà phát triển điện thoại Windows thành công.

3.1.6 Thiết kế một ứng dụng và sản sinh ra một gói ứng dụng

Một khi các nhà phát triển đã đăng ký là nhà phát triển một Windows Phone

và đã cài đặt công cụ phát triển, họ có thể bắt đầu phát triển các ứng dụng của họ.

Trò chơi và các ứng dụng đồ họa chuyên sâu được tạo ra trong Visual Studio bằng

cách sử dụng các thư viện 2D và 3D của XNA Framework.

3.2 Giới thiệu công nghệ Silverlight

3.2.1 Tổng quan

Microsoft Silverlight là một công nghệ đa nền, đa trình duyệt dựa trên nền

.NET dùng để xây dựng và phát triển một thế hệ ứng dụng Web và thiết bị mới, đầy

tính tương tác và hỗ trợ tối đa về media. Hiện nay Silverlight đã có 5 phiên bản dùng

phát triển ứng dụng bằng ngôn ngữ Javascript và bằng các ngôn ngữ .NET

framework như C# hay VB.NET ,.... Bên cạnh đó công nghệ Silverlight còn được

hỗ trợ bởi ngôn ngữ đánh dấu XAML đầy sức mạnh trong việc thể hiện giao diện

người dùng. Có thể nói công nghệ Silverlight đã thống nhất được tất cả các

khả năng của server, Web và ứng dụng desktop, của code .NET, của ngôn ngữ hình

thể và ngôn ngữ truyền thống và sức mạnh của Windows Presentation Foundation

(WPF). Để cuối cùng tạo ra một ứng dụng mà người dùng phải thấy thích.

3.2.2 Silverlight là gì ?

Silverlight là một công nghệ đa nền tảng, đa trình duyệt được đưa ra bởi

Micrososft, cho phép xây dựng các ứng dụng trên web (không phụ thuộc vào trình

duyệt) và tương tác với Server. Silverlight cung cấp một mô hình lập trình mềm dẻo

và đồng nhất, nó hỗ trợ Ajax, Python, Ruby và các ngôn ngữ lập trình .Net như C#,

Visual basic... Khả năng đa phương tiện của Silverlight thể hiện ở mức độ truyền tải

âm thanh và hình ảnh chất lượng cao một cách nhanh chóng và hiệu quả trên tất cả

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 12 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

các trình duyệt (Internet Explorer, Firefox, Safari, Opera...). Điểm mạnh của

Silverlight đó là cung cấp những thuộc tính thiết kế giao diện, tạo những hiệu ứng

(hoạt ảnh) một cách dễ dàng.

3.2.3 Các đặc tính của Silverlight

Silverlight kết hợp nhiều công nghệ vào một nền tảng phát triển, nó cho phép

bạn được lựa chọn nhiều công cụ và ngôn ngữ lập trình thích hợp để giải quyết bài

toán của bạn. Silverlight cung cấp các tính năng sau:

Sự kết hợp của WPF và XAML: Silverlight là một gói nhỏ của công nghệ

WPF (Windows Presentation Foundation). WPF cho phép bạn tạo ra đồ họa ba

chiều, hình ảnh động, đa phương tiện và nhiều tính năng phong phú khác.

Các ứng dụng tạo ra bởi WPF chủ yếu là các phần mềm đóng gói. Silverlight kế

thừa một số thuộc tính của WPF và nó được mở rộng nhiều hơn ở một số các

phần tử để tạo ra giao diện cho người dung trên trình duyệt web.

Mở rộng ngôn ngữ đa kịch bản: Silverlight cung cấp việc mở rộng cho các

ngôn ngữ đa kịch bản (Javascript) ở một số các trình duyệt phổ biến để thể hiện

việc trình bày giao diện và thao tác người dùng một cách phong phú hơn.

Tích hợp các ứng dụng đã có: Silverlight là sự tích hợp liền mạch với ngôn

ngữ Javascript và mã Ajax sẵn có của Asp.Net để bổ sung các chức năng bạn đã

xây dựng được. Bạn có thể tạo những tài nguyên trên nền máy chủ có trong

ASP.NET và sử dụng các khả năng của Ajax trong ASP.NET để tương tác với

tài nguyên trên nền máy chủ đó mà không làm gián đoạn người dùng. Các ứng

dụng Silverlight có khả năng tương tác với máy chủ, xử lý các sự kiện một cách

bất đồng bộ. Điều này không làm gián đoạn thao tác của người dùng cuối. Nếu

như bạn đã từng tạo ra các dự án web sử dụng Ajax, chắc hẳn bạn sẽ cảm thấy

dễ dàng hiểu cơ chế xử lý bất đồng bộ trong Silverlight.

Sử dụng mô hình ngôn ngữ lập trình trên nền tảng .Net framework và các

công cụ để kết hợp: Bạn có thể tạo các ứng dụng trên nền tảng Silverlight bằng

cách sử dụng các ngôn ngữ động như InronPython cũng như các ngôn ngữ như

C#, Visual Basic. Microsoft đã đưa ra một sự kết hợp nhuần nhuyễn cho việc tạo

ra các ứng dụng Silverlight thông qua hai bộ công cụ: Visual Studio 2008 và

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 13 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Expression Blend. Sự đồng bộ công cụ này tạo nên sự thuận lợi tối đa cho các

nhà phát triển.

Hỗ trợ mạng: Silverlight hỗ trợ HTTP thông qua giao thức TCP. Nó có thể thực

hiện các kết nối tới các dịch vụ của WCF, SOAP, ASP.NET và nhận về các định

dạng theo cấu trúc XML, JSON hay dữ liệu RSS.

Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ): Silverlight cho phép thực hiện

những truy vấn dữ liệu bằng cách sử dụng cú pháp trực quan và mạnh mẽ

thông qua LINQ (Language Integrated Query – ngôn ngữ truy vấn tích hợp).

LINQ cho phép bạn tạo những truy vấn ngay trên công cụ lập trình (Visual

Studio) như trong SQL và được tích hợp trong bộ .NET Framework 3.0 trở lên.

Có ba điều mà bạn nên quan tâm về LINQ là: LINQ to Objects – LINQ to XML

và LINQ to SQL.

Thể hiện đƣợc các nội dung phức tạp: Silverlight có thể tạo ra các nội dung

phức tạp, gồm video, animation, text, đồ họa hai chiều, các hiệu ứng hình ảnh

trên trang web.

Plug-in nhỏ gọn: Chỉ mất ít phút để có thể cài plugin vào trình duyệt và sử dụng

công nghệ Silverlight.

3.3 Nghiên cứu công nghệ Silverlight

3.3.1 Kiến trúc tổng thể và các thành phần Siverlight

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 14 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Dưới đây là hình ảnh mô tả những thành phần trong kiến trúc của Silverlight

cùng với các thành phần và dịch vụ liên quan khác:

Hình 4 Kiến trúc tổng thể và các thành phần Silverlight

Về cơ bản Silverlight là một nền tảng thống nhất của nhiều thành phần khác

nhau. Dưới đây là các thành phần chính của Silverlight:

Thành phần

Nền tảng trình bày cơ sở

.Net Framework cho

Silverlight

Diễn tả

Các thành phần và dịch vụ hướng tới giao

diện người dùng và tương tác người dùng, bao

gồm các control dữ liệu cho người dùng nhập,

thiết bị đa phương tiện, quản lý phân quyền số,

trình bày dữ liệu, đồ họa vector, chữ, hình ảnh

động và bao gồm cả XAML để đặc tả việc bố trí

giao diện.

Là một gói nhỏ trong .Net Framework, bao gồm các

thành phần và các thư viện, kể cả trong việc

tương tác dữ liệu, khả năng mở rộng các control,

mạng, garbage collection, và CLR.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 15 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Cài đặt và cập nhật

Là thành phần để xử lý các tiến trình cài đặt làm

sao để đơn giản hóa cho lần cài đặt đầu tiên, tiếp

sau đó chỉ cung cấp cơ chế tự động cập nhật và

tương tác ở mức thấp.

Bảng 1.1. Bảng mô tả các thành phần chính của Silverlight

3.3.2 Nền tảng của Silverlight:

Bao gồm 2 phần chính

Các nền tảng trình bày cơ sở trong Silverlight:

Tính năng

Dữ liệu vào (Input)

Trình bày giao diện ngƣời dùng (UI

Rendering)

Thiết bị nghe nhìn (Media)

Controls

Xếp đặt layout

Trình bày dữ liệu (Data Binding)

DRM

XAML

Mô tả

Xử lý dữ liệu đầu vào từ các thiết bị

phần cứng như bàn phím, chuột, bảng

vẽ hoặc các thiết bị đầu vào khác.

Trình bày vector và các đồ họa ảnh

bitmap, ảnh động và văn bản …

Các tính năng quản lý và phát 1 vài

file hình ảnh và âm thanh.

Hỗ trợ mở rộng cho các control để có

khả năng tùy chỉnh về khuôn mẫu.

Cho phép khả năng xếp đặt vị trí động

các thành phần giao diện người dùng

Cho phép việc kết nối dữ liệu của các

đối tượng và các thành phần giao diện

người dùng

Khả năng Quản lý phân quyền số

Cung cấp trình phân tách cho XAML

Bảng 1.2. Bảng các nền tảng cơ sở trong Silverlight

Các lập trình viên có thể tương tác với thành phần “nền tảng trình bày cơ sở”

trên bằng cách sử dụng XAML để đặc tả. XAML là một yếu tố quan trọng nhất

trong việc tương tác giữa .Net Framwork và các kiểu trình bày Layout, ngoài ra các

lập trình viên cũng có thể sử dụng cơ chế quản lý code bên trong để thao tác với lớp

trình bày.

.Net Framework cho Silverlight:

Tính năng

Mô tả

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 16 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Data

Base class library

Window Communication Foundation

(WCF)

Common language runtime (CLR)

Windows Presentation Foundation

controls (WPF)

Dynamic language runtime (DLR)

Hỗ trợ ngôn ngữ truy vấn tích hợp (LINQ)

và LINQ với đặc tả XML, dễ dàng xử lý

việc tích hợp và làm việc với dữ liệu từ

nhiều nguồn khác nhau.

Nó cung cấp các chức năng lập trình chủ

yếu như việc xử lý chuỗi, biểu thức chính

quy, đầu vào và đầu ra, ánh xạ, tập hợp và

toàn cục hóa.

Cơ chế này bao gồm một đối tượng trình

duyệt, HTTP request và HTTP Response,

RSS, JSON, POX, và các SOAP.

Cung cấp việc quản lý bộ nhớ, dọn dẹp bộ

nhớ thừa, xử lý ngoại lệ …

Cung cấp các control giàu tính năng như

Button, Calendar, CheckBox, DataGrid,

DatePicker, HyperlinkButton,

Hỗ trợ việc biên dịch và thi hành với tính

năng động của các ngôn ngữ kịch bản như

3.4 Giới thiệu về XNA

3.4.1 XNA là gì ?

Javascript và IronPython cho các chương

trình trên nền tảng Silverlight.

Bảng 1.3. Bảng mô tả .Net Framework cho Silverlight

XNA là một kiểu chơi chữ, nó viết tắt cho câu “Xna’s Not an Acronym”. Nó

là một bộ công cụ chạy trên môi trường runtime được cung cấp bởi Microsoft. XNA

đã đơn giản hóa cho công việc phát triển và quản lý game trên máy tính, nó giải tỏa

cho các nhà phát triển game khỏi những dòng code cứng nhắc lặp đi lặp lại và mang

đến một diện mạo khác của việc sản xuất game vào trong một hệ thống đơn lẻ bằng

cách giúp họ viết game theo một khuôn dạng có sẵn.

3.4.2 Tại sao nên sử dụng XNA ?

Bạn có thể sử dụng XNA để lập trình game cho XBOX360, Zune,

WindowsPhone 7, PC, XNA cung cấp cho người lập trình sẵn các công cụ thiết kế

game 2D và 3D, đầy đủ các thành phần đồ họa cần thiết kế game.

Ngoài ra, XNA đã cấu hình sẵn thích hợp với các loại môi trường nhất định,

vì thế người lập trình không cần phải tốn công sức để thiết lập cấu hình cho game.

Được viết trên nền C#, một ngôn ngữ hướng đối tượng rất dễ tiếp cận, nên

rất dễ dàng cho người mới bắt đầu vào con đường làm game.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 17 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Bên cạnh đó, XNA xây dựng cấu trúc file riêng để có thể bảo đảm được mã

nguồn các tài nguyên của lập trình viên như hình ảnh, model 3D, âm thanh.

3.4.3 Các phiên bản XNA

Bộ công cụ XNA được công bố rộng rãi vào ngày 21 tháng 5 năm 2004, tại

hội nghị phát triển game tại San Jose, California.

Cộng đồng công nghệ sơ khai đầu tiên về cấu trúc của XNA (XNA build)

được thành lập vào ngày 14/5/2006.

XNA Game Studio 1.0: phiên bản đầu tiên của XNA 1.0 ra đời vào ngày 30

tháng 8 năm 2006 và theo sau là phiên bản thứ 2 vào ngày 1 tháng 10 năm 2006.

Ngay tháng sau, Microsoft cho ra phiên bản hoàn chỉnh vào ngày 11 tháng 12

2006.

XNA Game Studio Express 1.0: Vào ngày 24/04/2007, phiên bản Express đầu

tiên của XNA Game Studio hướng đến giới sinh viên, những người đam mê và

những nhà phát triển game cá nhân. Nó có sẵn để bạn down xuống miễn phí.

Bản Express cung cấp những "StartKit" cơ bản để những game coder dễ dàng

phát triển những game theo nhiều thể loại khác nhau (Như dòng platform, dòng

chiến thuật thời gian thực, hoặc game bắn súng góc nhìn thứ nhất). Các nhà phát

triển viết game trên PC thì được miễn phí nhưng với Xbox bạn sẽ mất 99$/năm

để được tham gia vào "XNA Creator's Club".

XNA Game Studio 2.0: ra đời vào ngày 13/12/2007 nó đã được trang bị tính

năng có thể sử dụng với tất cả phiên bản từ Visual Studio 2005 trở lên (bao gồm

cả phiên bản free Visual C# 2005 Express Edition), có thể sử dụng cho cả

Windows và Xbox cùng với sự hỗ trợ điều khiển tốt hơn . Bản setup luôn có sẵn

để bạn download trên trang web của XNA Creators Club.

XNAGame Studio 3.0: (Sử dụng cho VS2008 hay bản miễn phí Visual C#

2008 Express Edition) cho phép sản xuất nhiều game hướng đến thị trường hệ

máy Zune và thêm tính năng hỗ trợ từ Xbox Live community. Bản chính thức ra

mắt vào 30/8/2008. XNA Game Studio 3.0 hỗ trợ phiên bản C# 3.0, và hầu như

toàn bộ các phiên bản từ Visual Studio 2008.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 18 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

XNA Game Studio 3.1: Ra mắt vào ngày 11 tháng 6/2009 , hệ thống đồ hoạ cho

phép chạy lại video, hệ thống kết nối Xbox LIVE và hỗ trợ game cho phép sử

dụng tính năng Avatar của Xbox.

XNA Game Studio 4.0: XNA Game studio 4 được công bố và trình diễn tại

"cộng đồng giới thiệu công nghệ" tại GDC vào 9/3/2010 và phiên bản chính

thức ra đời vào ngày 16/9/2010. Nó đã hỗ trợ thêm nền tảng Windows Phone 7

(bao gồm cả gia tốc phần cứng 3D), trang bị thêm đặc tính, các đối tượng được

xây dựng sẵn, các thiết bị đồ hoạ có hướng và vô hướng, hỗ trợ chạy đa nền

tảng, hỗ trợ điều khiển cảm ứng đa diểm chạm…vào Visual Studio 2010.

Hiện nay, XNA đã gần như hoàn thiện toàn bộ lĩnh vực phát triển game của

Microsoft, bao gồm cả bộ phát triển ứng dụng Xbox chuẩn (Xbox Development

Kit) và XNA Game Studio.

2.2 Kiến trúc của XNA

2.2.1 Kiến trúc của XNA

Cấu trúc chung:

Initialize( )

LoadContent( )

Draw(gameTime)

Update(gameTim

e)

End?

UnloadContent( )

Hình 2.1. Cấu trúc của XNA

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 19 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Mỗi game bao gồm việc chuẩn bị môi trường mà game sẽ chạy. Chạy game

trong một vòng lặp cho đến khi game kết thúc khi gặp một điều kiện nào đó, và sau

đó môi trường sẽ được là sạch như lúc bắt đầu.

Đây là cấu trúc một game đơn giản bao gồm cả vòng lặp game:

Hàm Initialize( ): Đây là hàm khởi tạo các giá trị khởi đầu của class game. Nếu

ta có các khởi tạo về input thì nên đặt vào trong hàm này.

Hàm Load Content( ): Đây là hàm dùng để load những nội dung của game

như: Imagie, Sprite, Sound, Model, … Hàm này sẽ được thực hiện sau hàm

Initialize vì thế các tài nguyên sẽ được load thông qua Pipeline Content.

Hàm Update( gameTime):

Đây là hàm dùng để thực hiện xử lý các nội dung, hành động game, các Input từ

ngoài nhận vào.

Ngoài ra, ở hàm này nó còn thực hiện các tương tác, va chạm, điều khiển nhân

vật.

Đây là phần chính của game, điều khiển mọi hoạt động, còn được gọi là bộ não

của game.

Hàm Draw (gameTime):

Đây là một hàm không kém phần quan trọng của game. Nếu update là bộ não,

linh hồn của game, thì Draw là hàm tạo nên vỏ bền ngoài của game, nó làm cho

ta thấy được vẻ đẹp của game.

Đây là hàm dùng để vẽ các hình ảnh trong game, hiển thị game ra màn hình đối

với người chơi, nó sẽ được vẽ theo thời gian gameTime.

Hàm UnloadContent( ): Hủy tất cả các tài nguyên, dọn dẹp bộ nhớ.

2.3 Các thành phần trong XNA

Sprite: Một sprite là một bức ảnh 2D có thể điều khiển độc lập từ phần bên

ngoài của cảnh game. Điều kiện sử dụng thường mô tả một bức ảnh nào đó trên

lớp sử dụng bằng cách thể hiện bức ảnh đó trên màn hình của game (nó bao gồm

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 20 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

các thuộc tính như là vận tốc, vị trí, chiều dài, chiều rộng, và v.v)… Thành phần

“sprite hoạt hình” được xem như một sprite có nhiều những bức ảnh thay đổi

một cách liên tục một cách xác định trước trong một khoảng thời gian xác định (

điều đó tạo ra ảo giác rằng sprite đang chuyển động). Như là một người đang đi

bộ hay một bánh xe đang quay tròn.

Texture: là những bức ảnh 2D được load vào mô hình 3D nào đó, nó bao phủ

và nằm trên bề mặt của mô hình 3D và dùng để làm đẹp cho cảnh trong game.

Có thể sử dụng texture để giúp tạo ảo giác về một vật có đồ họa chi tiết khi một

bức ảnh sẽ bao một mô hình 3D đơn giản.

Billboarch (Bảng yết thị): Đây là một thành phần trong thế giới 3D cũng sẽ đại

diện một texture vẽ bản đồ vào trong một máy bay đặc biệt mà luôn thẳng góc

tới trục camera.

Background (Nền): Một cảnh trong game 2D là một hình ảnh nền với nhiều

sprites trình bày trên nó. Khi 1 hình nền là 1 hình ảnh tĩnh, bạn có 1 hình nền

cuộn. Nó là đặc điểm chính trong các trò chơi được gọi là các thanh cuộn. Nó

cũng đề cập đến parallax scrolling, một kĩ thuật cuộn đặc biệt trong chò trơi 2D

có nhiều hơn 1 hình nền cuộn với tốc độ cuộn khác nhau, cái mà cung cấp

những ảo ảnh của môi trường 3D.

Tiles: là những hình ảnh nhỏ được sử dung để biên soạn những hình ảnh lớn

hơn, chúng thường được liên kết lại với nhau trên nền thông thường đề tạo ra những

platform game khác nhau cùng từ những hình ảnh cơ bản .Ví dụ: Trong map game,

dùng tiles đề xây dựng địa hình, chướng ngại vật, trong game nhập vai, Tiles được

sử dụng để cung cấp một cấp độ của nhân vật để đáp ứng 1 trong số các điều kiện

nâng cấp nhân vật, vũ khí…

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 21 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Chƣơng 4

XÂY DỰNG ỨNG DỤNG VỚI WINDOWS PHONE

4.1. Tạo mới 1 Project :

Chọn File -> New -> Project

Một cửa sổ mới “New Project” hiện ra. Chọn Visual C# trong mục Installed

Templates, chọn Silverlight for Windows Phone. Phía bên phải cửa sổ cho

phép bạn chọn các templates. Chọn vào mục “Windows Phone Application”:

Hình 5. Chọn loại ứng dụng

Giao diện ban đầu khi đã tạo xong 1 Project :

Hình 6. Giao diện khi tạo xong Project

Cấu trúc Solution của một Project

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 22 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Hình 7. Cấu trúc Solution của một Project

4.2 Giới thiệu về ngôn ngữ XAML và các control dùng trong ứng dụng

Windows Phone

4.2.1 Giới thiệu ngôn ngữ XAML

XAML (eXtensible Application Markup Language) là ngôn ngữ đánh dấu

dựa trên XML để xây dựng ứng dụng:

Cho phép xây dựng giao diện bằng các phát biểu đơn giản.

Định nghĩa được cả các phần tử giao diện cũ.

XAML và code cùng tồn tại một cách độc lập.

Tương thích cả ứng dụng Windows trên desktop và internet trên trình duyệt.

XAML – Elements và Attributes:

Elements: …, …

Các thành phần trong XAML tương đương với các đối tượng khai báo trong

.NET

Trong 1 file XAML có 1 root element duy nhất.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 23 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Attributes: các thuộc tính trong XAML tương đương với các property của các

đối tượng trong .NET

XAML – Complex Properties: Sử dụng các thuộc tính thành phần của một

element thông qua toán tử dấu chấm “.”

XAML – Namespace:

Một namespace được sử dụng để định nghĩa các đối tượng thành phần, các đặc

tính, các thuộc tính…

Kiểm tra sự hợp lệ của các đối tượng được khai báo, tránh sự mâu thuẫn của các

đối tượng thành phần cùng tên.

Trong XAML , namespace được định nghĩa bởi thuộc tính xmlns. Chúng ta ánh

xạ các namespace XML sang các tập hợp namespace và assembly CLR.Một file

XAML luôn có namespace mặc định trong root element. Namespace mặc định

luôn luôn không có tiếp đầu ngữ kèm theo thuộc tính xmlns.

XAML – Type Converter: Để chương trình hoạt động, trình phân tích XAML thực

hiện việc chuyển đổi giá trị kiểu chuỗi sang một kiểu nonstring. Việc chuyển đổi

này được thực hiện bởi type converters.

XAML – Markup Extensions:

Gán một đối tượng có sẵn nào đó làm giá trị của property.

Gán giá trị cho một property mà giá trị này có thể thay đổi nhờ vào việc binding

vào một property của một control khác.

Sử dụng markup extension phải đặt nó trong cặp dấu { }

Cú pháp :

{MarkupExtensionClass Argument}

XAML – Events:

XAML cho phép chỉ định phương thức xử lý cho đối tượng đang được thiết

kế.

Phương thức xử lý sự kiện có thể được đặt trong code behind.

4.2.2 Sử dụng Expression Blend để xây giao diện trong Windows Phone 7.1

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 24 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Hình 8. Giới thiệu Expression Blend

Expression Blend là một công cụ khá mạnh hỗ trợ xây dựng giao diện cho

các ứng dụng Silverlight...

Hỗ trợ xây dựng giao diện cgo Windows phone, WPF, sử dụng ngôn ngữ

xaml

‣ Xây dựng ứng dụng với Expression Blend windows phone 7

Hình 9. Xây dựng ứng dụng Windows Phone Với Expression Blend

4.2.3 Làm việc với TextBox và ViewBox

- Sử dụng để nhập các dữ liệu đầu vào

- Có nhiều loại dữ liệu đầu vào như: Number, Email, Time...

- Texbox đi liền với thuộc tính InputScope

- InputScope được cung cấp trong namespace System.Windows.Input


SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 25 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Hình 10. Làm việc với Texbox trong Windows Phone 7

4.2.4 Tìm hiểu NavigationContext Trong Windows Phone 7

Navigation là gì?

• Navigation là một lớp thuộc Namespace: System.windows.Navigation.

• Chứa 1 đối tượng Dictionary để lưu trữ các tham số QueryString.

• Truyền và lấy các tham số truy vấn hoặc các trang khác.

Navigation Service:

NavigationService.Navigate(new Uri("/ChonCapDo.xaml", UriKind.Relative));

• Là một lớp thuộc namespace: System.windows.Navigation

• Cung cấp các thuộc tính, phương thức giúp cho việc điều hướng dễ dàng

hơn.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 26 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Chƣơng 5

XÂY DỰNG CHƢƠNG TRÌNH

Trong quá trình thực tập, tôi đã được hướng dẫn và nghiên cứu bài toàn Game

Tetris trên nền tảng Windown Phone kết hợp với Silverlight.

5.1 Giới thiệu về đề tài.

Game Tetris là game kinh điển trong làng Game thế giới, ra đời ngày 6/6/1984

tại Liên xô cũ với tên Tetris. Tetris được ghép lại từ tiền tố gốc Hy Lạp “tetra-” do

các khối hình trong game được tạo ra từ 4 khối vuông; và “tennis” – môn thể thao

yêu thích của Alexey Pazhitnov, người đã phát minh ra trò chơi.

Game đã xuất hiện trên các dòng điện thoại khá lâu và được phát triển trên nhiều

nền tảng OS khác nhau như : Java, Android, IOS, Winphone…và hiện vẫn đang

được ưu chuộng và hấp dẫn đối với nhiều người.

5.2 Khảo sát đề tài

Các phần của đề tài đã khảo sát:

‣ Luật chơi:

Luật chơi của Tetris tương đối đơn giản. Các hình khối được ghép liền nhau

bởi 4 khối vuông sẽ lần lượt xuất hiện trên màn hình (các khối ghép này được

gọi là tetrominoes hay tetrads). Nhiệm vụ của người chơi là phải lấp đầy các

hàng ngang bằng các hình khối này. Mỗi khi có một hàng ngang được lấp đầy

thì người chơi sẽ được cộng điểm và hàng ngang đó được xóa đi.

‣ Cách tính điểm

Khi người chơi nhấn phím mũi tên hướng xuống: Với mỗi lần nhấn phím này

thì người chơi sẽ được cộng thêm 1 điểm. Khi người chơi đè phím này thì cứ

sau khi khối gạch đi xuống 2 ô (1 ô mặc định đi xuống và một ô do phím mũi

tên hướng xuống bị đè) thì người chơi sẽ được cộng 1 điểm.

Khi người chơi nhấn phím OK: Vì khi nhấn phím này, khối gạch lập tức rơi

xuống nên người chơi sẽ được cộng 10 điểm cho mỗi khối gạch được xếp

bằng phím này.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 27 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Với mỗi hàng ngang được lấp đầy: số điểm người chơi có được ở mỗi hàng

ngang bằng số thứ tự từ dưới đếm lên của hàng ngang nhân với số ô trong

hàng đó (ở đây là 11 cho mọi hàng).

Với 4 hàng ngang được lấp đầy cùng lúc: ngoài số điểm được cộng cho mỗi

hàng ngang, người chơi sẽ được cộng thêm 100 điểm khi lấp đầy cùng lúc 4

hàng ngang.

‣ Mức tăng điểm Level

Mức điểm tăng Level được tính bằng cách lấy số Level bình phương nhân

với 999

Mỗi khi người chơi đủ điểm để tăng đến Level tiếp theo thì khung chơi sẽ được xóa

và người chơi sẽ bắt đầu xếp lại ở Level mới.

Khi người chơi đạt level 99 thì trò chơi sẽ kết thúc và người chơi sẽ giành

chiến thắng.

5.3 Mô hình USECASE

5.3.1. Sơ đồ Use-Case

Chọn cấp độ

Chơi mới

Hướng dẫn

Người Chơi

GAME

XẾP GẠCH

Thông tin

Thoát

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 28 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

5.3.2 Danh sách các Actor

STT Tên Actor Ý nghĩa / Ghi chú

1 NguoiChoi Ngƣời chơi game

5.3.3 Danh sách các Use-case

STT Tên Use-case Ý nghĩa / Ghi chú

1 Game Tetris Game Tetris

2 Bat dau Bắt đầu chơi game từ lever 1

3 Huong dan Hƣớng dẫn ngƣời dùng cách chơi game

4 Thong tin Thông tin về nhóm làm game

5 Thoat Thoát game

5.4 Đặc tả Use-case

5.4.1. Use-case “Game Tetris”

Tóm tắt : Người chơi dùng điện thoại có hệ điều hành windows phone 7

chơi game xếp gạch để giải trí.

Các dòng sự kiện chính :

1.Xảy ra khi người dùng chọn

2.Hiển thị màn hình menu

Các dòng sự kiện khác :

Không có

Các yêu cầu đặc biệt :

Không có

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :

Sau khi người chơi chạy chương trình game

Trạng thái hệ thống sau khi thực hiện Use-case :

Hiển thị giao diện màn hình menu

Điểm mở rộng :

1. Choi moi

2. Huong dan

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 29 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

3. Chon Cap do

4. Thong tin

5. Thoat

5.4.2. Use-case “Chơi mới”

Tóm tắt

Người sử dụng : Người chơi.

Chức năng : chơi mới

Các dòng sự kiện chính :

1. Xảy ra khi người chơi chọn Bắt đầu

2. Hiển thị giao diện chơi Game

Các dòng sự kiện khác :

Không có

Các yêu cầu đặc biệt :

Có thể chọn cấp độ trước khi chơi

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :

Sau khi người chơi chọn Bắt đầu

Trạng thái hệ thống sau khi thực hiện Use-case :

Hiển thị giao diện màn hình chơi game

Điểm mở rộng :

Không có

5.4.3. Use-case “Level”

Tóm tắt

Người sử dụng : Người chơi.

Chức năng : Chọn level để chơi

Các dòng sự kiện chính :

1. Xảy ra khi người chơi chọn Level

2. Hiển thị giao diện chọn Level

Các dòng sự kiện khác :

Không có

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 30 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Các yêu cầu đặc biệt :

Không có

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :

Sau khi người chơi chọn Level

Trạng thái hệ thống sau khi thực hiện Use-case :

Hiển thị giao diện màn hình Level

Điểm mở rộng :

Không có

5.4.4. Use-case “Hƣớng dẫn”

Tóm tắt

Người sử dụng : Người chơi.

Chức năng : Hướng dẫn người chơi cách chơi game

Các dòng sự kiện chính :

1. Xảy ra khi người chơi chọn Hướng dẫn

2. Hiển thị giao diện hướng dẫn

Các dòng sự kiện khác :

Không có

Các yêu cầu đặc biệt :

Không có

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :

Sau khi người chơi chọn Hướng dẫn

Trạng thái hệ thống sau khi thực hiện Use-case :

Hiển thị giao diện màn hình hướng dẫn

Điểm mở rộng :

Không có

5.4.5. Use-case “Thông tin”

Tóm tắt

Người sử dụng : Người chơi.

Chức năng : Thông tin tác giả game

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 31 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Các dòng sự kiện chính :

1. Xảy ra khi người chơi chọn Thông tin

2. Hiển thị giao diện thông tin

Các dòng sự kiện khác :

Không có

Các yêu cầu đặc biệt :

Không có

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :

Sau khi người chơi chọn Thông tin

Trạng thái hệ thống sau khi thực hiện Use-case :

Hiển thị giao diện màn hình thông tin

Điểm mở rộng :

Không có

5.4.6. Use-case “Thoát”

Tóm tắt

Người sử dụng : Người chơi.

Chức năng : Thoát game

Các dòng sự kiện chính :

1. Xảy ra khi người chơi chọn Thoát

2.Thoát khỏi game

Các dòng sự kiện khác :

Không có

Các yêu cầu đặc biệt :

Không có

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :

Sau khi người chơi chọn Thoát

Trạng thái hệ thống sau khi thực hiện Use-case :

Thoát khỏi game

Điểm mở rộng :

Không có.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 32 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 33 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Chƣơng 6

THIẾT KẾ GIAO DIỆN VÀ DEMO CHƢƠNG TRÌNH

6.1. Danh sách các màn hình

STT Tên màn hình Ý nghĩa / Ghi chú

1 Màn hình Chơi mới Màn hình để ngƣời chơi Game

2 Màn hình Chọn cấp độ Màn hình chọn cấp độ chơi

3 Màn hình hƣớng dẫn Màn hình hƣớng dẫn ngƣời chơi game

4 Màn hình thông tin Màn hình thông tin ngƣời làm game

5 Màn hình thoát Màn hình thoát game

6.2 Mô tả chi tiết các màn hình

6.2.1. Màn hình Menu

Hình 11. Màn hình Game chọn Menu

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 34 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris


Mô tả chi tiết và cách sử dụng màn hình

− Khi bấm vào nút Chơi mới bạn sẽ chơi mới, bắt đầu chơi từ level 1.

− Khi bấm vào nút Chọn Cấp độ cho tùy cập độ chơi game

− Khi bấm vào nút Hƣớng dẫn sẽ hiển thị các trợ giúp cho người mới

chơi game biết cách chơi

− Khi bấm nút Thông tin cho biết thông tin về người viết Game.

− Khi bấm vào nút Thoát sẽ thoát khỏi chương trình.

6.2.2. Màn hình “Chơi Game”

Hình 12. Màn hình chơi game

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 35 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Mô tả cách sử dụng và chi tiết màn hình.

- Sau khi bạn bấm Chơi mới thì giao diện này sẽ xuất hiện.

- Màn hình cho phép người chơi thực hiện công việc chủ yếu là chơi

game. Nhiệm vụ của người chơi là chọn được vị trí cần đặt các khối

gạch, người chơi sẽ nhấn phím OK để khối gạch lập tức rơi xuống

và chạm đến vị trí bên dưới .

6.2.3. Màn hình “Chọn cấp độ”

Hình 13. Màn hình Game chọn cấp độ

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 36 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Mô tả cách sử dụng và chi tiết màn hình.

- Sau khi bạn bấm Chọn cấp độ thì giao diện này sẽ xuất hiện.

- Màn hình cho phép người chơi thực hiện công việc là chọn cấp độ

chơi. Sau khi chọn xong sẽ đưa người chơi quay về màn hình chơi

game tương ứng với cấp độ đã chọn.

6.2.4. Màn hình “Hƣớng dẫn”

Hình 14. Màn hình hƣớng dẫn chơi Game

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 37 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

Mô tả cách sử dụng và chi tiết màn hình.

- Sau khi bạn bấm Hướng dẫn thì giao diện này sẽ xuất hiện.

- Màn hình sẽ đưa ra các thông tin hướng dẫn người chơi, chơi game

cũng như hướng dẫn chi tiết từng bước chơi game.

6.2.5. Màn hình “Thông tin”

Hình 15. Màn hình thông tin về Game

Mô tả cách sử dụng và chi tiết màn hình.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 38 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

- Sau khi bạn bấm Thông tin thì giao diện này sẽ xuất hiện.

- Màn hình sẽ đưa ra các thông tin của game như tác giả, phiên bản,

website của game.

6.3. Kết quả thực hiện

6.3.1 Môi trƣờng phát triển và triển khai

Môi trường phát triển ứng dụng:

- Hệ điều hành: Windows Phone 7

- Công cụ vẽ use-case : Visio 2010

- Công cụ đã dùng để xây dựng ứng dụng: Visual Studio 2010

- Các thư viện đã sử dụng :

Môi trường triển khai ứng dụng:

- Cấu hình điện thoại: Sử dụng windows phone 7

- Cần cài đặt Windows phone 7

6.3.2 Kết quả đạt đƣợc

‣ Chức năng cài đặt hoàn chỉnh.

− Thiết kế giao diện menu.

− Cho biết thông tin người làm Game.

− Chức năng hướng dẫn người chơi.

− Cho phép người chọn các cấp độ khác nhau.

− Thiết lập khối gạch rơi tự do.

− Nhạc nền, âm thanh sống động.

‣ Chức năng chƣa hoàn chỉnh, chƣa xử lý.

- Chưa thiết kế tùy chỉnh game.

- Chưa thiết lập được điểm tăng lên theo từng level và được qua level khi

thắng level hiện tại.

hình.

- Chưa di chuyển được các khối vuông bằng chức năng Touchpad trên màn

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 39 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

- Chưa có chức năng lưu điểm người chơi, chức năng tạm dừng chơi game.

6.4. Hƣớng phát triển:

- Xây dựng game có thiết kế giao diện 3D, có thể thay đổi ảnh nền khi đang

chơi Game.

- Xây dựng các Khối gạch sinh động hơn.

- Các tùy chọn chơi game để người chơi chọn

- Xây dựng các lever khó và hấp dẫn hơn.

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 40 -


Báo cáo Thực Tập Tốt Nghiệp

Đề tài: Game Tetris

TÀI LIỆU THAM KHẢO

[1] Giáo trình Microsoft_Press_ebook_Programming_Windows_Phone_7

[2] Giáo trình Expression_Blend_4

[3] http://techmaster.vn/

[4] http://google.vn

[5] http://www.youtube.com/techmastervn

[6] …

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 41 -

More magazines by this user
Similar magazines