1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỒ án môn học CÔNG NGHỆ PHẦN mềm PHẦN mềm GAME cờ CARO

29 75 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

Tiêu đề Đồ án môn học Công nghệ phần mềm phần mềm Game Cờ Caro
Tác giả Nguyễn Văn Bảo, Nguyễn Quang Vĩnh Điền, Lê Nguyên Khang, Võ Tâm Anh, Nguyễn Trung Liêm
Người hướng dẫn PTS. Tạ Thu Thủy
Trường học Trường Đại Học Công Nghệ Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ phần mềm
Thể loại Đồ án môn học
Năm xuất bản 2019
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 29
Dung lượng 47,57 KB

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

Nội dung

Tài liệu này giúp ta có một cái nhìn tổng quát về việc áp dụng thuật toánMiniMax và cắt cụt alpha-beta vào game cờ Caro.. Tuy nhiên, vì một khi đã đặt xuống, các quân cờ không thể di chu

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP.HCM

ĐỒ ÁN MÔN HỌC CÔNG NGHỆ PHẦN MỀM PHẦN MỀM GAME CỜ CARO Ngành: Công nghệ thông tin Giảng viên hướng dẫn : Tạ Thu Thủy Lớp : 17DTHD2 Sinh viên thực hiện MSSV Nguyễn Văn Bảo 1711062253

Nguyễn Quang Vĩnh Điền 1711062259

Lê Nguyên Khang 1711060933

Võ Tâm Anh 1711062301

Nguyễn Trung Liêm 1711062123

Trang 2

TP Hồ Chí Minh, 2019

DANH SÁCH THÀNH VIÊN

Số điện % HOÀN STT HỌ VÀ TÊN CÔNG VIỆC

thoại THÀNH Thuyết trình, tìm code

1 Võ Tâm Anh tham khảo, làm word báo

cáo

Làm pp thuyết trình,

2 Nguyễn Văn Bảo 0386291775 Word báo cáo, thêm Code

caro

Tìm nội dung pp thuyết

Nguyễn Quang Vĩnh

3 0837627520 trình, Làm pp báo cáo,

Điền

thuyết trình

Trả lời câu hỏi, tìm nội

Lê Nguyên Khang dung PP thuyết trình, làm

4 0765340127

(Nhóm trưởng) word báo cáo, làm pp báo cáo Viết code caro, thuyết Nguyễn Trung Liêm 5 trình, tìm hiểu nội dung pp thuyết trình Lời Nhận Xét của giảng viên: ………

………

………

………

………

………

………

Trang 3

………

………

………

………

………

MỤC LỤC Lời mở đầu

1

Chương 1 Tổng quan

1

1.1 Tổng quan về vấn dề được nghiên cứu 1

1.2 Nhiệm vụ của đồ án

1

1.2.1 Mục tiêu

1

1.2.2 Đối tượng

2

1.2.3 Thông tin tổng quát

2

1.2.3.1 Phát biểu vấn đề 3

1.2.3.2 Mục tiêu đề ra

3

1.2.3.3 Mô tả

3

1.2.3.4 Lợi ích mang lại

3 1.2.3.5 Các bước thực hiện để hoàn thành dự án 3

1.2.3.6 Ràng buộc tổng quan hệ thống 4

1.3 Cấu trúc đồ án

4

Chương 2: Cơ sở lý thuyết

5

2.1 Giới thiệu về Winform

5

Trang 4

2.2.2 Chi

tiết 7

2.2.3 Lập trình 3

lớp 7

2.3 Khái niệm cơ sở dữ liệu SQL

Server 8

Trang 5

Chương 3: Kết quả thực

nghiệm 93.1 Các thành phần chức năng của hệ

thống 9

3.1.1

Menu 9

3.1.2 Các sơ

đồ 9

3.1.2.1: Sơ đồ

usecase 9

3.1.2.2: Sơ đồ class

diagram 9 3.1.2.3: sơ đồ sequence

cùng người

khác 14

3.1.3.6

EDIT 15

Chương 4: Kết

luận 16

4.1 Kết quả đạt

được 16

4.2 Đánh giá phần

mềm

Trang 7

Lời mở đầu

Hiện nay, việc ứng dụng trí tuệ nhân tạo vào việc phát triển game đã trở nênvô

cùng phổ biến, đặc biệt là những game mang tính trí tuệ cao

Và cờ Caro là một game như vậy Chính vì lý do đó mà chúng em đã quyết định lựachọn cờ Caro làm để tài cho bài tập lớn môn trí tuệ nhân tạo

Đây là tài liệu dùng để miêu tả một cách cơ bản về việc xây dựng game cờCaro Trong game có sử dụng thuật toán MiniMax với độ sâu là 4 và thuật toán cắt cụt

alpha-beta để giảm thời gian tính toán

Tài liệu này giúp ta có một cái nhìn tổng quát về việc áp dụng thuật toánMiniMax và cắt cụt alpha-beta vào game cờ Caro

Do thời gian có hạn nên chúng em chưa thể tối ưu được các thuật toán sử dụngtrong game, nhưng chúng em sẽ cố gắng hoàn thiện trong thời gian sớm nhất Nhómthực hiện đề tài này với mục đích xây dựng game Caro có tính nhân tạo cao

Tuy nhiên trong quá trình thực hiện không thể tránh khỏi có những sai sót,chúng em rất mong nhận được những góp ý và đánh giá của cô

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

1

Trang 8

Chương 1 Tổng quan

1.1 Tổng quan về vấn đề được nghiên cứu:

1.1.1 Khảo sát thực trạng hiện nay:

Theo tình trạng chơi game có 73% người đang chơi, 22% chưa từng chơi và 5%từng chơi nhưng hiện không còn chơi nữa Tỷ lệ người chơi game tập trung chủ yếuvào nhóm 16-20 tuổi (42,1%), 10-15 tuổi (26,3%), 21-25 tuổi (22%) Tỷ lệ người chơigame online còn đang đi học chiếm 71,7% so với game thủ làm ngành nghề khác Vềgiới tính, nam giới chơi game online nhiều hơn nữ giới với 54,5% Tỷ lệ người chơi có

trình độ Đại học, Cao đăng chiếm tỷ lệ cao nhất với 30,1%

1.1.2 Phân tích yêu cầu:

1.Yêu cầu chơi:

Game Caro đã phổ biến với rất nhiều người, với nhiều phiên bản game được đưa ra ởđây nhóm xây dựng game Caro này phù hợp với nhiều đối tượng Người chơi

Người chơi có thể chọn 1 trong 2 chế độ chơi:

 Hai Người chơi

 Chơi với máy

Ở chế độ “Hai Người chơi”, hai bên lần lượt đi từng nước cờ

Ở chế độ “Chơi với máy”,Người chơi và máy lần lượt đi từng nước cờ

Máy có thể tự động thực hiện những chức năng ở dưới:

 Tấn công

 Phòng thủ

 Tấn công , phòng thủ

 Tạo ván chơi mới: trong lúc đang chơi mà không muốn tiếp tục ván chơi

đó có thể tạo ván chơi mới khởi động lại từ đầu

 Quay lại nước đi trước: khi đi sai bạn có thể nhấn quay lại để hoàn lại nước đi sai lúc trước

2.Giao diện:

1) Thuận tiện: Các nút chức năng phải đễ nhìn ,dễ sử dụng

2) Hình ảnh: Ảnh nền,ảnh bàn cờ ,ảnh quân cờ,ảnh nút,….đơn giản, dễ nhìn

Trang 9

Người chơi có thể tương tác nhanh với chương trình bằng chuột.

 Chuột dùng để điều khiển chương trình

 Chuột dùng để đi nước cờ

1.2 Nhiệm vụ của đồ án:

1.2.1 Mục tiêu:

Ngày nay, xã hội phát triển mạnh mẽ, cuộc sống xã hội ngày càng được cảithiện và nâng cao nên nhu cầu vui chơi, giải trí….ngày càng lớn Ở châu Á phongtrào chơi games phát triển mạnh mẽ với yêu cầu ngày càng cao Những games chơiđộc lập trên một máy tính ngày càng không đáp ứng được yêu cầu mà thay vào đó

là những games với nhiều máy tính kết nối với nhau Xuất phát từ nhu cầu đó em đãthực hiện đề tài “ĐÁNH CỜ CARÔ“

1.2.2 Đối tượng:

Chủ yếu là những học sinh sinh viên và một số người trẻ khác những người có

sở thích và đam mê cờ CaRo

1.2.3 Thông tin tổng quản:

Trang 10

Cho đến nay vẫn chưa ai biết chính xác lai lịch của cờ caro, có lời đồn cho rằng,

cờ caro xuất hiện cách đây khoảng hơn 2000 năm TCN tại Trung Quốc Tuy nhiên,

một số nhà khoa học đã tìm ra bằng chứng rằng cờ caro đã xuất hiện ở Hy Lạp cổ đại

và châu Mĩ trước thời Colombus

Cờ caro bắt đầu với cái tên Wutzu bên Trung Quốc và biến danh thành Gomoku

ở Nhật Bản Tuy nhiên, ở đất nước của xứ sở hoa anh đào, nó còn được gọi dưới nhiềucái tên khác nhau ở mỗi địa phương Kakugo, gomoku-narabe, Itsutsu-ishi, …

Khi mới xuất hiện, loại cờ này được chơi bằng các con cờ vây (viên cờ màutrắng và đen) trên một bàn cờ vây (19×19) Quân đen đi trước và người chơi lần lượtđặt một viên đá của họ trên đường chéo còn trống Người thắng là người đầu tiên cóđược một chuỗi liên tục gồm 5 quân hàng ngang, dọc hoặc chéo Tuy nhiên, vì một khi

đã đặt xuống, các quân cờ không thể di chuyển hoặc bỏ ra khỏi bàn, do đó loại cờ này

1.2.3.1 Phát biểu vấn đề:

Xã hội ngày càng phát triển thì nhu cầu về mọi thứ cũng sẽ tăng theo trong đó

có cả nhu cầu về giải trí sau như giờ học và làm việc căng thẳng Vì vậy khi nắm bắt

được yếu tố đó trò chơi game CaRo được nhóm chúng tôi lựa chọn phát triển để giúpmọi người có thể giải trí và thư giản sau những giờ làm việc áp lực và mệt mỏi

1.2.3.2 Mục tiêu đề ra:

Vấn đề được đặt ra là:

- Thiết kế được một phần mềm đơn giản

- Giao diện thân thiện dễ sử dụng

Trang 11

- Có tất cả tính năng của một game CaRo như đánh với máy, đánh với người,

xử lý thắng thua v.v

1.2.3.3 Mô tả

Trò chơi có các tính năng sau:

- Người với máy

- Người với người

- Exit (Thoát nhanh trò chơi)

- Xử lý thắng thua

- Undo (Cho phép đi lại)

- Tạo mới trò chơi (cho phép tạo ván mới)

1.2.3.4 Lợi ích mang lại:

Giúp mọi người giải trí, thư giản sau những giờ học và giờ làm việc căng thẳng

Rèn luyện tư duy cũng như thử sức với nhau qua chức năng đánh với người

1.2.3.5 Các bước thực hiện để hoàn thành dự án:

 Lên kế hoạch và phát thảo ý tưởng

Thực hiện các ý tưởng:

- Tạo giao diện thân thiện với người chơi

- Tạo bàn cớ trong game

- Tạo chức năng đổi người chơi

- Tạo chức năng xử lý thắng thua

- Tạo Menu và Hotkey

- Tạo chức năng đi lại (UNDO)

- Tạo chức năng tạo lại ván mới

1.2.3.6 Ràng buộc tổng quan hệ thống:

- Không ảnh hưởng đến hoạt động bình thường của hệ thống

- Khi phát triển dự án phải đáp ứng được nhu cầu của người dùng

- Nếu có kết hợp dữ liệu thì phải thường xuyên được cập nhật

Trang 12

Chương 2: Cơ sở lý thuyết

− Giới thiệu về Winform

− Giới thiệu về ngôn ngữ C#

− Giới thiệu về cơ sở dữ liệu SQL Server Chương 3: Kết quả thực nghiệm

− Các thành phần chức năng của hệ thống − Giao diện hệ thống

Chương 4: Kết luận

− Kết quả đạt được

− Đánh giá phần mềm

− Hướng phát triển đề tài

Tài liệu tham khảo

6

Trang 13

Chương 2: Cơ sở lý thuyết

2.1 Giới thiệu về Winforms:

Winforms là một công nghệ của Microsoft, cho phép lập trình các ứng dụngWindows Nhờ tính tiện ích, dễ code, giao diện design kéo thả đơn giản… Winforms

đã được sử dụng để phát triển rất nhiều ứng dụng Đa phần lập trình viên C# NET nàocũng từng học và sử dụng Winform

Vì Winform xử lý trực quan, chỉ cần kéo thả, lại có nhiều components có sẵng,Winform rất phù hợp để làm các phần mềm quản lý, tính tiền, thống kê, … Đây cũng

là loại ứng dụng mà các công ty hay doanh nghiệp vừa và nhỏ cần Ngoài ra, chỉ cần

sử dụng component như TelerikUI hoặc DevExpress, Winform có thể tạo ra các giaodiện hiện đại, đẹp như mơ, long lanh hoa mỹ

2.2 Ngôn ngữ C#

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft,đây là một ngôn ngữ chuyên dụng để lập trình web server và ứng dụng trên nền tảngWindows Microsoft phát triển C# dựa trên C++ và Java, C# được miêu tả là ngôn ngữ

có được sự cân bằng giữa C++, Visual Basic, Delphi và Java

Ngôn ngữ lập trình C# được coi là ngôn ngữ lập trình đơn giản, hiện đại, hướng

đến nhiều mục đích sử dụng, và là một ngôn ngữ lập trình hướng đối tượng

C# có thể đáp ứng các nguyên tắt của ngành kỹ thuật phần mềm như kiểm trachặt chẽ kiểu dữ liệu, kiểm tra giới hạn mảng, phát hiện các trường hợp sử dụng cácbiến chưa có dữ liệu, và tự động thu gom dữ liệu không cần thiết Mang trong mình sự

mạnh mẽ, trực quan và hiệu suất cao đó là những điểm cốt lõi làm nên thương hiệu C#

7

Trang 14

Ngôn ngữ lập trình C# với sự kế thừa những ưu điểm của C, C++, Java nên khinhìn vào code C# chúng ta sẽ thấy rất thân thuộc về cấu trúc, cú pháp từ đó việc học

tập sẽ trở nên dễ dàng hơn Bên cạnh đó C# được thiết kế để phù hợp với việc viết ra

các ứng dụng cho cả hệ thống Server và hệ thống nhúng chuyên dụng trên nền tảngWindows

Tuy rằng mang trong mình những ưu điểm của C, C++, Java, khả năng quản lý

bộ nhớ tốt, khả năng xử lý mạnh mẽ, trực quan dễ học và dễ sử dụng, đó là những ưuđiểm nổi bật của C#, nhưng nếu xét ngược lại thì tốc độ xử lý là một nhược điểm lớnnhất của ngôn ngữ này vì phải gồng gánh một lượng lớn dữ liệu từ các thư viện nêntốc độ xử lý sẽ thua thiệt hơn so với C, Assembly Nói như vậy không có nghĩa rằngC# không phải là sự lựa chọn lý tưởng, trong lập trình có những trường hợp ta có thể

tận dụng tốt khả năng của C# như thiết kế phần mềm trên môi trường Windows, trong

đồ án môn học này là một ví dụ thực tiễn nhất trong việc tận dụng ưu điểm của C# vì

nó có thể thiết kế nhanh, xử lý sự kiện đơn giản, nhiều tiện ích mở rộng hỗ trợ tốttrong quá trình làm đồ án

2.2.1 Mô hình 3 lớp:

- Khi mới tiếp xúc với Windows Form và ADO.NET, việc lập trình bắt đầu trởnên phức tạp khi dự án lớn dần Bởi vậy để dễ quản lý các thành phần của hệ thống,cũng như không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần cócùng chức năng lại với nhau và phân chia trách nhiệm cho từng nhóm dể công việckhông bị chồng chéo và ảnh hưởng lẫn nhau Một trong những mô hình lập trình nhưvây gọi là Mô hình 3 lớp (Three Layers)

8

Trang 15

Hình 2.1: Thể hiện sơ đồ 3 lớp.

- Việc phân chia thành từng lớp giúp cho code được tường minh hơn Nhờ vào việc chia ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt như giao diện, xử lý, truy vấn thay vì để tất cả lại một chỗ Nhằm giảm sự

kết dính

- Dễ bảo trì khi được phân chia, thì một thành phần của hệ thống sẽ dễ thay đổi Việc thay đổi này có thể được cô lập trong 1 lớp, hoặc ảnh hưởng đến lớp gần nhất mà không ảnh hưởng đến cả chương trình

- Dễ phát triển, tái sử dụng: khi chúng ta muốn thêm một chức năng nào thì việc lập trình theo một mô hình sẽ dễ dàng hơn vì chúng ta đã có chuẩn để tuân theo Và việc sử dụng lại khi có sự thay đổi giữa hai môi trường (Winform sang Webform) thì chỉ việc thay đổi lại lớp GUI

- Dễ bàn giao Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thì công việc bàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm được nhiều thời gian

- Dễ phân phối khối lượng công việc Mỗi một nhóm, một bộ phận sẽ nhận một nhiệm vụ trong mô hình 3 lớp Việc phân chia rõ ràng sẽ giúp các lập trình viên kiểm soát được khối lượng công việc của mình

2.2.2 Chi tiết:

9

Trang 16

− GUI Layer: Lớp này là lớp hiển thị giao diện và các chức năng để người dùng cuối sử dụng.

− Business (BUS) Layer: Đây là lớp nhận các yêu cầu từ lớp GUI và truy xuất lên lớp Data để lấy thông tin và trả về GUI

− Data Access Layer: Lớp này là lớp để truy xuất với CSDL, chỉ duy nhất lớp này được làm việc với Database

2.2.3 Lập trình 3 lớp:

 Presentation Layer (GUI):

− UI Components: gồm các thành phần tạo nên giao diện của ứng dụng

(GUI) Chúng chịu trách nhiệm thu nhận và hiển thị dữ liệu cho người dùng…

− Ví dụ: textbox, button, combobox, …

 Data Layer (DAL)

− Data Access Logic Components: chịu trách nhiệm chính lưu trữ và truy xuất dữ liệu từ các nguồn dữ liệu (Data Sources) như XML, File System, … Hơn nữa còn tạo thuận lợi cho việc dễ cấu hình và bảo trì

− Service Agents: giúp bạn gọi và tương tác với các dịch vụ từ bên ngoài một cách dễ dàng và đơn giản

10

Trang 17

Chương 3: Kết quả thực nghiệm3.1 Các thành phần chức năng của hệ thống:

3.1.1 Menu:

Bảng Menu gồm:

 File:

 New (Bắt đầu trò chơi mới)

o 1 player (Đánh với máy)

o 2 player (Đánh với người)  Exit (Kết thúc nhanh)

 Edit:(Chức năng)

 Undo (Chức năng đi lại)

 Redo (Chức năng qua lại bước cũ).3.1.2 Các sơ đồ:

3.1.2.1: Sơ đồ usecase:

11

Trang 19

Hình 3.3.1: Sơ đồ sequence diagram của người chơi với máy

13

Trang 20

Hình 3.3.2: Sơ đồ sequence diagram của người chơi với người3.1.3 Thực nghiệm trong trò chơi:

3.1.3.1 Chế độ đánh với máy

Hình 3.1.4.1: Tạo ván chơi với máy

3.1.3.2 Chế độ 2 người cùng đánh với nhau

14

Trang 21

Hình 3.1.4.2: Tạo ván chơi với bạn của bạn

3.1.3.3 Chức năng xử lý thắng thua

15

Trang 22

Hình 3.1.5: Thông báo người chơi dành chiến thắng3.1.3.4 Chức năng EXIT.

16

Trang 23

Hình 3.1.6: Hình hiển thị thông báo có muốn thoát game không

3.1.3.5 FILE menu cũng có chức năng cho phép chọn chơi cùng máy haycùng người khác

Hình 3.1.7: Hình cho phép tạo đổi chế độ của game

17

Ngày đăng: 04/12/2022, 20:07

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w