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

đồ án môn học lập trình c net cơ bản đề tài lập trình trò chơi rắn săn mồi ngôn ngữ lập trình c

29 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Trang 1

-ĐỒ ÁN MÔN HỌC

LẬP TRÌNH C#.NET CƠ BẢNĐỀ TÀI:

“LẬP TRÌNH TRÒ CHƠI RẮN SĂN MỒI NGÔNNGỮ LẬP TRÌNH C#”

Giảng viên hướng dẫn: Thầy Nguyễn Thanh TrườngSinh viên thực hiện: 2221004151 – Nguyễn Ngọc Diễm

2221004261 – Phạm Hoàng Phúc

Mã lớp học phần : 2421101169304

TP.Hồ Chí Minh, tháng 6 năm 2024

Trang 2

TRƯỜNG ĐẠI HỌC TÀI CHÍNH MARKETINGKHOA CÔNG NGHỆ THÔNG TIN

-ĐỒ ÁN MÔN HỌC

LẬP TRÌNH C#.NET CƠ BẢNĐỀ TÀI:

“LẬP TRÌNH TRÒ CHƠI RẮN SĂN MỒI NGÔNNGỮ LẬP TRÌNH C#”

Giảng viên hướng dẫn: Thầy Nguyễn Thanh TrườngSinh viên thực hiện: 2221004151 – Nguyễn Ngọc Diễm

2221004261 – Phạm Hoàng Phúc

Mã lớp học phần : 2421101169304

TP.Hồ Chí Minh, tháng 6 năm 2024

Trang 3

Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc đến Thầy Nguyễn Thanh Trường, người đã luôn đồng hành, tận tình hướng dẫn, giải đáp các thắc mắc, góp ý và sửa chữa những phần còn thiếu sót trong quá trình làm đồ án của chúng em.

Bên cạnh đó bài đồ án này còn nhiều thiếu sót Chúng em sẽ cố gắng học hỏi, trau dồi kiến thức để hoàn thiện bản thân hơn trong tương lai và rất mong nhận được lời góp ý, sửa chữa từ thầy.

Cuối cùng, chúng em xin kính chúc quý thầy, cô luôn mạnh khỏe, hạnh phúc và thành công trong công việc và cuộc sống.

Em xin chân thành cảm ơn!

Trang i

Trang 4

NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN

Giảng viên

Nguyễn Thanh Trường

Trang ii

Trang 5

DANH MỤC THUẬT NGỮ ANH – VIỆT

Thuật ngữ Tiếng AnhÝ nghĩa Tiếng Việt1Management

Information Systems

Hệ thống thông tin quảnlý

Hệ thống hỗ trợ raquyết định

Hệ thống hỗ trợ điềuhành

Mô hình phân cấp chứcnăng

5Data Flow DiagramMô hình luồng dữ liệu6PowerDesingerCông cụ thiết kế phần

mềm quản lý

7App DiagramCông cụ hỗ trợ vẽ sơ đồ8Booking ConfirmationXác nhận đặt hàng9ForwarderĐơn vị/ công ty

Trang iii

Trang 6

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

Từ viếttắt

Ý nghĩa

1HTTTHệ thống thông tin2HTTTQ

Hệ thống thông tin quản lý

3MISManagement Information Systems4DSSDecision Support Systems

5ESSExecutive Support Systems6VUSTrung Tâm Anh ngữ Hội Việt Mỹ7VASSTrung Tâm Annh ngữ Việt Mỹ8SMSShort Message Services9BFDBusiness Function Diagram10DFDData Flow Diagram

Nền tảng quản trị doanh nghiệp hợpnhất

Trang iv

Trang 7

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1

1.1 Lý do hình thành đề tài: 1

1.2 Mục tiêu của đề tài: 1

1.3 Phạm vi đề tài và đối tượng nghiên cứu: 2

1.4 Phương pháp nghiên cứu: 2

1.5 Tổng quan về trò chơi máy tính (PC game): 2

1.6 Ngôn ngữ lập trình C# và NetFrameWork: 3

1.6.1 Giới thiệu về C#: 3

1.6.2 Một số đặc trưng của C#: 4

1.6.3 Quá trình thực hiện trong ngôn ngữ C#: 5

1.6.4 Giới thiệu về NetFrameWork 6

CHƯƠNG 2: SƠ ĐỒ THUẬT TOÁN 7

2.1 Tổng quan về game Rắn săn mồi: 7

2.1.1 Giới thiệu: 7

2.2 Mô tả: 8

2.2.1 Tổng quan: 8

2.3 Sơ đồ thuật toán: 9

2.3.1 Sơ đồ phân rã chức năng: 9

CHƯƠNG 3: MÔ TẢ THUẬT TOÁN 12

3.1 Khởi tạo và cấu hình ban đầu: 12

3.2 Vẽ rắn và mồi: 12

3.3 Điều khiển và xử lý đầu vào: 14

3.4 Kiểm tra va chạm và các chức năng khác: 14

Trang v

Trang 8

Trang vi

Trang 9

DANH MỤC HÌNH ẢNH

Trang vii

Trang 10

DANH MỤC BẢNG

Bảng 1 – Phân tích thiết kế use-case công ty32

Bảng 2 - Phân tích thiết kế use-case quản lý kinh doanh 33

Bảng 3 - Phân tích thiết kế use-case quản lý booking 34

Bảng 4 - Phân tích thiết kế use-case quản lý báo giá 35

Bảng 5 - Phân tích thiết kế use-case người dùng 36

Bảng 6 - Phân tích thiết kế use-case quản lý hải quan 37

Bảng 7 - Phân tích thiết kế use-case kế toán 38

Trang viii

Trang 11

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI

1.1 Lý do hình thành đề tài:

Trong những năm gần đây, lĩnh vực công nghệ thông tin ở Việt Nam đãphát triển mạnh mẽ không chỉ trong cuộc sống hàng ngày mà còn trong quản lýxã hội Trong số các lĩnh vực này, ngành giải trí đặc biệt được chú ý Gamekhông chỉ đơn giản là một phương tiện giải trí mà còn là một công cụ để kíchthích tư duy sáng tạo và phát triển trí thông minh Ngoài ra, chơi game cũnggiúp cải thiện khả năng tập trung, rèn luyện sự quyết đoán và kiên nhẫn, và họchỏi cách xử lý các vấn đề phức tạp.

Chúng em đã chọn đề tài "Lập trình trò chơi Rắn săn mồi bằng ngôn

ngữ lập trình C#" Đây là một dạng trò chơi này đã tồn tại từ lâu trên thế giới,

nhưng điểm mạnh của nó là tốc độ chơi nhanh và không đòi hỏi cấu hình máytính mạnh mẽ Điều này giúp giải quyết những khó khăn thường gặp khi pháttriển theo phong cách lập trình thủ tục thuần túy:

 Mã nguồn rõ ràng, dễ đọc và hiểu, được viết một cách súc tích. Chương trình linh hoạt, có thể dễ dàng điều chỉnh và mở rộng.

 Khả năng tái sử dụng tài nguyên, giúp tối ưu hóa quá trình phát triển và bảotrì.

1.2Mục tiêu của đề tài:

-Tìm hiểu về C# và vận dụng nó để để xây dựng gameRắn săn mồi Sinh viên sẽ tiếp cận và thực hành với ngôn ngữlập trình C#, từ cơ bản đến nâng cao, thông qua việc phát triểntrò chơi Rắn săn mồi Qua quá trình này, hiểu rõ về cú pháp, cấutrúc dữ liệu, và các khái niệm lập trình cần thiết để xây dựng mộtứng dụng game đơn giản nhưng hoàn chỉnh.

-Nâng cao trình độ, tự nghiên cứu, học hỏi, tư duy thôngqua việc tự nghiên cứu và khám phá thêm về các tính năng và

1

Trang 12

công nghệ mới trong quá trình thực hiện đồng thời phát triển kĩnăng làm việc theo nhóm, khả năng thuyết trình cho sinh viên,làm nền tảng vững chắc cho sinh viên sau này.

-1.3Phạm vi đề tài và đối tượng nghiên cứu:

-Phạm vi đề tài: nghiên cứu về lập trình hướng đối tượng

trong C# và các kỹ thuật lập trình game theo hướng đối tượng.-Đối tượng nghiên cứu:

+ Tìm hiểu C# và ứng dụng của nó để lập trình được game Rắn sănmồi

+ Nắm được các lớp, các phương thức, câu lệnh cần thiết để xâydựng chương trình.

+ Tìm hiểu về lập trình hướng đối tượng.

+ Tìm hiểu Microsoft Net và ngôn ngữ lập trình C#.+ Thiết kế ứng dụng theo tiếp cận hướng đối tượng.+ Tìm hiểu lớp và đối tượng.

+ Tìm hiểu lớp trừu tượng và giao diện.+ Lập trình Windows Form.

1.4Phương pháp nghiên cứu:

-Phương pháp nghiên cứu tài liệu.

-Nghiên cứu về xử lý thông tin định tính.

-Nghiên cứu về xử lý thông tin định lượng (phương phápđiều tra).

1.5 Tổng quan về trò chơi máy tính (PC game):

Trò chơi máy tính còn gọi là PC game, là thể loại trò chơi video đượcchơi trên các máy tính cá nhân (PC), thay vì chơi trên máy chơi trò chơi điện tửtại gia hoặc máy chơi trò chơi arcade

Các đặc điểm cố định của nó bao gồm: phần cứng và phần mềm chơigame đa dạng hơn và do người dùng quyết định; và nói chung là công suất lớn

2

Trang 13

hơn trong đầu vào, xử lý, đầu ra video và âm thanh Hiện nay, về bản chất là dokhông có sự phối hợp nào rõ ràng trong thị trường trò chơi PC, và việc thiếu cácphương tiện truyền thông vật lý, khiến việc đánh giá chính xác quy mô của nótrở nên khó khăn Năm 2018, thị trường game PC toàn cầu được định giákhoảng 27,7 tỷ USD.

Các trò chơi trên máy tính gia đình trở nên phổ biến hơn sau sự cố tròchơi điện tử năm 1983, dẫn đến kỷ nguyên của "coder phòng ngủ" Vào thậpniên 1990, các trò chơi trên PC đã đánh mất đi sức hút từ thị trường đại chúngvào tay máy chơi trò chơi điện tử, trước khi hồi sinh vào giữa thập niên 2000thông qua phân phối kỹ thuật số.

Ngày nay, phần lớn các trò chơi máy tính được thiết kế để chạy trêndòng hệ điều hành Microsoft Windows Trong khi các trò chơi trước đây đượcviết cho DOS sẽ bao gồm mã để giao tiếp trực tiếp với phần cứng thì ngày naygiao diện lập trình ứng dụng (API) cung cấp giao diện giữa trò chơi và hệ điềuhành, giúp đơn giản hóa việc thiết kế trò chơi DirectX của Microsoft là mộtAPI được các trò chơi máy tính ngày nay sử dụng rộng rãi để giao tiếp với phầncứng âm thanh và đồ họa OpenGL là một API đa nền tảng cũng được sử dụngđể kết xuất đồ họa Phiên bản trình điều khiển của card đồ họa được cài đặtthường có thể ảnh hưởng đến hiệu suất trò chơi và cách chơi

1.6 Ngôn ngữ lập trình C# và NetFrameWork:1.6.1 Giới thiệu về C#:

C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khoá và hơn mườikiểu dữ liệu dựng sẵn, nhưng C# có tính diễn đạt cao C# hỗ trợ lập trình có cấutrúc, hướng đối tượng, hướng thành phần (component oriented)

Trọng tâm của ngôn ngữ hướng đối tượng là lớp Lớp định nghĩa kiểu dữliệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết C# có nhữngtừ khoá dành cho việc khai báo lớp, phương thức, thuộc tính (property) mới C#

3

Trang 14

hỗ trợ đầy đủ khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừakế, đa hình

Định nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tincài đặt như C++ Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trựctiếp trong tập tin mã nguồn Đến khi biên dịch sẽ tạo tập tin sưu liệu theo địnhdạng XML

C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java) Một lớp chỉ cóthể kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiều giao diện

C# có kiểu cấu trúc, struct (không giống C++) Cấu trúc là kiểu hạng nhẹvà bị giới hạn.Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể càiđặt giao diện C# cung cấp những đặc trưng lập trình hướng thành phần nhưproperty, sự kiện và dẫn hướng khai báo (được gọi là attribute) Lập trình hướngcomponent được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata) Siêu dữ liệumô tả các lớp bao gồm các phương thức và thuộc tính, các thông tin bảo mật ….Assembly là một tập hợp các tập tin mà theo cách nhìn của lập trình viênlà các thư viện liên kết động (DLL) hay tập tin thực thi (EXE) Trong NETmột assembly là một đon vị của việc tái sử dụng, xác định phiên bản, bảo mật,và phân phối CLR cung cấp một số các lớp để thao tác với assembly

C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưngvùng mã đó được xem như không an toàn CLR sẽ không thực thi việc thu dọnrác tự động các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trìnhviên tự giải phóng.

1.6.2 Một số đặc trưng của C#:

-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ư Javavà c++, bao gồm những macro, những template, đa kế thừa, và lớp cơ sở ảo(virtual base class).

4

Trang 15

Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ C# khá giốngvới C và C++ về diện mạo, cú pháp, biểu thức, toán tử và những chức năngkhác vì đượ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.

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

C# chứa tất cả những đặc tính như: 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 của một ngôn ngữhiện đại

-C# là một ngôn ngữ lập trình thuần hướng đối tượng

Lập trình hướng đối tượng (OOP: Object-oriented programming) là mộtphương pháp lập trình có 4 tính chất: tính trừu tượng (abstraction), tính đónggói (encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance).C# hỗ trợ cho chúng ta tất cả những đặc tính trên.

-C# là một 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 nhưng có thể mô tả một cách đầy đủ và có thểthực hiện bất kì nhiệm vụ nào.

1.6.3 Quá trình thực hiện trong ngôn ngữ C#:

- Bước 1: Thực hiện Click chuôt phải vào project chọn build VisualStudio sẹ• thực hiện gọi trình biên dịch Tiếp đó, mã C# sẽ được chuyển đổi đểtrở thành một loại ngôn ngữ trung gian Microsoft Intermediate Language(MSIL) Sau khi chương trình này kết thúc thì việc đóng gói thành file exe sẽđược thực hiện

- Bước 2: Click chuột phải vào project, chọn Open folder in file explorer.- Bước 3: Vào thư mục bin/debug, lúc này chương trình của bạn đã đượcchuyển thành dạng exe và file exe này có chứa mã MSIL.

- Bước 4: Tiến hành viết nội dung cho chương trình, thông tin như sau:using

5

Trang 16

System;using

System.Collections.Generic;using System.Linq;using

System.Text;namespace DuAn{

class Program{ static void Main(string[] args){ /* Nội dung bạn cần viết */

Console.WriteLine(“Xin chào”); Console.ReadKey();

Thực hiện chạy file exe vào lúc này thì MSLI đã được chuyển hướng trởthành ngôn ngữ máy Vì vậy, thông qua Just In Time Compiler thì máy tính sẽhiểu được các dòng lệnh mà bạn đã viết rồi xuất ra kết quả như màn hình hiểnthị.

1.6.4 Giới thiệu về NetFrameWork

NET là một nền tảng nguồn mở, miễn phí và được Microsoft phát triểnđể xây dựng, cũng như có thể chạy nhiều loại ứng dụng khác nhau, bao gồmứng dụng web, phần mềm máy tính để bàn, ứng dụng dành cho thiết bị di động,game… Khi làm việc cùng NET, nhà phát triển sẽ được cung cấp một bộ côngcụ, thư viện và ngôn ngữ phong phú, giúp việc xây dựng các ứng dụng cho cácnền tảng khác nhau trở nên dễ dàng và nhanh chóng hơn

-Nền tảng NET bao gồm hai thành phần chính, là: + NET Framework: Là một nền tảng trưởng thành đã xuất hiện trongnhiều năm, chủ yếu được sử dụng để xây dựng các ứng dụng máy tính để bànWindows và ứng dụng web phía Server

6

Trang 17

+ NET Core: Là một Framework nguồn mở và đa nền tảng có thể đượcsử dụng để xây dựng các ứng dụng cho Windows, Linux và macOS Nó cũngđược tối ưu hóa cho các ứng dụng dựa trên đám mây.

7

Trang 18

CHƯƠNG 2: SƠ ĐỒ THUẬT TOÁN

2.1 Tổng quan về game Rắn săn mồi:2.1.1 Giới thiệu:

Rắn săn mồi là game cổ điển, xuất hiện vào năm 1997 trên nokia6610 là những ô vuông sắp xếp liên tiếp nhau di chuyển trên 1 màn hìnhxanh đơn giản Nhưng rắn săn mồi đã xây dựng được tên tuổi của mìnhvới 400 triệu bản được xuất xưởng và đến hiện tại là đời thứ 8, game có sựhấp dẫn đối với người chơi.

2.2.2 Mô phỏng luật chơi:

 Luật trò chơi

- Tạo ra một ma trân tĩnh và thức ăn sinh ra ngẫu nhiên.

- Hành động của rắn: Khi người chơi chọn nút Start Game thì rắn bắt đầu di

chuyển, người chơi muốn di chuyển rắn phải di chuyển các nút:+ Sang trái ()

+ Sang phải ()+ Lên trên ()+ Xuống dưới ()

8

Trang 19

Sao cho rắn ăn được thức ăn mà không chạm vào thân rắn và tường.

- Khi con rắn ăn một quả táo, số đốt thân của nó tăng lên và khi rắn chạm vào

thân của mình hoặc tường thì Game Over

Khi đâm vào thân rắn hoặc tường => Dừng trò chơi =>Thông báo=>Lưuđiểm lại hệ thống.

2.2 Mô tả:

2.2.1 Tổng quan:

Khảo sát:

 Gồm 1 Panel chính và 2 Panel phụ  Panel chính:

-Kích thước: Width 1218, Height , 600 (px) -Kích thước ma trân: 50*50.

 2 Panel phụ: -Panel phụ 1: -Panel phụ 2:  Cấu tạo rắn

- Con rắn khi khởi tạo có kích thước 24*24 (đầu rắn).- Xuất điểm đầu của rắn có có 1 tọa độ:

9

Trang 20

x[0] = sohang/2;y[0] = socot/2;

- Rắn có 2 phần : Phần đầu (màu vàng nhạt (PaleGoldenrod)), phần thân(màu đỏ (Red)) Khi rắn chưa ăn mồi (khi trò chơi vừa bắt đầu) thì rắnchỉ tồn tại đầu rắn (màu vàng nhạt)

- Rắn là các đoạn hình vuông chạy trên nền đen (Black) bên ngoài là bứctường màu trắng (White)

 Vật cản : Không  Thức ăn của rắn:

- Có hình ô vuông, màu cam (Orange).- Kích thước 24 * 24.

- Thức ăn hiện thị ngẫu nhiên trên panel chính và không nằm trên bất cứvật cản (bức tường) nào.

2.3 Sơ đồ thuật toán:

2.3.1 Sơ đồ phân rã chức năng:

 Mô tả chức năng

- Start Game: Chức năng chính của chương trình Chương tình sẽ mở giao

diện chơi game Nhấn Start Game trò chơi sẽ bắt đầu.

- How To Play: Chức năng trợ giúp, hướng dẫn điều khiển game.- Score: Hiển thị điểm của người chơi lên màn hình.

10

Trang 21

- Quit Game: Thoát game Hệ thống hỏi bạn có muốn thoát hay không?- Pause Game: Tạm dừng trò chơi -> Để tiếp tục người dùng ấn Start

- Restart: Trò chơi bắt đầu lại từ đầu.

2.3.2 Sơ đồ thuật toán:

11

Trang 22

Giải thích thuật toán:

Bắt đầu: Trò chơi bắt đầu

Khởi tạo rắn và mồi ban đầu:

- Tạo ra một đối tượng rắn ban đầu với độ dài, tốc độ và vị trí khởi đầu cụ thể.

- Tạo một đối tượng mồi ban đầu và đặt vị trí của nó trên màn hình. Vẽ màn hình ban đầu:

- Hiển thị trạng thái ban đầu của rắn, tốc độ ban đầu của rắn và mồi trên màn hình.

Vòng lặp chính: Lặp lại các bước sau cho đến khi điều kiện kết thúc game

được đáp ứng:

+ Nhận lệnh điều khiển từ người chơi: Đợi và nhận đầu vào từ người chơi,

chẳng hạn như các phím mũi tên (lên, xuống, trái, phải) hoặc các phím điều khiển khác.

+ Kiểm tra xem lệnh điều khiển có hợp lệ hay không: Kiểm tra

xem lệnh điều khiển từ người chơi có dẫn đến một hành động hợp lệ cho rắn hay không Ví dụ, nếu rắn đang di chuyển lên, thì lệnh điều khiển "xuống" sẽ không hợp lệ và ngược lại, hoặc người dùng sử dụng các phím không phải là các phím: (↑ ← ↓ →) thì không hợp lệ.

+ Di chuyển rắn theo hướng đã chọn: Nếu lệnh điều khiển là hợp

lệ, di chuyển rắn theo hướng tương ứng Ví dụ, nếu người chơi nhấn phím mũi tên lên, thì rắn sẽ di chuyển lên trên màn hình.

+ Kiểm tra va chạm của rắn: Sau khi di chuyển rắn, kiểm tra

xem rắn có va chạm vào bản thân hay vào tường không Nếu có va chạm -> kết thúc trò chơi.

+ Kiểm tra xem rắn có ăn được mồi không:

+ Kiểm tra xem rắn đã di chuyển đến vị trí của mồi chưa Nếu rắn đang ở cùng vị trí với mồi, rắn sẽ ăn được mồi đồng thời tốc độ và độ dài của rắn sẽ tăng lên.

+ Tăng độ dài của rắn và tạo mồi mới:

 Sau khi rắn ăn mồi, tăng độ dài của rắn bằng cách không xóa phầnđuôi của nó.

 Tạo ra một mồi mới và đặt nó vào một vị trí ngẫu nhiên trên màn hình.

+ Vẽ lại màn hình với rắn và mồi mới:Sau khi thực hiện các thay

đổi (di chuyển rắn, ăn mồi, tăng kích thước, tăng tốc độ), vẽ lại màn hình để cập nhật trạng thái mới của rắn và mồi trên màn hình.

12

Ngày đăng: 23/06/2024, 15:34

Xem thêm:

w