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

Báo cáo thực tập cơ sở 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 (1.07 MB, 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
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
Ngành: Công nghệ Thơng tin

Khóa: 61
Lần
1


2

3

4

5

Nội dung
Nhận đề tài hướng dẫn và
định hướng giải quyết vấn
2/12/2021
đề. Sinh viên trình bày kế
hoạch thực hiện.
Sinh viên trình bày việc mơ
phỏng thuật tốn chính dựa
trên kiến thức đã được học ở
6/12/2021 môn kỹ thuật đồ họa và các
kiến thức thu nhận được từ
Internet để minh họa bài tốn
đa dạng nhất có thể.
Sinh viên hồn thiện các
thuật toán đã đề ra với dữ
liệu đầu vào được nhập từ
14/12/2021 bàn phím. Trình bày thuật
tốn với các trường hợp sai
và chỉ ra được hướng khắc
phục cho các trường hợp đó.

Nhận xét của GVHD

Sinh viên và GVHD trao đổi nội
dung của đề tài. Phân chia công
việc theo từng thời gian sao cho
phù hợp với yêu cầu.
Sinh viên hiểu được vấn đề cần
phải thực hiện và có giải pháp cho
từng vấn đề cụ thể. Tuy nhiên một
vấn đề hồn tốn mới là sử dụng
thư viện của chuột hay làm giao
diện thì chưa làm lần nào nên cần
đầu tư nhiều thời gian hơn.
Sinh viên hiểu nội dung của thuật
toán khá chi tiết với các trường
hợp hạn chế của thuật tốn. Việc
lập trình cũng hoàn thành ở mức
độ nhập dữ liệu từ bàn phím bằng
giao diện nhưng vấn đề với chuột
thì chưa thực hiện được.
Báo cáo chỉ trình bày chung chung
chưa đi vào cụ thể phân tích các
Sinh viên trình bày bản thảo
u cầu của bài tốn, hình ảnh,
21/12/2021 của báo cáo thực tập lần thứ
bảng biểu chưa trình bày rõ ràng.
1 và tiến hành chỉnh sửa.
Cần hiệu chỉnh theo yêu cầu của
GVHD.
Sinh viên trình bày bản thảo Báo cáo lần này đã khắc phục được
28/01/2021
lần 2

các lỗi của lần trước, tuy nhiên
Ngày

i


6

4/1/2022

phần phương pháp và kết quả chưa
nổi bât, chưa có sự liên kết giữa
các phần.
Sinh viên nộp bản thảo lần Sinh viên nghiêm túc chỉnh sửa
cuối sau khi đã chỉnh sửa các báo cáo theo định hướng của
yêu cầu như đã đề ra.
GVHD.

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 q 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
(Ký và ghi rõ họ tên)

ii


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)

iii


MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................ i
LỜI CẢM ƠN............................................................................................................. v
LỜI MỞ ĐẦU ........................................................................................................... vi
Chương 1: TỔNG QUAN VẤN ĐỀ .......................................................................... 1
Chương 2: CƠ SỞ LÝ THUYẾT ............................................................................... 2
2.1


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

2.2

WINFORM ............................................................................................................. 2

Chương 3: THIẾT KẾ CHƯƠNG TRÌNH ................................................................ 3
3.1 MƠ TẢ CHƯƠNG TRÌNH ................................................................................................... 3
3.2 XÂY DỰNG CHƯƠNG TRÌNH .......................................................................................... 4

3.2.1

Giao diên chính chơi game............................................................................... 4

3.2.2

Tạo bàn cờ ........................................................................................................ 5

3.2.3

Xử lý quân cờ sẽ đánh ...................................................................................... 6

3.2.4

Xử lý thắng thua ............................................................................................... 7

3.2.5

Đếm thời gian ................................................................................................. 12


3.2.6

Xử lý các tùy chọn người dùng. ..................................................................... 13

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

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

iv


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)

v



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.

vi


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 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.

1


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.

2


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.

3


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ụ

Công dụng

Name

Panel

pnlBanco

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

Lable

lb_NC1/lb_NC2

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

Panel

pn_anh1/pn_anh2

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


4


PictureBox

Chứa hình kí tự tiếp theo người chơi sẽ

Doinguoi

đá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)

5


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)

6



+ 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.

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


+ 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.

8


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.

9



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

10


+ 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.

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.
11


Hình 3.2.4.4. Thắng theo chéo phụ
3.2.5 Đếm thời gian
12


Ở đâ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.

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.

13


Thốt: Khi người chơi nhấn vào thố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.

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ừ quân cờ ra và xóa
background của nó sau đó đổi lại người chơi, đổi ảnh.

14


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

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

15


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.

16


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


×