Tải bản đầy đủ (.docx) (37 trang)

Đồ án Lập trình game cờ vua 3D có source code game

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.63 MB, 37 trang )

ĐẠI HỌC ĐÀ NẴNG
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THƠNG VIỆT –
HÀN

KHOA HỌC MÁY TÍNH

ĐỒ ÁN CƠ SỞ 3
ĐỀ TÀI:

XÂY DỰNG ỨNG DỤNG GAME CỜ VUA 3D

Nhóm sinh viên thực hiện:

NGUYỄN NGỌC THƯƠNG
NGUYỄN MINH TÙNG

Lớp:

19IT5

Giảng viên hướng dẫn:

ThS. TRẦN THỊ TRÀ VINH

Đà Nẵng, ngày … tháng … năm …


ĐẠI HỌC ĐÀ NẴNG
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THƠNG VIỆT –
HÀN


KHOA HỌC MÁY TÍNH

ĐỒ ÁN CƠ SỞ 3

XÂY DỰNG ỨNG DỤNG GAME CỜ VUA 3D

Đà Nẵng, ngày … tháng … năm …


LỜI MỞ ĐẦU
Hầu hết các sinh viên học trong các trường đào tạo khối ngành công nghệ đều
được tiếp cận với đủ thể loại nền tảng từ web tới mobile app, các phần mềm hệ
thống cho từng hệ điều hành. Tuy nhiên những hiểu biết về nghề lập trình game cịn
khá hạn chế, mặc dù đây là ngành nghề có tiềm năng phát triển lớn. Trung bình một
lập trình game cấp trung có thể kiếm được hơn 100,000 USD mỗi năm tại Mỹ khi
làm việc cho các Studio Game có tiếng, chưa tính các khoản thưởng cho các game
đạt doanh thu cao. Các kĩ sư lập trình game cũng được "ví von" như những người
nghệ sĩ thực thụ, với cơng việc địi hỏi tính sáng tạo khơng ngừng và khả năng chắt
lọc, hấp thụ những xu hướng mới nhất.
Game vừa là một cách giúp chúng ta giải trí, giúp chúng ta có khả năng tư duy,
đầu óc nhạy bén. Ngồi ra, game cịn giúp con người có thể tập trung cao độ hơn,
rèn luyện tính quyết tâm, kiên trì, tích lũy kinh nghiệm xử lý vấn đề… Một trong
những game được u thích hiện nay là game cờ vua, nhóm chúng em sẽ xây dựng
một ứng dụng di động tạo ra một biến thể cờ vua rất được lòng các game thủ chính
là cờ vua 3D.
Trong giới lập trình, game cờ là game chứa nhiều thuật toán xử lý về hướng đối
tượng, trí tuệ nhân tạo và lập trình mạng. Cờ vua 3D còn thể hiện tài năng thiết kế
ba chiều trong môi trường thiết kế Unity 3D. Tận dụng các lợi thế của ngôn ngữ C#,
một loại ngôn ngữ có tiềm năng lâu dài, được phát triễn bởi Microsoft với ưu thế
đơn giãn, hướng đối tượng, mạnh mẽ. Mặc dù C# loại bỏ một vài đặc tính của C++,

nhưng bù lại nó tránh được lỗi thường gặp trong ngơn ngữ C++. Một điều quan
trọng khác là với C++ là mã nguồn C# khơng địi hỏi phải có tập tin header. Tất cả
mã nguồn được viết trong khai báo lớp.



LỜI CẢM ƠN
Để đồ án cơ sở 3 này đạt kết quả tốt đẹp, em đã nhận được sự hỗ trợ, giúp đỡ
của thầy cơ. Với tình cảm sâu sắc, chân thành, cho phép chúng tơi được bày tỏ lịng
biết ơn sâu sắc đến tất cả quý thầy cô đã tạo điều kiện giúp đỡ trong quá trình học
tập và nghiên cứu và phát triển đề tài.
Trước hết chúng em xin gửi tới các thầy cô khoa Khoa học máy tính - Đại học
Cơng nghệ thơng tin và truyền thơng Việt – Hàn lời chào trân trọng, lời chúc sức
khỏe và lời cảm ơn sâu sắc. Với sự quan tâm, dạy dỗ, chỉ bảo tận tình chu đáo của
các giảng viên đã truyền tải các kĩ năng cần thiết, đến nay chúng đã có thể hồn
thành đề tài Đồ án cơ sở 3.
Đặc biệt chúng em xin gửi lời cảm ơn chân thành nhất tới giảng viên – ThS.
Trần Thị Trà Vinh đã quan tâm giúp đỡ, giúp đỡ tận tình chúng em hồn thành tốt
đồ án này trong thời gian qua.
Với điều kiện thời gian cũng như kinh nghiệm cịn hạn chế, đồ án này khơng
thể tránh được những thiếu sót. Chúng em rất mong nhận được sự chỉ bảo, đóng góp
ý kiến của các thầy cơ để tơi có điều kiện bổ sung, nâng cao ý thức của mình, phục
vụ tốt hơn cơng tác thực tế sau này.

Chúng em xin chân thành cảm ơn!


NHẬN XÉT
(Của giảng viên hướng dẫn)


...........................................................................................................
...........................................................................................................
...........................................................................................................
...........................................................................................................
...........................................................................................................
Đà Nẵng, ngày…tháng…năm 2021
Giảng viên hướng dẫn

Trần Thị Trà Vinh


MỤC LỤC
CHƯƠNG I: KIẾN THỨC TỔNG QUAN................................................................9
1.1

Unity Engine................................................................................................9

1.1.1

Giới thiệu Unity Engine........................................................................9

1.1.2

Ưu điểm của Unity..............................................................................10

1.1.3

Các thành phần trong Unity Editor......................................................12

1.1.4


Các khái niệm cơ bản trong Unity.......................................................13

1.2 Ngôn ngữ C#:................................................................................................14
1.2.1

Giới thiệu:............................................................................................14

1.2.2

Tại sao phái sử dụng ngôn ngữ C#......................................................15

1.2.3

C# là ngôn ngữ hiện đại:......................................................................16

1.3

Visual Studio..............................................................................................17

1.3.1

Visual Studio là gì?..............................................................................17

1.3.2 Giới thiệu các tính năng phần mềm Visual Studio..................................17
CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG..............................................20
2.1 Tác nhân của hệ thống...................................................................................20
2.2 Biểu đồ Use-case...........................................................................................20
2.3 Biểu đồ hoạt động..........................................................................................21
2.3.1 Biểu đồ hoạt động bắt đầu một ván mới.................................................21

2.3.2. Biểu đồ hoạt động chọn một quân cờ.....................................................22
2.3.3. Biểu đồ hoạt động di chuyển một quân cờ.............................................23
2.3.4 Biểu đồ hoạt động tiêu diệt quân cờ đối phương.....................................24
2.3.5 Biểu đồ hoạt động phong Hậu................................................................25
2.3.6 Biểu đồ hoạt động nhập thành................................................................26
2.3.7 Biểu đồ hoạt động chiếu vua...................................................................27
2.4 Biểu đồ lớp....................................................................................................28
CHƯƠNG III: GIỚI THIỆU SẢN PHẨM THỰC TẾ.............................................30
3.1 Giới thiệu trò chơi..........................................................................................30
3.2 Một số hình ảnh thực tế của trị chơi..............................................................30
CHƯƠNG IV : ƯU ĐIỂM, NHƯỢC ĐIỂM VÀ HƯỚNG PHÁT TRIỂN CỦA TRÒ
CHƠI.......................................................................................................................32
4.1 Ưu điểm.........................................................................................................32
4.2 Nhược điểm...................................................................................................32
4.3 Hướng phát triển............................................................................................32


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

DANH MỤC BẢNG
Bảng 2. 1 – Tác nhân trong hệ thống.......................................................................20


DANH MỤC CÁC HÌ
Hình 1. 1 – Giao diện cơ bản của Unity.....................................................................9
Hình 1. 2 – Danh sách nền tảng hỗ trợ của Unity....................................................11
Hình 1. 3 - Các thành phần trong Unity Editor.......................................................12
Hình 1. 4 – C Sharp.................................................................................................15
Hình 1. 5 – Kho lưu trữ...........................................................................................18
Hình 1. 6 - Intellisense.............................................................................................19

Y
Hình 2. 1 – Biểu đồ Use-case tổng quát...................................................................20
Hình 2. 2 – Biểu đồ hành động bắt đầu trị chơi......................................................21
Hình 2. 3 – Biểu đồ hành động chọn quân cờ..........................................................22
Hình 2. 4 – Biểu đồ hành động di chuyển quân cờ..................................................23
Hình 2. 5 – Biểu đồ hành động tiêu diệt quân cờ.....................................................24
Hình 2. 6 – Biểu đồ hành động phong Hậu cho quân Tốt........................................25
Hình 2. 7 – Biểu đồ actitvity Castling move............................................................26
Hình 2. 8 – Biểu đồ activity Check..........................................................................27
Hình 2. 9 – Biểu đồ lớp...........................................................................................28
Hình 3. 1 – Giao diện vào game..............................................................................30
Hình 3. 2 – Giao diện trị chơi khi chọn qn cờ.....................................................30
Hình 3. 3 – Hiển thị hiệu ứng các đường đi khi nhấn vào quân cơ..........................31
Hình 3. 4 – Giao diện trò chơi khi người chơi dành chiến thắng.............................31


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

CHƯƠNG I: KIẾN THỨC TỔNG QUAN
1.1 Unity Engine
1.1.1 Giới thiệu Unity Engine
Unity là một game engine đa nền tảng được phát triển bởi Unity
Technologies,[6] mà chủ yếu để phát triển video game cho máy tính, consoles và
điện thoại. Lần đầu tiên nó được cơng bố chạy trên hệ điều hành OS X, tại
Apple's Worldwide Developers Conference vào năm 2005, đến nay đã mở rộng
27 nền tảng.
6 phiên bản chính của phần mềm này đã được phát hành. Tại triển lãm
WWDC năm 2006, Apple đã trao thưởng giải Best Use of Mac OS X Graphics

cho ứng dụng này.

Hình 1. 1 – Giao diện cơ bản của Unity
Unity hỗ trợ đồ họa 2D và 3D, các chức năng được viết chủ yếu qua ngơn
ngữ C#. Hai ngơn ngữ lập trình khác cũng được hỗ trợ: Boo, đã bị loại cùng với
việc phát triển Unity 5 và UnityScript bị loại vào tháng 8 năm 2017 sau khi phát
hành Unity 2017.1. UnityScript là một ngôn ngữ lập trình độc quyền có cú pháp
tương tự JavaScript. Phần mềm nhắm mục tiêu các đồ họa APIs sau: Direct3D
trên Windows và Xbox One; OpenGL trên Linux, macOS, và Windows; OpenGL
ES trên Android và iOS; WebGL trên web; và APIs độc quyền trên các máy chơi
video game. Ngoài ra, Unity hỗ trợ APIs cấp thấp như Metal trên iOS và macOS
và Vulkan trên Android, Linux, và Windows, cũng như Direct3D 12 trên
Windows và Xbox One. Trong 2D games, Unity cho phép nhập sprites và một
renderer thế giới 2D tiên tiến. Đối với 3D games, Unity cho phép thiết lập các
10
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

đập điểm kĩ thuật của các kết cấu và độ phân giải mà cơng cụ trị chơi hỗ trợ,
cung cấp các hỗ trợ cho bump mapping, reflection mapping, parallax mapping,
cảnh không gian ambient occlusion (SSAO), hiệu ứng bóng đổ bằng cách sử
dụng shadow maps, render thiết lập toàn cảnh đến hiệu ứng. Unity cũng cung cấp
các dịch vụ cho nhà phát triển, bao gồm: Unity Ads, Unity Analytics, Unity
Certification, Unity Cloud Build, Unity Everyplay, Unity API, Unity Multiplayer,
Unity Performance Reporting and Unity Collaborate.
Unity nổi bật với khả năng xây dựng trò chơi chạy trên nhiều nền tảng. Các

nền tảng được hỗ trợ hiện nay là Android, Android TV, Facebook Gameroom,
Fire OS, Gear VR, Google Cardboard, Google Daydream, HTC
Vive, iOS, Linux, macOS, Microsoft HoloLens, Nintendo 3DS family, Nintendo
Switch, Oculus Rift, PlayStation 4, PlayStation Vita, PlayStation VR, Samsung
Smart TV, Tizen, tvOS, WebGL, Wii U, Windows, Windows Phone, Windows
Store, và Xbox One. Unity trước đây cũng đã hỗ trợ 7 nền tảng khác chạy trên
Unity Web Player. Unity Web Player là một plugin của trình duyệt chạy trên
Windows và OS X, đã bị gỡ bỏ vì lợi ích của WebGL.
Unity là bộ cơng cụ phát triển phần mềm mặc định (SDK) cho máy chơi game
video game Wii U của Nintendo, kèm theo bản miễn phí của Nintendo với mỗi
giấy phép phát triển Wii U. Unity Technologies gọi việc kết hợp sản xuất SDK
với một bên thứ ba là "industry first".
1.1.2 Ưu điểm của Unity
Chức năng cốt lõi đa dạng bao gồm: 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 tố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ị
ng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị và kết nối mạng. Nhờ có các
engine mà cơng việc làm game trở nên ít tốn kém và đơn giản hơn.
Hỗ trợ đa nền tảng: Một trong các thế mạnh của Unity3D chính là khả năng
hỗ trợ gần như tồn bộ các nền tảng hiện có bao gồm: PlayStation 3, Xbox 360,
Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux, trình duyệt Web và
cả Flash. Nói cách khác, chỉ với một gói engine, các studio có thể làm game cho
bất kỳ hệ điều hành nào và dễ dàng convert chúng sang những hệ điều hành khác
nhau. Đồng thời, đây cũng là giải pháp cho các game online đa nền tảng – có thể
chơi đồng thời trên nhiều hệ điều hành, phần cứng khác nhau như Web, PC,
Mobile, Tablet….

11
GVHD: ThS. Trần Thị Trà Vinh



Đồ án cơ sở 3

Xây dựng game cơ vua 3D

Hình 1. 2 – Danh sách nền tảng hỗ trợ của Unity
Dễ sử dụng: Unity3D được built trong một môi trường phát triển tích hợp,
cung cấp một hệ thống tồn diện cho các lập trình viên, từ soạn thảo mã nguồn,
xây dựng cơng cụ tự động hóa đến trình sửa lỗi. Do được hướng đến đồng thời cả
lập trình viên khơng chuyên và studio chuyên nghiệp, nên Unity3D khá dễ sử
dụng. Hơn nữa, đây là một trong những engine phổ biến nhất trên thế giới, người
dùng có thể dễ dàng tìm kiếm kinh nghiệm sử dụng của “tiền bối” trên các forum
cơng nghệ.
Tính kinh tế cao: Unity Technologies hiện cung cấp bản miễn phí engine
Unity3D cho người dùng cá nhân và các doanh nghiệp có doanh thu dưới
12
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

100.000 USD/năm. Với bản Pro, người dùng phải trả 1.500 USD/năm – một con
số rất khiêm tốn so với những gì engine này mang lại.
1.1.3 Các thành phần trong Unity Editor

Hình 1. 3 - Các thành phần trong Unity Editor
1.1.3.1 Cửa sổ Sences
Phần này phần hiển thị các đối tượng trong scenes một cách trực quan, có thể

lựa chọn các đối tượng, kéo thả, phóng to, thu nhỏ, xoay các đối tượng ...
Phần này có để thiết lập một số thơng số như hiển thị ánh sáng, âm anh, cách
nhìn 2D hay 3D ... -Khung nhìn Scene là nơi bố trí các Game Object như cây cối,
cảnh quan, enemy, player, camera, … trong game. Sự bố trí hoạt cảnh là một
trong những chức năng quan trọng nhất của Unity.
1.1.3.2 Cửa sổ Hierarchy
Tab hierarchy là nơi hiển thị các Game Object trong Sences hiện hành. Khi
các đối tượng được thêm hoặc xóa trong Sences, tương ứng với các đối tượng đó
trong cửa sổ Hierarchy.
Tương tự trong tab Project, Hierarchy cũng có một thanh tìm kiếm giúp quản
lý và thao tác với các Game Object hiệu quả hơn đặc biệt là với các dự án lớn.
1.1.3.3 Cửa sở Game
Đây là mạn hình demo Game, là góc nhìn từ camera trong game.
Thanh cơng cụ trong cửa sổ game cung cấp các tùy chỉnh về độ phân giải man
hình, thơng số (stats), gizmos, tùy chọn bật tắt các component...

13
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

1.1.3.4. Cửa sổ Project
Đây là cưa sổ explorer của Unity, hiển thị thông tin của tất cả các tài nguyên
(Assets) trong game của bạn.
Cột bên trái hiển thị assets và các mục yêu thích dưới dạng cây thư mục tương
tự như Windows Explorer. Khi click vào một nhánh trên cây thư mục thì tồn bộ
nội dung của nhánh đó sẽ được hiển thị ở khung bên phải. Ta có thể tạo ra các thư

mục mới bằng cách Right click -> Create -> Folder hoặc nhấn vào nút Create ở
góc trên bên trái cửa sổ Project và chọn Folder. Các tài nguyên trong game cũng
có thể được tạo ra bằng cách này.
Phía trên cây thư mục là mục Favorites, giúp chúng ta truy cập nhanh vào
những tài nguyên thường sử dụng. Chúng ta có thể đưa các tài nguyên vào
Favorites bằng thao tác kéo thả.
Đường dẫn của thư mục tài nguyên hiện tại. Chúng ta có thể dễ dàng tiếp cận
các thư mục con hoặc thư mục gốc bằng cách click chuột vào mũi tên hoặc tên
thư mục.
1.1.3.5. Cửa sổ Inspector
Cửa sổ Inspector hiển thị chi tiết các thông tin về Game Object đang làm việc,
kể cả những component được đính kèm và thuộc tính của nó. Bạn có thể điều
chỉnh, thiết lập mọi thông số và chức năng của Game Object thơng qua cửa sổ
Inspector.
Mọi thuộc tính thể hiện trong Inspector đều có thể dễ dàng tuỳ chỉnh trực tiếp
mà khơng cần thông qua một kịch bản định trước. Tuy nhiên Scripting API cung
cấp một số lượng nhiều và đầy đủ hơn do giao diện Inspector là có giới hạn.
Các thiết lập của từng component được đặt trong menu. Các bạn có thể click
chuột phải, hoặc chọn icon hình bánh răng nhỏ để xuất hiện menu.
Ngoài ra Inspector cũng thể hiện mọi thông số Import Setting của asset đang
làm việc như hiển thị mã nguồn của Script, các thông số animation, …
1.1.4 Các khái niệm cơ bản trong Unity
1.1.4.1. GameObject
Một đối tượng cụ thể trong game gọi là một game object, có thể là nhân vật,
đồ vật nào đó. Ví dụ: cây cối, xe cộ, nhà cửa, người...
1.1.4.2. Component
Một GameObject sẽ có nhiều thành phần cấu tạo nên nó như là hình ảnh
(sprite render), tập hợp các hành động (animator), thành phần xử lý va chạm
(collision), tính tốn vật lý (physical), mã điều khiển (script), các thành phần
khác... mỗi thứ như vậy gọi là một component của GameObject.

1.1.4.3. Sprite
Là một hình ảnh 2D của một game object có thể là hình ảnh đầy đủ, hoặc có
thể là một bộ phận nào đó.
14
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

1.1.4.4. Animation
Là tập một hình ảnh động dựa trên sự thay đổi liên tục của nhiều sprite khác
nhau.
1.1.4.5. Key Frame
Key Frame hay Frame là một trạng thái của một animation. Có thể được tạo
nên từ 1 sprite hay nhiều sprite khác nhau.
1.1.4.6. Prefabs
Là một khái niệm trong Unity, dùng để sử dụng lại các đối tượng giống nhau
có trong game mà chỉ cần khởi tạo lại các giá trị vị trí, tỉ lệ biến dạng và góc quay
từ mơt đối tượng ban đầu. Ví dụ: Các đối tượng là đồng tiên trong game Mario
đều có xử lý giống nhau, nên ta chỉ việc tạo ra một đối tượng ban đầu, các đồng
tiền còn lại sẽ sử dụng prefabs. Hoặc khi ta lát gạch cho một cái nền nhà, các
viên gạch cũng được sử dụng là prefabs.
1.1.4.7. Sounds
Âm thanh trong game.
1.1.4.8. Script
Script là tập tin chứa các đoạn mã nguồn, dùng để khởi tạo và xử lý các đối
tượng trong game. Trong Unity có thể dùng C#, Java Script, BOO để lập trình
Script.

1.1.4.9. Scenes
Quản lý tất cả các đối tượng trong một màn chơi của game.
1.1.4.10. Assets
Bao gồm tất cả những gì phục vụ cho dự án game như sprite, animation,
sound, script, scenes…
1.1.4.11. Camera
Là một game object đặc biệt trong scene, dùng để xác định tầm nhìn, quansát
các đối tượng khác trong game.
1.1.4.12. Transform
Là 3 phép biến đổi tịnh tiến, quay theo các trục, và phóng to thu nhỏ một đối
tượng
1.2 Ngơn ngữ C#:
1.2.1 Giới thiệu:
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ
liệu được xấy dựng sẵn. Tuy nhiên, ngơn ngữ C# có ý nghĩa cao khi nó thực thi
15
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc,
thành phần component, lập trình hướng đối tượng. Những tính chất đó hiện diện
trong một ngơn ngữ lập trình hiện đại. Và ngơn ngữ C# hội tụ đủ những điều kiện
như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngơn ngữ mạnh nhất là
C++ và Java.
Phần cốt lõi hay còn gọi là trái tim của bất cứ ngôn ngữ lập trình hướng đối
tượng là sự hồ trợ của nó cho việc định nghĩa và làm việc với những lớp. Những

lớp thì định nghĩa những kiểu dữ liệu mới, cho phép người phát triền mở rộng
ngơn ngữ để tạo mơ hình tốt hơn để giải quyết vấn đề. Ngôn ngữ C# chứa những
từ khóa cho việc khai báo những kiểu lớp đối tượng mới và những phương thức
hay thuộc tính của lớp, và cho việc thực thi đóng gói, kế thừa, và đa hình, ba
thuộc tính cơ bản của bất cứ ngơn ngữ lập trình hướng đối tượng.
Trong ngơn ngữ C# mọi thứ liên quan đến khai báo lớp điều được tìm thấy
trong phân khai báo của nó. Định nghĩa một lớp trong ngơn ngừ C# khơng địi
hỏi phải chia ra tập tin header và tập tin nguồn giống như trong ngôn ngữ C++.
Hơn thế nữa, ngôn ngữ C# hồ trợ kiểu XML, cho phép chèn các tag XML đề phát
sinh tự động các document cho lớp. C# cũng hồ trợ giao diện interface, nó được
xem như một cam kết với một lớp cho những dịch vụ mà giao diện quy định.
Trong ngơn ngữ C#, một lớp chỉ có thề kế thừa từ duy nhất một lớp cha, tức là
không cho đa kế thừa như trong ngôn ngữ C++, tuy nhiên một lớp có thề thực thi
nhiều giao diện. Khi một lớp thực thi một giao diện thì nó se hứa là nó sẽ cung
cấp chức năng thực thi giao diện.
Trong ngôn ngữ C#, những cấu trúc cũng được hồ trợ, nhưng khái niệm về
ngữ nghĩa của nó thay đổi khác với C++. Trong C#, một cấu trúc được giới hạn,
là kiểu dữ liệu nhò gọn, và khi tạo thể hiện thì nó u cầu ít hơn vê hệ điêu hành
và bộ nhớ so với một lớp. Một cấu trúc thì không thể kế thừa từ một lớp hay
được kế thừa nhưng một cấu trúc có thể thực thi một giao diện.

16
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

Hình 1. 4 – C Sharp

1.2.2 Tại sao phái sử dụng ngơn ngữ C#
Nhiều người tin rằng khơng cần thiết có một ngơn ngừ lập trình mới. Java, C+
+, Perl, Microsoft Visual Basic, và những ngôn ngữ khác được nghĩ rằng đẩ cung
cấp tất cà nhưng chức năng cấn thiết.
Ngôn ngữ c# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo
từ nền tảng phát triển hơn. Microsoft bắt đâu với công việc trong C và C++ và
thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều
trong số nhưng đặc tính này khá giống với những đặc tính có trong ngơn ngữ
Java. Khơng dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngơn
ngữ này.








Những mục đích này được được tóm tắt như sau:
C# là ngôn ngữ đơn giản.
C# là ngôn ngữ hiện đại.
C# là ngôn ngữ hướng đối tượng.
C# là ngôn ngữ mạnh mẽ và mềm dẻo.
C# là ngơn ngữ có ít từ khóa.
C# là ngôn ngữ hướng module.
C# sẽ trở nên phổ biến.

 C# là ngôn ngữ đơn giãn.
C# loại bỏ một vài sự phức tạp và rối rắm cùa những ngôn ngữ như Java và
C++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ

sở ảo (Virtual base class).
17
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến những vấn đề
cho các người phát triển C++.
Nếu chúng ta là người học ngôn ngữ này đầu tiên thì chắc chắn là ta sẽ khơng
trải qua những thời gian để học nó! Nhưng khi đó ta sẽ khơng biết được hiệu quả
của ngôn ngữ C# khi loại bỏ những vấn đề trên.
Ngơn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu chúng ta thân
thiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện
mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ
ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngơn ngữ đơn giản
hơn. Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những
cú pháp thay đổi. ví dụ như, trong C++ có ba toán tử làm việc với các thành viên
là ::,., và ->. Để biết khi nào dùng ba toán tử này cũng phức tạp và dề nhầm lan.
Trong c#, chúng được thay thế với một toán từ duy nhất gọi là .(dot). Đối với
người mới học thì điều này và những việc cải tiến khác làm bớt nhầm lẫn và đơn
giãn hơn.
Ghi chú: Nếu chúng ta đã sử dụng Java và tin rằng nó đơn giản, thì chúng ta
cũng sẽ tìm thấy rằng C# cũng đơn giản. Hầu hết mọi người đều không tin rằng
Java là ngôn ngữ đơn giản. Tuy nhiên, C# thì dễ hơn là Java và C++.

18
GVHD: ThS. Trần Thị Trà Vinh



Đồ án cơ sở 3

Xây dựng game cơ vua 3D

1.2.3 C# là ngơn ngữ hiện đại:
Điều gì làm cho một ngơn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ,
thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là
những đặc tính được mong đợi trong một ngơn ngữ hiện đại. C# chứa tất cả
những đặc tính trên. Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy
những đặc tính trên phức tạp và khó hiểu.
Ghi chú: Con trỏ được tích hợp vào ngơn ngữ C++. Chúng cũng là nguyên
nhân gây ra những rắc rối của ngôn ngừ này. C# loại bỏ những phức tạp và rắc rối
phát sinh bởi con trỏ. Trong C#, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an
toàn được tích hợp vào ngơn ngữ, sẽ loại bỏ những vấn đề rắc rối của C++.
1.2.3.1
C# là ngôn ngữ hướng đối tượng
Những đặc điểm chính của ngơn ngữ hướng đối tượng (Object-oriented
language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình
(polymorphism). C# hỗ trợ tất Ngơn Ngữ C# cả những đặc tính trên. Phần hướng
đối tượng của C# sẽ được trình bày chi tiết trong một chương riêng ở phần sau.
1.2.3.2
C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi
bản thân hay là trí tưởng tượng của chúng ta. Ngơn ngữ này khơng đặt những
ràng buộc lên những việc có thể làm. C# được sử dụng cho nhiều các dự án khác
nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm
chí những trình biên dịch cho các ngơn ngữ khác.
1.2.3.3

C# là ngơn ngữ ít từ khóa
C# là ngơn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa được
sử dụng để mơ tả thơng tin.
Chúng ta có thể nghĩ rằng một ngơn ngữ có nhiều từ khóa thì sẽ mạnh hơn.
Điều này khơng phải sự thật, ít nhất là trong trường hợp ngơn ngữ C#, chúng ta
có thể tìm thấy rằng ngơn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ
nào.
1.2.3.4
C# là ngôn ngữ hướng module
Mã nguồn C# có thể được viết trong những phân được gọi là những lớp,
những lớp này chứa các phương thức thành viên cùa nó. Những lớp và những
phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác.
Bằng cách truyền các mau thơng tin đến những lớp hay phương thức chúng ta có
thể tạo ra những mã nguồn dùng lại có hiệu quả.
1.3 Visual Studio
1.3.1 Visual Studio là gì?
Visual studio là một phần mềm hỗ trợ đắc lực hỗ trợ công việc lập trình website.
Cơng cụ này được tạo lên và thuộc quyền sở hữu của ông lớn công nghệ Microsoft.
Năm 1997, phần mềm lập trình nay có tên mã Project Boston. Nhưng sau đó,
Microsoft đã kết hợp các cơng cụ phát triển, đóng gói thành sản phẩm duy nhất.
19
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

Visual Studio là hệ thống tập hợp tất cả những gì liên quan tới phát triển ứng
dụng, bao gồm trình chỉnh sửa mã, trình thiết kế, gỡ lỗi. Tức là, bạn có thể viết

code, sửa lỗi, chỉnh sửa thiết kế ứng dụng dễ dàng chỉ với 1 phần mềm Visual
Studio mà thơi. Khơng dừng lại ở đó, người dùng cịn có thể thiết kế giao diện, trải
nghiệm trong Visual Studio như khi phát triển ứng dụng Xamarin, UWP bằng
XAML hay Blend vậy.
1.3.2 Giới thiệu các tính năng phần mềm Visual Studio
Tính đến nay, Visual Studio vẫn được coi là phần mềm lập trình hệ thống hàng
đầu, chưa có phần mềm nào có thể thay thế được nó. Được đánh giá cao như vậy
bởi Visual Studio sở hữu nhiều tính năng cực kỳ hấp dẫn. Cụ thể:
1.3.2.1 Đa nền tảng
Phần mềm lập trình Visual Studio của Microsoft hỗ trợ sử dụng trên nhiều nền
tảng khác nhau. Khơng giống như các trình viết code khác, Visual Studio sử dụng
được trên cả Windows, Linux và Mac Systems. Điều này cực kỳ tiện lợi cho lập
trình viên trong q trình ứng dụng.
1.3.2.2 Đa ngơn ngữ lập trình
Khơng chỉ hỗ trợ đa nền tảng, Visual Studio cũng cho phép sử dụng nhiều ngơn
ngữ lập trình khác nhau từ C#, F#, C/C++, HTML, CSS, Visual Basic, JavaScript,
… Bởi vậy, Visual Studio có thể dễ dàng phát hiện và thơng báo cho bạn khi các
chương trình có lỗi.
1.3.2.3 Kho tiện ích mở rộng phong phú
Mặc dù Visual Studio có hệ thống các ngơn ngữ hỗ trợ lập trình khá đa dạng.
Nhưng nếu lập trình viên muốn sử dụng một ngơn ngữ khác, bạn có thể dễ dàng tải
xuống các tiện ích mở rộng. Tính năng hấp dẫn này được hoạt động như một phần
chương trình độc lập nên không lo làm giảm hiệu năng của phần mềm.
1.3.2.4 Lưu trữ phân cấp
Phần lớn các tệp dữ liệu đoạn mã của Visual Studio đều được đặt trong các thư
mục tương tự nhau. Đồng thời, Visual Studio cũng cung cấp một số thư một cho các
tệp đặc biệt để bạn lưu trữ an tồn, dễ tìm, dễ sử dụng hơn.

20
GVHD: ThS. Trần Thị Trà Vinh



Đồ án cơ sở 3

Xây dựng game cơ vua 3D

1.3.2.5 Kho lưu trữ an tồn

Hình 1. 5 – Kho lưu trữ
Với Visual Studio, bạn có thể hồn tồn n tâm về tính lưu trữ, bởi phần mềm
đã được kết nối GIT và một số kho lưu trữ an toàn được sử dụng phổ biến hiện nay.
1.3.2.6 Màn hình đa nhiệm
Visual Studio sở hữu tính năng màn hình đa nhiệm, cho phép người dùng mở
cùng lúc nhiều tập tin, thư mục dù chúng có thể khơng liên quan tới nhau.
1.3.2.7 Hỗ trợ viết code
Khi sử dụng code vào trong lập trình, với Visual Studio, cơng cụ này có thể đề
xuất tới các lập trình viên một số tùy chọn thay thế nhằm điều chỉnh đôi chút để
đoạn code áp dụng thuận tiện hơn cho người dùng.
Hỗ trợ thiết bị đầu cuối
Phần mềm Visual Studio cũng tích hợp các loại thiết bị đầu cuối, giúp người
dùng không cần chuyển đổi giữa hai màn hình hay trở về thư mục gốc khi thực hiện
một thao tác cần thiết nào đó.
1.3.2.8 Hỗ trợ Git
Do kết nối với GitHub nên Visual Studio cho phép hỗ trợ sao chép, kéo thả trực
tiếp. Các mã code này sau đó cũng có thể thay đổi và lưu lại trên phần mềm.
Intellisense

21
GVHD: ThS. Trần Thị Trà Vinh



Đồ án cơ sở 3

Xây dựng game cơ vua 3D

1.3.2.9 Intellisense

Hình 1. 6 - Intellisense
Tính năng nhắc Intellisense được sử dụng hầu hết trong các phần mềm lập trình,
bao gồm cả Visual Studio. Tuy nhiên, so với các trình viết mã, Visual Studio vẫn
được đánh giá cao về tính chuyên nghiệp. Đặc biệt, tính năng này cịn có thể phát
hiện tất cả các đoạn mã không đầy đủ, nhắc lập trình viên, gợi ý sửa đổi, khai báo
biến tự động trong trường hợp lập trình viên quên, giúp bổ sung cú pháp cịn thiếu,

1.3.2.10 Tính năng comment
Một tính năng cũng khá hay ho, hỗ trợ cho người lập trình trong trường hợp
“nhớ nhớ qn qn” đó là tính năng bình luận. Tính năng này cho phép lập trình
viên để lại nhận xét, giúp dễ dàng ghi nhớ công việc cần hồn thành, khơng bỏ sót
cơng đoạn nào.

22
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Tác nhân của hệ thống

Tác nhân người chơi giữ vai trị chính trong trò chơi này.
Bảng 2. 1 – Tác nhân trong hệ thống
Stt
1

Tác nhân

Ý nghĩa ,nhiệm vụ của tác nhân
Tác nhân người chơi có thể di chuyển các quân cờ,
bắt đầu các trò chơi, kết thúc trò chơi, chiếu vua,
phong hậu, tấn cơng qn cờ đối phương, bật tắt
animation.

2.2 Biểu đồ Use-case

Hình 2. 1 – Biểu đồ Use-case tổng quát

23
GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

2.3 Biểu đồ hoạt động
2.3.1 Biểu đồ hoạt động bắt đầu một ván mới

Hình 2. 2 – Biểu đồ hành động bắt đầu trò chơi
24

GVHD: ThS. Trần Thị Trà Vinh


Đồ án cơ sở 3

Xây dựng game cơ vua 3D

2.3.2. Biểu đồ hoạt động chọn một quân cờ

Hình 2. 3 – Biểu đồ hành động chọn quân cờ
25
GVHD: ThS. Trần Thị Trà Vinh


×