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

Game tìm hình giống nhau trên thiết bị di động

73 1 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 73
Dung lượng 2,61 MB

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

Nội dung

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM Game tìm hình giống nhau trên thiết bị di động SVTH Fan Melissa 16058931 Võ Sĩ Luân 16052601 GVHD Châu Thị Bảo Hà TP Hồ Chí Minh Năm 2020 KHÓA LUẬN TỐT.

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM

Game tìm hình giống nhau trên thiết bị di động

SVTH: Fan Melissa 16058931

Võ Sĩ Luân 16052601 GVHD: Châu Thị Bảo Hà

TP.Hồ Chí Minh - Năm 2020

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

Trang 2

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

2

Major : Software Technology

INDUSTRIAL UNIVERSITY OF HO CHI MINH CITY FACULTY OF INFORMATION TECHNOLOGY

VO SI LUAN - FAN MELISSA

CONNECT ANIMAL GAME ON MOBLIE

Supervisor : Chau Thi Bao Ha

HO CHI MINH CITY , 2020

Trang 3

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

3

Currently the game making work on Android is widely and popularly used

on mobile devices to meet the entertainment needs of people Realizing the strong development with the purpose of learning, the group decided to explore and implement the topic "The same picture search game on mobile devices"

The game must meet the necessary functions such as: applying and processing the algorithm to find two identical images, when selecting any one, changing the image color so that it is easy to identify and draw the path from image after picture, the game must have sound and be adjustable, be able to calculate the score and save the highest score, make a countdown timer to calculate the end time

of the game

First of all, you need to complete the game function with the basic features of the game such as connecting two identical animals and being able to connect with each other by up to 3 lines without being obstructed by other animals

Completed functions players can play games with two different modes: traditional and expansion mode, complete game sound system, sound effects at play, functions calculate points and save the highest points, store functions to buy and use items purchased, functions to select the level of play for expansion

Through this topic, the team gained more knowledge about what it is like to make a game, approach new game engine, use c# language that the group has not learned before, capable of developing a game product While it was difficult to learn about the new game engine's algorithms and operations due to limitations in documentation and information, the team did their best to complete the project as well as possible Since then the ability to find documents and solve problems is improved

Trang 4

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

4

MỤC LỤC

MỤC LỤC 4

DANH MỤC CÁC HÌNH VẼ 7

DANH MỤC CÁC BẢNG BIỂU 9

LỜI MỞ ĐẦU 11

CHƯƠNG 1 : GIỚI THIỆU 13

1.1.Tổng quan 13

1.2.Mục tiêu đề tài 13

1.3.Phạm vi đề tài 14

1.4 Mô tả yêu cầu chức năng 14

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT 16

2.1 Tổng quan về Unity: 16

Unity là gì ? [3] 16

Sự hình thành của Unity 16

Kiến trúc tổng quan.[3] 17

Đối tượng của Unity [4] 17

2.2 Thuật toán 19

Thuật toán tìm hai hình giống nhau 19

Hàm hiển thị ảnh lên màn hình 24

Hàm lấy hình ngẫu nhiên 24

Hàm tự động tráo hình khi không còn cặp hình hợp lệ 25

Hàm nhảy vị trí hình 25

CHƯƠNG 3 : PHÂN TÍCH 34

Trang 5

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

5

3.1.Sơ đồ use case 34

3.2 Danh sách use case và các mô tả 34

3.3 Đặc tả yêu cầu chức năng 35

A001_Chọn kiểu cổ điển 35

A002_Chọn kiểu mở rộng 38

A003_Chọn cấp độ 39

A004_Cập nhật kết quả trò chơi 42

A005_ Sử dụng vật phẩm 44

A006_ Tạm dừng trò chơi 47

A007_ Chơi lại từ đầu 49

A008_ Chơi tiếp trò chơi 51

A009_Thoát trò chơi 53

A010_ Hướng dẫn trò chơi 55

A011_ Mua vật phẩm 57

A012_ Tắt/Bật nhạc nền 59

A013_ Chơi trò chơi cổ điển 61

A014_ Chơi trò chơi mở rộng 64

CHƯƠNG 4: THIẾT KẾ VÀ HIỆN THỰC 67

4.1.Sơ đồ 67

4.1.1.Sơ đồ class 67

4.1.2.Sơ đồ màn hình 68

4.2.Hiện thực 68

CHƯƠNG 5: KẾT LUẬN 72

5.1 Kết quả đạt được 72

Trang 6

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

6

5.2 Hạn chế của đồ án 725.3 Hướng phát triển 72TÀI LIỆU THAM KHẢO 73

Trang 7

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

7

DANH MỤC CÁC HÌNH VẼ

Hình 2-1 Hình ma trận 19

Hình 2-2 Trường hợp 1 20

Hình 2-3 Trường hợp 2 20

Hình 2-4 Trường hợp 3 21

Hình 2-5 Trường hợp 4 21

Hình 2-6 Trường hợp 5.1 22

Hình 2-7 Trường hợp 5.2 22

Hình 2-8 Trường hợp 6.1 23

Hình 2-9 Trường hợp 6.2 23

Hình 2-10 Hình thức lưu hình trong đề tài 24

Hình 2-11 Hình ảnh hiển thị trên màn hình trò chơi 24

Hình 2-12 Hình ảnh hiển thị trong thuật toán 24

Hình 2-13 Hình ma trận trước khi nhảy phải 25

Hình 2-14 Hình ma trận sau khi nối hai hình giống nhau 26

Hình 2-15 Hình ma trận sau khi nhảy phải 26

Hình 2-16 Hình kết quả ma trận sau khi nhảy trái 27

Hình 2-17 Hình ma trận trước khi nhảy trái 27

Hình 2-18 Hình ma trận sau khi nối hai hình giống nhau 28

Hình 2-19 Hình ma trận sau khi nhảy trái 28

Hình 2-20 Hình kết quả ma trận sau khi nhảy trái 29

Hình 2-21 Hình ma trận trước khi nhảy lên trên 29

Trang 8

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

8

Hình 2-22 Hình ma trận sau khi nhảy nối hai hình 30

Hình 2-23 Hình ma trận sau khi nhảy lên trên 30

Hình 2-24 Hình kết quả ma trận sau khi nhảy lên trên 31

Hình 2-25 Hình ma trận trước khi nhảy xuống dưới 31

Hình 2-26 Hình ma trận sau khi nối hai hình 32

Hình 2-27 Hình ma trận sau khi nhảy xuống dưới 32

Hình 2-28 Hình kết quả ma trận sau khi nhảy xuống dưới 33

Hình 3-1 Sơ đồ usecase 34

Hình 3-2 Biểu đồ activity chọn kiểu cổ điển 37

Hình 3-3 Biểu đồ sequence chọn kiểu cổ điển 37

Hình 3-4 Biểu đồ activity chọn kiểu mở rộng 39

Hình 3-5 Biểu đồ sequence chọn kiểu mở rộng 39

Hình 3-6 Biểu đồ activity chọn cấp độ 41

Hình 3-7 Biểu đồ sequence chọn cấp độ 41

Hình 3-8 Biểu đồ activity cập nhật kết quả 43

Hình 3-9 Biểu đồ sequence cập nhật kết quả 44

Hình 3-10 Biểu đồ activity sử dụng vật phẩm 46

Hình 3-11 Biểu đồ sequence sử dụng vật phẩm 46

Hình 3-12 Biểu đồ activity tạm dừng 48

Hình 3-13 Biểu đồ sequence tạm dừng trò chơi 48

Hình 3-14 Biểu đồ activity chơi lại từ đầu 50

Hình 3-15 Biểu đồ sequence chơi lại từ đầu 50

Hình 3-16 Biểu đồ activity chơi tiếp 52

Trang 9

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

9

Hình 3-17 Biểu đồ sequence chơi tiếp 52

Hình 3-18 Biểu đồ activity thoát trò chơi 54

Hình 3-19 Biểu đồ sequence thoát trò chơi 54

Hình 3-20 Biểu đồ activity hướng dẫn trò chơi 56

Hình 3-21 Biểu đồ sequence hướng dẫn trò chơi 56

Hình 3-22 Biểu đồ activity mua vật phẩm 58

Hình 3-23 Biểu đồ sequence mua vật phẩm 58

Hình 3-24 Biểu đồ activity tắt/bật nhạc nền 60

Hình 3-25 Biểu đồ sequence tắt/bật nhạc nền 60

Hình 3-28 Biểu đồ sequence chơi trò chơi cổ điển 63

Hình 3-29 Biểu đồ sequence chơi trò chơi mở rộng 66

Hình 0-1 Sơ đồ class 67

Hình 0-2 Màn hình chính 68

Hình 0-3 Màn hình chọn kiểu chơi 69

Hình 0-4Màn hình hướng dẫn trò chơi 69

Hình 0-5 Màn hình chơi theo kiểu cổ điển 70

Hình 0-6 Màn hình chọn cấp độ 70

Hình 0-7 Màn hình chơi theo kiểu mở rộng 71

DANH MỤC CÁC BẢNG BIỂU Bảng 3-1 Bảng danh sách use case 35

Bảng 3-2 Bảng chọn kiểu cổ điển 36

Trang 10

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

10

Bảng 3-3 Bảng chọn kiểu mở rộng 38

Bảng 3-4 Bảng chọn cấp độ 40

Bảng 3-5 Bảng cập nhật kết quả trò chơi 42

Bảng 3-6 Bảng sử dụng vật phẩm 45

Bảng 3-7 Bảng tạm dừng trò chơi 47

Bảng 3-8 Bảng chơi lại từ đầu 49

Bảng 3-9 Bảng chơi tiếp trò chơi 51

Bảng 3-10 Bảng thoát trò chơi 53

Bảng 3-11 Bảng hướng dẫn trò chơi 55

Bảng 3-12 Bảng mua vật phẩm 57

Bảng 3-13 Bảng Tắt/Bật nhạc nền 59

Bảng 3-15 Bảng chơi trò chơi cổ điển 61

Bảng 3-16 Bảng chơi trò chơi mở rộng 64

Trang 11

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

11

LỜI MỞ ĐẦU

1 Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài

Ngày nay, mọi người đã quá quen với những chiếc điện thoại di động luôn ở bên mình mọi lúc mọi nơi, đơn giản vì sự hữu ích của nó Chúng ta có thể nghe, gọi, nhắn tin, lướt web, xem video, nghe nhạc, học tập, chụp ảnh… Điện thoại di động cũng đang ngày càng trở nên thông minh hơn bởi sức sáng tạo không ngừng của con người

Hiện nay, cùng với sự phát triển của công nghệ đi động đã bùng nổ trong nhiều năm qua, các thiết bị cầm tay thông minh đã trở nên rất mạnh mẽ và phổ biến Trong vài năm trở lại đây Hệ điều hành Android ra đời và trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới Hầu như tất cả các điện thoại thông minh

sử dụng hệ điều hành Android đều dễ sử dụng, đơn giản, tùy biến theo sở thích cá nhân Theo báo cáo do Google và Temasek công bố trong tháng 11-2018, thị trường game di động tại Việt Nam tăng trưởng hơn 50% trong năm 2018 Đến năm 2025, ước tính nền kinh tế internet của Việt Nam sẽ là một động cơ tăng trưởng trị giá 33

tỷ USD, lớn thứ 3 khu vực Đông Nam Á và lớn gấp 11 lần so với năm 2015 Một số

dữ liệu thống kê lạc quan do App Annie công bố về thị trường di động năm 2018 trong khu vực càng cho thấy hệ sinh thái di động tại Việt Nam đang đứng trước cơ hội phát triển Theo báo cáo, trung bình mỗi người Việt cài đặt đến 85 ứng dụng di động trên điện thoại của mình và thường sử dụng 37 ứng dụng để chơi game là chủ yếu

Bên cạnh đó, nhóm đã tìm hiểu được hai đề tài game Pikachu của hai nhóm đó

là của Phạm Thị Đoàn Hân và Nguyễn Thị Ánh Tuyết Theo như nhóm quan sát thì hai đề tài đều có sự đổi mới về hình cũng như màu sắc làm cho trò chơi thêm sinh động, đồng thời sáng tạo thêm nhiều chức năng mới như phân chia nhiều chủ đề,

Trang 12

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

12

bảng xếp hạng điểm, hướng dẫn người chơi và các hình ảnh trong trò chơi cũng đa dạng nhưng cả hai vẫn có khuyết điểm chung đó là vẫn giữ lối chơi của game Pikachu truyền thống với giao diện 9 hàng 16 cột, không lưu lại cấp độ trò chơi và cũng chưa khai thác nhiều về chức năng tính điểm

2 Ý nghĩa khoa học và thực tiễn của đề tài

Hiện nay việc làm trình game trên Android được ứng dụng nhiều và phổ biến trên thiết bị di động để đáp ứng nhu cầu giải trí cho con người Nhận thấy được sự phát triển mạnh mẽ cùng với mục đích học tập nên nhóm đã quyết định tìm hiểu và thực hiện đề tài “Game tìm hình giống nhau trên thiết bị di động”

Trang 13

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

“Connect Animal Game” có giao diện chính của trò chơi là các ô hình thú không sắp xếp theo trật tự hàng hay cột mà sẽ có quy luật ngẫu nhiên riêng Trò chơi có nhiều màn chơi và được phân chia theo cấp độ từ dễ dến khó, có hệ thống tính điểm

và tính sao cho người chơi, có giới hạn thời gian theo từng cấp độ chơi và cuối cùng

là có cửa hàng để mua vật phẩm dùng để hỗ trợ người chơi

1.2.Mục tiêu đề tài

Để xây dựng được trò chơi tìm hình giống nhau trên thiết bị di động thì nhiệm

vụ đặt ra là phải phát triển được trò chơi này trên Unity và cài đặt được trên thiết bị

di động Ngoài ra, trò chơi phải đáp ứng những chức năng cần có như là : áp dụng

và xử lý thuật toán tìm hai hình giống nhau, khi chọn một hình bất kỳ thì đổi màu hình đó để dễ nhận biết, vẽ được đường đi từ hình này đến hình khác, trò chơi phải

có âm thanh và có thể điều chỉnh được, có khả năng tính được điểm và lưu lại điểm cao nhất, làm được đồng hồ đếm ngược để tính toán thời gian kết thúc trò chơi

Trang 14

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

14

1.3.Phạm vi đề tài

Nhóm chọn phát triển trò chơi trên Unity vì nó là một game engine được phát triển bởi Unity Technologies như một hệ sinh thái (Engine) đa nền tảng để phát triển game và có các chức năng cơ bản như: cung cấp công cụ dựng hình (kết xuất

đồ họa) cho các hình ảnh 2D hoặc 3D, công cụ vật lý (tính toán và phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động, trí tuệ nhân tạo, phân luồng, tạo dò nguồn dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị và kết nối mạng Unity là engine đáp ứng đầy đủ các yêu cầu đó

Ngoài những chức năng cơ bản của một hệ sinh thái đó, Unity còn có những

ưu việt vượt trội so với các engine khác: sử dụng ngôn ngữ lập trình phổ biến tại Việt Nam là C#, hỗ trợ đa nền tảng, dễ sử dụng, ngay cả với lập trình viên nghiệp

dư, thư viện phong phú và cộng đồng lớn mạnh

1.4 Mô tả yêu cầu chức năng

Trước hết phải hoàn thiện được chức năng chơi game với những tính năng cơ bản của trò chơi như nối hai con vật giống nhau và có thể kết nối với nhau bởi tối đa

3 đường thẳng mà không bị cản trở bởi các con vật khác

Mục tiêu tiếp theo của trò chơi là giới hạn được thời gian của mỗi màn chơi để

có thể tính điểm và sao cho người chơi Số sao càng nhiều thì thưởng điểm càng cao (1 sao thưởng 100 điểm, 2 sao thưởng 300 điểm, 3 sao thưởng 500 điểm) Điểm tích được ở mỗi màn chơi sẽ được dùng để mua vật phẩm trong cửa hàng Cửa hàng sẽ bán những vật phẩm như cộng thêm 10 giây vào màn chơi (có giá là 1000 điểm), cộng thêm 20 giây vào màn chơi (có giá là 2000 điểm)

Trong mỗi màn chơi sẽ có chức năng Tạm dừng trò chơi Ngoài ra còn có chức năng chơi lại từ đầu, chơi tiếp, thoát trò chơi Chức năng tạm dừng trò chơi có nghĩa là thời gian sẽ ngừng và người dùng không thể tiếp tục chơi cho đến khi chọn chức năng chơi tiếp Chức năng chơi lại từ đầu có nghĩa là người chơi sẽ được chơi

Trang 15

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

đồ thứ tư có 10 màn với độ khó khác nhau Ở bản đồ thứ nhất thì tự động mở, bản

đồ thứ hai cần bảy sao, bản đồ thứ ba cần 24 sao, bản đồ thứ tư cần 43 sao

Ở chế độ chơi theo kiểu cổ điển, màn thứ nhất có 6 dòng và 10 cột, màn thứ hai có 6 dòng 12 cột, màn thứ ba có 7 dòng 12 cột, màn thứ tư có 7 dòng 14 cột và

từ màn thứ năm có 7 dòng 16 cột Bên cạnh đó, nhảy vị trí hình bắt đầu từ màn thứ hai với nhảy vị trí sang trái, màn thứ ba nhảy vị trí sang phải, màn thứ tư và sáu nhảy vị trí sang trái và xuống dưới, màn thứ năm nhảy vị trí sang phải và xuống dưới, màn thứ bảy nhảy vị trí sang trái và lên trên, từ màn thứ tám trở đi nhảy vị trí sang phải và lên trên

Ở chế độ chơi theo kiểu mở rộng, màn thứ nhất có 4 dòng 5 cột, màn thứ hai

có 4 dòng 6 cột, màn thứ ba có 5 dòng 6 cột, màn thứ tư có 6 dòng 7 cột, màn thứ năm có 6 dòng 8 cột, màn thứ sáu có 6 dòng 12 cột và từ màn thứ 7 trở đi có 6 dòng

13 cột Bên cạnh đó, nhảy vị trí hình bắt đầu từ màn thứ tư với nhảy vị trí sang trái, màn thứ năm nhảy vị trí sang phải và xuống dưới, màn thứ sáu nhảy vị trí sang trái

và xuống dưới, màn thứ bảy nhảy vị trí sang trái và lên trên, từ màn thứ tám trở đi nhảy vị trí sang phải và lên trên

Trang 16

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

và hào hứng trong từng chuyển động, tương lai công nghệ này được áp dụng vào game Việt Nam và mở ra một trang mới cho thế giới game 2D, 3D

Unity được dùng để làm video game hoặc những nội dung có tính tương tác như thể hiện kiến trúc, hoạt hình 2D, 3D thời gian thực Unity là một trong những engine được giới làm game không chuyên cực kỳ ưa chuộng vì khả năng tuyệt vời của nó đó là phát triển trò chơi đa nền Trình biên tập có thể chạy trên Windows và Mac OS và có thể xuất ra game cho Windows, Mac, Wii, IOS, Android

Unity có thể tạo ra được nhiều loại game 2D, 3D đa dạng, dễ sử dụng với những người làm game chưa chuyên nghiệp, chất lượng cao, chạy hầu hết trên các

hệ điều hành Trong Unity chúng ta có thể import trực tiếp các file mô hình đang thiết kế và sẽ thiết kế tiếp nếu chưa xong trong khi việc import chỉ diễn ra một lần Ngoài ra Unity còn cho chúng ta trực tiếp tạo mô hình nếu muốn và việc đặt các thuộc tính vật lý cũng cực kỳ dễ dàng, hỗ trợ sẵn nhiều chức năng

Sự hình thành của Unity

Phần lõi của Unity ban đầu được viết bởi Joachim Ante vào năm 2001 và sau

đó được công ty hình thành vào năm 2005 với phiên bản 1.0 Đến năm 2007, Unity được nâng lên phiên bản 2.0 Unity bắt đầu hỗ trợ Iphone vào năm 2008 Vào tháng

Trang 17

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

Kiến trúc tổng quan.[3]

Engine Unity hỗ trợ cho chúng ta UnityAPI đế viết script game UnityAPI là API lập trình game trong Unity rất mạnh, chứa các đối tượng và phương thức hỗ trợ hầu hết các đối tượng, thành phần trong Unity Trong một scene thường có nhiều đối tượng game, mỗi đối tượng này có thể có hoặc không có đoạn script nào gắn lên

đó Nếu muốn gắn script vào đối tượng ta bắt buộc phải kế thừa lớp MonoBehavior của UnityAPI và tên class phải tùng với tên file script Mỗi script gắn lên đối tượng game đều được xem như một thành phần bên trong và được cấp phát vùng nhớ khi chạy game

Bên trong UnityAPI chứa rất nhiều lớp hỗ trợ lập trình game, trong đó có một

số lớp quan trọng như MonoBehavior (tất cả các script muốn gắn vào đối tượng bắt buộc phải kế thừa lớp này), GameObject (lớp cha của tất cả các thực thể trong scene), Component (lớp cha của tất cả thành phần có thể gắn vào đối tượng)

Đối tượng của Unity [4]

2.1.4.1 GameObject

Unity định nghĩa GameObject là đối tượng đại diện cho các Assets trong game như nhân vật, cây cỏ, công cụ, đạo cụ, camera, hiệu ứng Các GameObject đều chứa một thuộc tính cơ bản là Transform, dùng để thiết lập vị trí, hướng và kích thước của GameObject

Trang 18

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

18

2.1.4.2 Components

Components là các thuộc tính thêm vào GameObject như là Animation, âm thanh, mô hình 3D, hiệu ứng, … nhằm xây dựng, kết hợp các yếu tố khác nhau để xác định các hình thái, hành vi, hiệu ứng, của đối tượng mong muốn trong game

2.1.4.3 Scenes

Trong Unity, Scene là một cảnh game, không gian game nơi thiết lập bố cục của các GameObjects, hoặc là một phần chứa các thiết lập giao diện như các menu trong game Tạo ra nhiều Scenes sẽ giúp linh hoạt trong việc phân phối tối ưu tài nguyên, quản lý các phân đoạn trong game một cách độc lập

2.1.4.4 Scripts

Scripts là một Component trong Unity Đây là thành phần thiết yếu dùng để tương tác với các hành động của người chơi, hoặc quản lý các sự kiện để thay đổi chiều hướng của game tương ứng với kịch bản game Unity cung cấp cho lập trình viên khả năng viết Script bằng ngôn ngữ C#

2.1.4.5 Prefabs

Prefabs là một GameObject hoàn chỉnh sau khi thêm các thuộc tính và được lưu trữ lại để tái sử dụng Các GameObject được nhân bản từ một prefab sẽ giống nhau hoàn toàn Để tạo ra một prefab, ta chỉ cần kéo một GameObject từ cửa sổ Hierarchy vào cửa sổ Project

2.1.4.6 Camera

Camera trong Unity dùng để thể hiện khung hình, góc nhìn mà người chơi có thể nhìn thấy được trong game Trong một game có thể thiết lập nhiều camera để chia nhỏ màn hình người chơi, tạo các hiệu ứng, hoặc tùy chỉnh như nhìn được từ phía sau, bản đồ thu nhỏ, …

Trang 19

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

Trong đó giá trị 0 tượng trưng cho đường bao quanh mang ý nghĩa cho phép

đi Các cặp hình sau khi được nối thì sẽ mất và mang giá trị là 0 Các giá trị khác 0 tượng trưng cho vật cản và là giá trị riêng cho từng hình, nếu như số giống nhau thì hình sẽ giống nhau

Thuật toán tìm hai hình giống nhau

- Trường hợp 1: public bool checkLineX(int y1, int y2, int x)

Hai điểm xét cùng thuộc một hàng (đường thẳng theo trục x) và giữa 2 điểm không có vật cản.[2] Nếu hai điểm A,B có cùng tọa độ x thì sẽ tìm đường thẳng nối

từ điểm A đến điểm B

Trang 20

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

20

Hình 2-2 Trường hợp 1

- Trường hợp 2 : public bool checkLineY(int x1, int x2, int y)

Hai điểm xét cùng thuộc một cột (đường thẳng theo trục y) và giữa 2 điểm không có vật cản [2] Nếu hai điểm A,B có cùng tọa độ y thì sẽ tìm đường thẳng nối từ điểm A đến điểm B

Hình 2-3 Trường hợp 2

- Trường hợp 3 : public int checkRectX(Vector3Int p1, Vector3Int p2)

Xét duyệt các đường đi theo chiều ngang trong phạm vi hình chữ nhật [2] Duyệt từ A.x đến B.x kiểm tra xem có một cột y nào đó trống hay không, nếu có thì nối A với B thông qua đường thẳng y

Trang 21

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

21

Hình 2-4 Trường hợp 3

- Trường hợp 4 : public int checkRectY(Vector3Int p1, Vector3Int p2)

Xét duyệt các đường đi theo chiều dọc [2] Duyệt từ A.y đến B.y kiểm tra xem có một dòng x nào đó trống hay không, nếu có thì nối A với B thông

qua đường thẳng x

Hình 2-5 Trường hợp 4

- Trường hợp 5 : public int checkMoreLineX(Vector3Int p1, Vector3Int p2, int type)

Trang 22

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

22

Xét mở rộng theo chiều ngang [2] Với 2 điểm A,B ta xác định xem điểm nào

có tọa độ y lớn hơn đặt tên là Ymax.y, còn lại là Ymin.y Duyệt từ cột Ymax trở lên cho đến khi gặp đường bao quanh và kiểm tra xem có một cột y nào trống hay không và sau đó nối từ điểm A đến điểm C, từ điểm C đến điểm D

và từ điểm D đến điểm B

Hình 2-6 Trường hợp 5.1

Hình 2-7 Trường hợp 5.2

Trang 23

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

y nào trống hay không và sau đó nối từ điểm A đến

Hình 2-8 Trường hợp 6.1

Hình 2-9 Trường hợp 6.2

Trang 24

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

24

Hàm hiển thị ảnh lên màn hình

Đặt tên tất cả các hình hiện có thành các số nguyên có giá trị tăng dần, sau đó tạo một ma trận số nguyên với số dòng và số cột được cho trước, giá trị được gán vào ma trận là tên của hình tương ứng Ví dụ :

Với các hình được lưu như sau

Hình 2-10 Hình thức lưu hình trong đề tài

Thì khi hiển thị các hình lên giao diện trò chơi thì sẽ được ma trận tương ứng

Hình 2-11 Hình ảnh hiển thị trên màn hình trò chơi

Hình 2-12 Hình ảnh hiển thị trong thuật toán

Hàm lấy hình ngẫu nhiên

Số cột/dòng sẽ thay đổi theo từng cấp độ cho nên số hình hiển thị sẽ thay đổi theo, đế giới hạn số lượng hình lấy ra nên sẽ có hình hiển thị 2 lần hoặc 4 lần trên màn hình được qui định như sau :

Số hình hiển thị 4 lần: x4 = ((số dòng – 2) * (số cột – 2)) / 4 – cấp độ

Số hình hiển thị 2 lần: x2= ((số dòng – 2) * (số cột – 2) – (x4 * 4)) / 2

Trang 25

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

Hàm tự động tráo hình khi không còn cặp hình hợp lệ

Dùng thuật toán tìm hình giống nhau quét ma trận hiện tại xem còn cặp hình nào hợp lệ hay không, nếu hết thì sẽ lấy hết tất cả hình hiện có trên màn hình bỏ vào một List<>() sau đó trộn và đưa lại lên màn hình theo thứ tự từ đầu đến cuối List sao cho thỏa mãn có ít nhất hai cặp giống nhau khi có tổng số hình lớn hơn sáu và một cặp hình khi tổng số hình nhỏ hơn sáu

Hàm nhảy vị trí hình

Nhảy vị trí hình sang phải (public void GoRightButton()): khi một cặp hình giống nhau được nối thì giá trị của hai cặp hình này sẽ bằng -1 Quét ma trận hiện tại xem vị trí nào có giá trị là -1 thì hình đó sẽ đổi vị trí sang trái với các hình cùng hàng cho đến cuối hàng thì dừng Sau khi đổi vị trí xong thì quét lại ma trận một lần nữa xem vị trí nào có giá bằng -1 thì đổi giá trị lại bằng 0

Hình 2-13 Hình ma trận trước khi nhảy phải

Trang 26

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

26

Hình 2-14 Hình ma trận sau khi nối hai hình giống nhau

Hình 2-15 Hình ma trận sau khi nhảy phải

Trang 27

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

27

Hình 2-16 Hình kết quả ma trận sau khi nhảy trái

Nhảy vị trí hình sang trái (public void GoLeftButton()): khi một cặp hình giống nhau được nối thì giá trị của hai cặp hình này sẽ bằng -1 Quét ma trận hiện tại xem vị trí nào có giá trị là -1 thì hình đó sẽ đổi vị trí sang phải với các hình cùng hàng cho đến cuối hàng thì dừng Sau khi đổi vị trí xong thì quét lại ma trận một lần nữa xem vị trí nào có giá bằng -1 thì đổi giá trị lại bằng 0

Hình 2-17 Hình ma trận trước khi nhảy trái

Trang 28

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

28

Hình 2-18 Hình ma trận sau khi nối hai hình giống nhau

Hình 2-19 Hình ma trận sau khi nhảy trái

Trang 29

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

29

Hình 2-20 Hình kết quả ma trận sau khi nhảy trái

Nhảy vị trí hình lên trên (public void GoTopButton()) : khi một cặp hình giống nhau được nối thì giá trị của hai cặp hình này sẽ bằng -1 Quét ma trận hiện tại xem

vị trí nào có giá trị là -1 thì hình đó sẽ đổi vị trí xuống dưới với các hình cùng cột cho đến cuối cột thì dừng Sau khi đổi vị trí xong thì quét lại ma trận một lần nữa xem vị trí nào có giá bằng -1 thì đổi giá trị lại bằng 0

Hình 2-21 Hình ma trận trước khi nhảy lên trên

Trang 30

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

30

Hình 2-22 Hình ma trận sau khi nhảy nối hai hình

Hình 2-23 Hình ma trận sau khi nhảy lên trên

Trang 31

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

31

Hình 2-24 Hình kết quả ma trận sau khi nhảy lên trên

Nhảy vị trí hình xuống dưới (public void GoBottomtButton()): khi một cặp hình giống nhau được nối thì giá trị của hai cặp hình này sẽ bằng -1 Quét ma trận hiện tại xem vị trí nào có giá trị là -1 thì hình đó sẽ đổi vị trí lên trên với các hình cùng cột cho đến cuối cột thì dừng Sau khi đổi vị trí xong thì quét lại ma trận một lần nữa xem vị trí nào có giá bằng -1 thì đổi giá trị lại bằng 0

Hình 2-25 Hình ma trận trước khi nhảy xuống dưới

Trang 32

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

32

Hình 2-26 Hình ma trận sau khi nối hai hình

Hình 2-27 Hình ma trận sau khi nhảy xuống dưới

Trang 33

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

33

Hình 2-28 Hình kết quả ma trận sau khi nhảy xuống dưới

Trang 34

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

34

CHƯƠNG 3: PHÂN TÍCH

3.1.Sơ đồ use case

Hình 3-1 Sơ đồ usecase

3.2 Danh sách use case và các mô tả

A001 Chọn kiểu cổ điển Người chơi chọn kiểu cổ điển để chơi theo kiểu

tìm hình pikachu cổ điển

A002 Chọn kiểu mở rộng Người chơi chọn kiểu chơi mở rộng để chơi

theo kiểu tìm hình muông thú kiểu mới

A003 Chọn cấp độ Khi người chơi chọn kiểu chơi mở rộng phải

chọn cấp độ trước khi bắt đầu chơi

A004 Cập nhật kết quả

trò chơi

Khi màn chơi kết thúc thì hệ thống sẽ tự cập nhật kết quả trò chơi

A005 Sử dụng vật phẩm Khi đang trong màn chơi người chơi có thể sử

Trang 35

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

35

dụng vật phẩm đã mua để hỗ trợ trong việc chơi

A006 Tạm dừng trò chơi Khi đang ở trong một màn chơi, sẽ có nút tạm

dừng để người chơi chọn dừng chơi

A007 Chơi lại từ đầu Sau khi chọn tạm dừng, sẽ hiện nút Chơi lại từ

đầu cho người chơi chọn khi cần

A008 Chơi tiếp trò chơi Sau khi chọn tạm dừng, sẽ hiện nút Chơi tiếp

game cho người chơi chọn khi cần

A009 Thoát trò chơi Sau khi chọn tạm dừng, sẽ hiện nút Thoát trò

chơi cho người chơi chọn khi cần

A010 Hướng dẫn trò chơi

Khi mới bắt đầu vào trò chơi sẽ hiện nút Thông tin game, trong đó sẽ hiện những thông tin cơ bản

mô tả game

A011 Mua vật phẩm

Khi người chơi tìm được quyền trợ giúp phù hợp với nhu cầu thì có thể nhấn nút Mua (mua bằng điểm tích được ở mỗi màn)

A012 Tắt/Bật nhạc nền Chức năng này hỗ trợ người chơi có thể

Bảng 3-1 Bảng danh sách use case

3.3 Đặc tả yêu cầu chức năng

A001_Chọn kiểu cổ điển

3.1.1.1 Mô tả use case A001

Use case: Chọn kiểu cổ điển

Trang 36

Khóa tốt nghiệp chuyên ngành Kỹ Thuật Phần Mềm

36

Mục đích: Chức năng này giúp bắt đầu màn chơi theo kiểu cổ điển

Mô tả: Người chơi chọn kiểu cổ điển để chơi theo kiểu tìm hình

pikachu cổ điển

Điều kiện trước:

Điều kiện sau: Người chơi chọn được kiểu chơi mong muốn

3 Người chơi chọn kiểu

Cổ điển

4 Hệ thống hiển thị giao diện chơi theo kiểu cổ điển

Ngày đăng: 24/08/2022, 18:27

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