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

Báo cáo TTCS_Game Caro

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 (930.06 KB, 25 trang )

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

TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC TẬP CƠ SỞ

GAME CỜ CARO HAI NGƯỜI CHƠI BẰNG C#

Giáo viên hướng dẫn:

ThS. Đoàn Vũ Thịnh

Sinh viên thực hiện:

Lê Thị Ý Nhi

Mã số sinh viên:

61130752

Khánh Hòa - 2021


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

TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC TẬP CƠ SỞ


GAME CỜ CARO HAI NGƯỜI CHƠI BẰNG C#

GVHD:

ThS. Đoàn Vũ Thịnh

SVTH:

Lê Thị Ý Nhi

MSSV:

61130752

Khánh Hòa, Tháng 12/2021
TRƯỜNG ĐẠI HỌC NHA TRANG
2


Khoa: Công nghệ Thông tin
PHIẾU THEO DÕI TIẾN ĐỘ VÀ ĐÁNH GIÁ BÁO CÁO THỰC TẬP CƠ SỞ
Tên đề tài: GAME CỜ CARO HAI NGƯỜI CHƠI BẰNG C#
Giảng viên hướng dẫn: ThS. Đoàn Vũ Thịnh
Sinh viên được hướng dẫn: Lê Thị Ý Nhi
MSSV: 61130752
Khóa: 61

Ngành: Cơng nghệ Thơng tin

Lần

1
2
3
4
5
6

Ngày
2/12/2021
6/12/2021
14/12/2021
21/12/2021
28/01/2021
4/1/2022

Nhận xét chung (sau khi sinh viên hoàn thành ĐA/KL):
Sinh viên thực hiện tốt các yêu cầu của GVHD, trong quá trình thực hiện đề tài
có sự liên hệ chặt chẽ với GV. Theo lịch hẹn Sinh viên đều có mặt để trình bày ý tưởng
của các nội dung lần trước. Trong q trình hồn tất báo cáo đều nỗ lực khơng ngừng
mặc dù đang cao điểm của đợt thi học kỳ nhưng SV vẫn dành thời gian khơng ít cho
TTCS.
Về nội dung báo cáo đã thỏa mãn các yêu cầu của đề tài như trong đề cương.
Về kết quả chương trình đã minh họa được thuật toán. Về các yêu cầu cao hơn như sử
dụng thư viện của chuột hay minh họa các trường hợp nhược điểm của thuật tốn thì
chưa thực hiện thành cơng.
Về hình thức của báo cáo và sản phẩm, báo cáo trình bày rõ ràng các mục tiêu,
phương pháp, kết quả và thảo luận cho sản phẩm. Cịn về sản phẩm như đã trình bày
có phần hạn chế.
Điểm hình thức: …. /10 Điểm nội dung: …. /10 Điểm tổng kết: …. /10
Đồng ý cho sinh viên: Được bảo vệ:  Khơng được bảo vệ: 

Khánh Hịa, ngày 26 tháng 12 năm 2021
Cán bộ hướng dẫn
3


(Ký và ghi rõ họ tên)

4


LỜI CAM ĐOAN
Tôi xin cam đoan mọi kết quả của đề tài “Game cờ Caro 2 người chơi bằng C#” là
cơng trình nghiên cứu của cá nhân tơi và chưa từng được cơng bố trong bất cứ cơng
trình khoa học nào khác cho tới thời điểm này.

Khánh Hòa, ngày 26 tháng 12 năm 2021
Tác giả đồ án
(ký và ghi rõ họ tên)


5


MỤC LỤC

6


LỜI CẢM ƠN
Trong suốt thời gian thực hiện đề tài, tơi đã nhận được sự giúp đỡ của q

phịng ban trường Đại học Nha Trang, Khoa Công nghệ Thông tin nói chung và Bộ
mơn Kỹ thuật phần mềm nói riêng đã tạo điều kiện tốt nhất cho tơi được hồn thành đề
tài. Đặc biệt là sự hướng dẫn tận tình của ThS Đồn Vũ Thịnh đã giúp tơi hồn thành
tốt đề tài. Qua đây, tôi xin gửi lời cảm ơn sâu sắc đến sự giúp đỡ này.
Xin chân thành cảm ơn các quý thầy cô trong bộ môn Kỹ thuật phần mềm trong
thời gian qua đã truyền đạt và trang bị cho em kiến thức giúp em hoàn thành tốt đề tài
tốt nghiệp.
Cuối cùng tôi xin gửi lời cảm ơn chân thành đến gia đình và tất cả bạn bè đã
giúp đỡ, động viên tơi trong suốt q trình học tập và thực hiện đề tài.
Tôi xin chân thành cảm ơn!
Khánh Hòa, ngày 22 tháng 06 năm 2021
Tác giả báo cáo
(ký và ghi rõ họ tên)

7


LỜI MỞ ĐẦU
Hiện nay, game đang là một lĩnh vự nổi trội trong đời sống, game vừa giúp giải
trí vừa giúp tập trung trí tuệ. Điển hình game cờ Caro, một tựa game trí tuệ kinh điển
với mọi lứa tuổi. Game cờ Caro có lối chơi khá đơn giản, bạn chỉ cần 1 trang giấy
trắng với các ô li, mỗi người chơi sẽ chọn một kí tự để đánh, người chiến thắng sẽ là
người đánh được 5 ô liên tiếp. Trị chơi truy đơn giản nhưng địi hỏi sự tính toán cản
thận của người chơi để đưa ra cách chơi hay nhất. Theo sự phát triển của công nghệ,
giờ đây game cờ caro đã được chơi trên điện thoại và máy tính. Ở đề tài này, game cờ
caro được viết bằng ngôn ngữ C# với sự hỗ trợ của winform. C# là ngôn ngữ hướng
đối tượng, đây là một loại ngơn ngữ lập trình hiện đại và khá mạnh mẽ được xây dựng
trên nền tảng hai ngơn ngữ lập trình mạnh nhất là C++ và Java. Với Winform hỗ trợ
việc tạo giao diện dễ dàng và sinh động hơn.
Game được xây dựng để người chơi có thể đánh cờ với nhau trên 1 bàn cờ nhất

định, có thể phân thắng bại và kèm theo một số chức năng cơ bản như: đếm thời gian
để người chơi suy nghĩ, chơi lại game mới, quay lại bước trước, thốt game, tính điểm
cho người chơi và đặt lại điểm. Game có những ưu điểm như giao diện dễ nhìn, dễ
chơi, đủ các tùy chọn, ngồi ra game vẫn cịn 1 số nhược điểm cần khắc phục và các
chức năng có thể phát triển thêm cho game.

Chương 1: TỔNG QUAN VẤN ĐỀ
Cờ Caro là một Game trí tuệ đã rất quen thuộc với mỗi chúng ta. Với lối chơi
đơn giản nhưng yếu tố trí tuệ lại rất cao nên Chơi Cờ Caro được rất nhiều người yêu
thích đặc biệt là các bạn học sinh, sinh viên và dân văn phịng. Game Chơi cờ Caro
khơng chỉ mang tính chất giải trí đơn thuần mà là một cuộc đấu trí vơ cùng gay cấn.
Trị chơi gồm 2 người chơi khác nhau và họ sẽ cố tìm cách chiến thắng đối thủ với số
lần đánh hữu hạn. Nếu 1 trong 2 người thắng sẽ được cộng điểm, nếu đã đánh hết bàn
8


cờ mà chứ phân thắng bại thì xem như hịa. Điều kiện để được xem là chiến thắng khi
người chơi đánh đủ 5 ô liên tiếp theo chiều ngang, dọc và chéo.
Game cờ caro được viết bởi rất nhiều ngôn ngữ nhưng ở đề tài này nó được mơ
phỏng theo ngôn ngữ C# với sự hỗ trợ đắc lực từ winform. Ưu điểm của winform là
giao diện khéo thả dễ học và sử dụng, hỗ trợ nhiều event như click, hover…Tốc độ xử
lý dữ liệu nhanh và hiệu quả, chạy được trên nhiều phiên bản của Windows khác nhau.


9


Chương 2: CƠ SỞ LÝ THUYẾT

2.1 GIỚI THIỆU VỀ C#.


C# (hay C sharp) là một ngơn ngữ lập trình đơn giản, được phát triển bởi đội ngũ
kỹ sư của Microsoft vào năm 2000, trong đó người dẫn đầu là Anders Hejlsberg và
Scott Wiltamuth. C# là ngơn ngữ lập trình hiện đại, hướng đối tượng và 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.
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable
Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa
dạng trên các nền tảng và cấu trúc máy tính khác nhau. C# với sự hỗ trợ mạnh mẽ
của .NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF
(Windows Presentation Foundation), . . . trở nên rất dễ dàng.
2.2 WINFORM

Winform là thuật ngữ mô tả một ứng dụng được viết dùng .NET FrameWorrk và có
giao diện người dùng Windows Forms. Mỗi màn hình windows cung cấp một giao
diện giúp người dùng giao tiếp với ứng dụng. Giao diện này được gọi là giao diện đồ
họa (GUI) của ứng dụng. Là các ứng dụng windows chạy trên máy tính – mã lệnh thực
thi ngay trên máy tính: Microsoft, Word, Excel, Access, Calculator, yahoo, Mail… là
các ứng dụng Windows Forms.
Ưu điểm nổi bật của winform là giao diện kéo thả dễ sử dụng; Gắn các event cho
các button chỉ cần double click, lại hỗ trợ quá trời event như click, hover, …; Việc viết
code cũng vô cùng trực quan: từ việc lấy text từ TextBox cho tới show dữ liệu bằng
MessageBox, hoặc dùng Grid để kết nối SQL.

10


Chương 3: THIẾT KẾ CHƯƠNG TRÌNH

3.1 MƠ TẢ CHƯƠNG TRÌNH
Luật chơi game cờ Caro:

+

Quân cờ trong game sẽ được biểu diễn bởi kí tự X/O.

Hình 3.1. Kí tự XO trong cờ Caro
+

Khi bắt đầu game một bàn cờ với tỉ lệ 20 X 20 sẽ được tạo ra 2 người
chơi sẽ đều bắt đầu với số điểm là 0.

+

Người đầu tiên đánh sẽ đánh ở ơ bất kì trên bàn cờ sau đó người chơi
khác sẽ đánh nhưng khơng được đánh trên ô đã được đánh.

+

Quy tắc thắng: Nếu người chơi đánh đủ 5 ô theo chiều ngang, chiều dọc,
chéo chính, chéo phụ. Nếu ai thắng sẽ được cộng 1 điểm.

+

Mỗi người chơi sẽ có 1 khoảng thời gian nhất định, sau khoảng thời gian
đó mà người chơi khơng đánh sẽ bị xử thua.

11


3.2 XÂY DỰNG CHƯƠNG TRÌNH
3.2.1


Giao diện chính chơi game

Hình 3.2.1. Giao diện bàn cờ
Tạo giao diện cho game: trong game có sử dụng các cơng cụ như lable (để ghi
các chữ Player_1, Player_2, Thời gian), panel (để chia bố cục), picturebox (để chứa
hình người chơi và hình quân cờ tiếp theo sẽ đánh), các button (các lựa chọn của người
chơi: game mới, quay lại, đặt lại điểm, thốt) (Hình 3.2.1)
Cơng cụ

Name

Công dụng

Panel

pnlBanco

Chứa bàn cờ được vẽ.

Lable

lb_NC1/lb_NC2

Chứa tên người chơi.
12


Panel


pn_anh1/pn_anh2

Chứa ảnh đại diện cho người chơi.

PictureBox

Doinguoi

Chứa hình kí tự tiếp theo người chơi sẽ
đánh, cũng đại diện cho người chơi tiếp
theo sẽ đánh.

Button

btn_Gamemoi

Tùy chọn game mới cho người chơi.

Button

btn_quaylai

Tùy chọn quay lại cho người chơi.

Button

btn_datlai

Tùy chọn đặt lại điểm cho người chơi.


Button

btnthoat

Tùy chọn thoát game cho người chơi.

Timer

prcbDemgio

Đồng hồ đếm thời gian để người chơi suy
nghĩ.

3.2.2

Tạo bàn cờ
Bàn cờ sẽ được tạo bằng cách tạo tạo 1 ô cờ với kích thước cho sẵn sau đó add

nó vào bàn cờ bằng 2 vịng lặp lồng nhau. Ơ cờ sau sẽ được tạo dựa vào vị trí của ơ cờ
trước nó. Vì thế sẽ tạo 1 button khác gọi là btncu để lưu lại vị trí ơ cờ trước đó. Sau khi
ơ cờ được tạo sẽ thay vị trí của nó cho btncu (Hình 3.2.2)

13


3.2.3

Xử lý quân cờ sẽ đánh
Đối với game cờ Caro người chơi sẽ đánh với 2 kí tự X và O, game được cài


sẵn người đánh O sẽ đánh trước, vấn đề ở đây là làm cách nào để đổi từ O sang X sau
khi người chơi đã đánh và hiện kí hiệu tiếp theo sẽ đánh ở ơ nhỏ bên dưới tay trái.
+

Tạo 1 lớp người chơi để lưu thơng tin của người chơi đó ở đây là hình.
(Hình 3.3)

14


+

Khi nhấn vào 1 ô cờ sẽ kiểm tra ô cờ có trống hay khơng nếu có thì
background của ơ cờ đó sẽ được gán bằng kí hiệu của người chơi đang
đánh cịn khơng thì khơng cho đánh.

3.2.4

Xử lý thắng thua
Thắng thua được xét nếu người chơi đánh đủ 5 ô liên tiếp theo hàng ngang,

hàng dọc, chéo chính hay chéo phụ dựa theo ví trí của từng quân cờ được đánh vì vậy
ta khởi tạo 1 ma trận gồm 2 list lồng nhau khi vẽ bàn cờ để ghi lại vị trí của từng quân
cờ được đánh.

15


+


Sau đó khi người chơi click vào ơ cờ ta sẽ lấy tọa độ của ô cờ được đánh.

+

Xử lý hàng ngang: Kiểm tra từ vị trí vừa đánh sang bên phải và bên trái,
nếu background giống nhau sẽ tăng 1, nếu 2 bên cộng lại đủ 5 thì thắng
và cộng điểm, ngược lại thì bỏ qua.

16


Hình 3.2.4.1. Thắng theo ngang
+

Xử lý hàng dọc: Kiểm tra trên và dưới vị trí đánh nếu giống với vị trí
mình vừa đánh thì tăng 1 sau đó cộng lại nếu đủ 5 thì thắng và cộng
điểm ngược lại bỏ qua.

17


Hình 3.2.4.2. Thắng theo dọc
+

Xử lý chéo chính: Kiểm tra đường chéo chính của vị trí đánh nếu giống
với vị trí mình vừa đánh thì tăng 1 sau đó cộng lại nếu đủ 5 thì thắng và
cộng điểm ngược lại bỏ qua.

18



Hình 3.2.4.3. Thắng theo chéo chính
+

Xử lý chéo phụ: Kiểm tra đường chéo phụ của vị trí đánh nếu giống với
vị trí mình vừa đánh thì tăng 1 sau đó cộng lại nếu đủ 5 thì thắng và cộng
điểmXư ngược lại bỏ qua.

19


Hình 3.2.4.4. Thắng theo chéo phụ
3.2.5

Đếm thời gian
Ở đây ta dùng công cụ timer để bắt thời gian của sự kiện click và thuộc tính của

cơng cụ progressBar. Ta dùng sự kiện tick của timer để nhảy thời gian đến khi giá trị
đó lớn hơn giá trị max đc cài. Nếu hết thười gian người chơi chưa đánh sẽ xử thua
hoặc khi người chơi đã đánh thì thời gian sẽ đc chạy lại.

20


Hình 3.2.5. Thời gian
3.2.6

Xử lý các tùy chọn người dùng.
Game mới: Khi người chơi chọn game mới thì sẽ xóa bàn cờ và tạo lại bàn cờ


mới, thời gian cũng được đặt lại.

Thoát: Khi người chơi nhấn vào thoát game chương trình sẽ đóng bằng phương
thức Exit và bắt sự kiện Closing để hiện thông báo.

21


Quay lại: Để biết được quần cờ nào đã được đánh phía trước ta khởi tạo 1 stack
để lưu các quân cờ khi nó được đánh. Điều này tiện cho khi người chơi muốn quay lại,
ta chỉ cần kiểm tra nếu số lượng quân cờ trong stack lớn hơn 0 ta sẽ lấy vị trí từ qn
cờ ra và xóa background của nó sau đó đổi lại người chơi, đổi ảnh.

Đặt lại điểm: Khi này điểm của 2 người chơi sẽ đếu trả về 0.

22


Hình 3.2.6. Tùy chọn người dùng

23


Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

4.1 KẾT LUẬN
Về cơ bản chương trình đã hồn thiện được các tính năng cần có về 1 game cờ
Caro. Người dùng có thể sử dụng chương trình để chơi, game có thể phân thắng bại và
các lựa chọn khác để người dùng chọn. Game còn những ưu nên phát huy và nhược
điểm cần điều chỉnh.

Ưu điểm: Sử dụng C# dễ dàng hơn cho người dùng, giao diện sinh động hơn,
trực quan hơn, …. So với game khi được viết bằng C thì C# với giao diện dễ nhìn hơn
và cách chươi cx đơn giản hơn so với những C.
Nhược điểm: Game còn nhiều lỗi ẩn mà chưa thể fix, vì kiến thức cịn hạn chế
nên chưa thể làm được 1 game hồn thiện hơn.
4.2 HƯỚNG PHÁT TRIỂN
Hướng phát triển của game là có thể cho phép người chơi thay đổi tên người
chơi, kí hiệu đánh hoặc chọn tỉ lệ bàn cờ mà người chơi muốn như bàn cờ 3X3,
5X5…. Tìm hiểu thêm kiến thức về AI và áp dụng để người chơi đấu với máy hay có
thể sử dụng mạng LAN để người dùng có thể chơi với nhau.

24


TÀI LIỆU THAM KHẢO
[1] />[2] />
25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×