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.
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 hướng dẫn: Lê Thị Ý Nhi MSSV: 61130752 Ngành: Công nghệ Thông tin Khóa: 61 Lần Nội dung Nhận đề tài hướng dẫn định hướng giải vấn 2/12/2021 đề Sinh viên trình bày kế hoạch thực Sinh viên trình bày việc mơ thuật tốn dựa kiến thức học 6/12/2021 môn kỹ thuật đồ họa kiến thức thu nhận từ Internet để minh họa toán đa dạng Sinh viên hồn thiện thuật toán đề với liệu đầu vào nhập từ 14/12/2021 bàn phím Trình bày thuật tốn với trường hợp sai hướng khắc phục cho trường hợp Nhận xét GVHD Sinh viên GVHD trao đổi nội dung đề tài Phân chia công việc theo thời gian cho phù hợp với yêu cầu Sinh viên hiểu vấn đề cần phải thực có giải pháp cho vấn đề cụ thể Tuy nhiên vấn đề hồn tốn sử dụng thư viện chuột hay làm giao diện chưa làm lần nên cần đầu tư nhiều thời gian Sinh viên hiểu nội dung thuật toán chi tiết với trường hợp hạn chế thuật toán Việc lập trình hồn thành mức độ nhập liệu từ bàn phím giao diện vấn đề với chuột chưa thực Báo cáo trình bày chung chung chưa vào cụ thể phân tích Sinh viên trình bày thảo yêu cầu tốn, hình ảnh, 21/12/2021 báo cáo thực tập lần thứ bảng biểu chưa trình bày rõ ràng tiến hành chỉnh sửa Cần hiệu chỉnh theo yêu cầu GVHD Sinh viên trình bày thảo Báo cáo lần khắc phục 28/01/2021 lần lỗi lần trước, nhiên Ngày i 4/1/2022 phần phương pháp kết chưa bât, chưa có liên kết phần Sinh viên nộp thảo lần Sinh viên nghiêm túc chỉnh sửa cuối sau chỉnh sửa báo cáo theo định hướng yêu cầu đề GVHD Nhận xét chung (sau sinh viên hoàn thành ĐA/KL): Sinh viên thực tốt yêu cầu GVHD, q trình thực đề tài có liên hệ chặt chẽ với GV Theo lịch hẹn Sinh viên có mặt để trình bày ý tưởng nội dung lần trước Trong q trình hồn tất báo cáo nỗ lực không ngừng cao điểm đợt thi học kỳ SV dành thời gian khơng cho TTCS Về nội dung báo cáo thỏa mãn yêu cầu đề tài đề cương Về kết chương trình minh họa thuật toán Về yêu cầu cao sử dụng thư viện chuột hay minh họa trường hợp nhược điểm thuật tốn chưa thực thành cơng Về hình thức báo cáo sản phẩm, báo cáo trình bày rõ ràng mục tiêu, phương pháp, kết thảo luận cho sản phẩm Cịn sản phẩm 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 bảo vệ: Khánh Hòa, ngày 26 tháng 12 năm 2021 Cán hướng dẫn (Ký ghi rõ họ tên) ii LỜI CAM ĐOAN Tôi xin cam đoan kết đề tài “Game cờ Caro người chơi C#” cơng trình nghiên cứu cá nhân chưa công bố cơng trình khoa học khác thời điểm Khánh Hòa, ngày 26 tháng 12 năm 2021 Tác giả đồ án (ký 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 ĐỀ Chương 2: CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU VỀ C# 2.2 WINFORM Chương 3: THIẾT KẾ CHƯƠNG TRÌNH 3.1 MÔ TẢ CHƯƠNG TRÌNH 3.2 XÂY DỰNG CHƯƠNG TRÌNH 3.2.1 Giao diên chơi game 3.2.2 Tạo bàn cờ 3.2.3 Xử lý quân cờ đánh 3.2.4 Xử lý thắng thua 3.2.5 Đếm thời gian 12 3.2.6 Xử lý 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 đề tài, tơi nhận giúp đỡ q phịng ban trường Đại học Nha Trang, Khoa Công nghệ Thông tin nói chung Bộ mơn Kỹ thuật phần mềm nói riêng tạo điều kiện tốt cho tơi hoàn thành đề tài Đặc biệt hướng dẫn tận tình 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 giúp đỡ Xin chân thành cảm ơn quý thầy cô môn Kỹ thuật phần mềm thời gian qua truyền đạt 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 xin gửi lời cảm ơn chân thành đến gia đình tất bạn bè giúp đỡ, động viên tơi suốt q trình học tập thực đề 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ý ghi rõ họ tên) v LỜI MỞ ĐẦU Hiện nay, game lĩnh vự trội đờ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, tựa game trí tuệ kinh điển với lứa tuổi Game cờ Caro có lối chơi đơn giản, bạn cần trang giấy trắng với li, người chơi chọn kí tự để đánh, người chiến thắng người đánh liên tiếp Trị chơi truy đơn giản địi hỏi tính tốn cản thận người chơi để đưa cách chơi hay Theo phát triển công nghệ, game cờ caro chơi điện thoại máy tính Ở đề tài này, game cờ caro viết ngôn ngữ C# với hỗ trợ winform C# ngôn ngữ hướng đối tượng, loại ngôn ngữ lập trình đại mạnh mẽ xây dựng tảng hai ngơn ngữ lập trình mạnh C++ Java Với Winform hỗ trợ việc tạo giao diện dễ dàng sinh động Game xây dựng để người chơi đánh cờ với bàn cờ định, phân thắng bại kèm theo số chức 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, game, tính điểm cho người chơi đặt lại điểm Game có ưu điểm giao diện dễ nhìn, dễ chơi, đủ tùy chọn, ngồi game số nhược điểm cần khắc phục chức phát triển thêm cho game vi Chương 1: TỔNG QUAN VẤN ĐỀ Cờ Caro Game trí tuệ quen thuộc với Với lối chơi đơn giản yếu tố trí tuệ lại cao nên Chơi Cờ Caro nhiều người yêu thích đặc biệt bạn học sinh, sinh viên dân văn phòng Game Chơi cờ Caro khơng mang tính chất giải trí đơn mà đấu trí vơ gay cấn Trò chơi gồm người chơi khác họ cố tìm cách chiến thắng đối thủ với số lần đánh hữu hạn Nếu người thắng cộng điểm, đánh hết bàn cờ mà phân thắng bại xem hịa Điều kiện để xem chiến thắng người chơi đánh đủ ô liên chiều ngang, dọc chéo Game cờ caro viết nhiều ngơn ngữ đề tài mô theo ngôn ngữ C# với hỗ trợ đắc lực từ winform Ưu điểm winform giao diện khéo thả dễ học sử dụng, hỗ trợ nhiều event click, hover…Tốc độ xử lý liệu nhanh hiệu quả, chạy nhiều phiên Windows khác Chương 2: CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU VỀ C# C# (hay C sharp) ngơn ngữ lập trình đơn giản, phát triển đội ngũ kỹ sư Microsoft vào năm 2000, người dẫn đầu Anders Hejlsberg Scott Wiltamuth C# ngơn ngữ lập trình đại, hướng đối tượng xây dựng tảng hai ngôn ngữ mạnh C++ Java C# thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable Code Runtime Environment, cho phép sử dụng ngôn ngữ high-level đa dạng tảng cấu trúc máy tính khác C# với hỗ trợ mạnh mẽ NET Framework giúp cho việc tạo ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), trở nên dễ dàng 2.2 WINFORM Winform thuật ngữ mô tả ứng dụng viết dùng NET FrameWorrk có giao diện người dùng Windows Forms Mỗi hình windows cung cấp giao diện giúp người dùng giao tiếp với ứng dụng Giao diện gọi giao diện đồ họa (GUI) ứng dụng Là ứng dụng windows chạy máy tính – mã lệnh thực thi máy tính: Microsoft, Word, Excel, Access, Calculator, yahoo, Mail… ứng dụng Windows Forms Ưu điểm bật winform giao diện kéo thả dễ sử dụng; Gắn event cho button cần double click, lại hỗ trợ trời event click, hover, …; Việc viết code vô trực quan: từ việc lấy text từ TextBox show liệu MessageBox, dùng Grid để kết nối SQL 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ờ game biểu diễn kí tự X/O Hình 3.1 Kí tự XO cờ Caro + Khi bắt đầu game bàn cờ với tỉ lệ 20 X 20 tạo người chơi bắt đầu với số điểm + Người đánh đánh bàn cờ sau người chơi khác đánh không đánh ô đánh + Quy tắc thắng: Nếu người chơi đánh đủ ô theo chiều ngang, chiều dọc, chéo chính, chéo phụ Nếu thắng cộng điểm + Mỗi người chơi có khoảng thời gian định, sau khoảng thời gian mà người chơi khơng đánh bị xử thua 3.2 XÂY DỰNG CHƯƠNG TRÌNH 3.2.1 Giao diện chơi game Hình 3.2.1 Giao diện bàn cờ Tạo giao diện cho game: game có sử dụng công cụ lable (để ghi chữ Player_1, Player_2, Thời gian), panel (để chia bố cục), picturebox (để chứa hình người chơi hình quân cờ đánh), button (các lựa chọn 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ờ 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 PictureBox Chứa hình kí tự người chơi Doinguoi đánh, đại diện cho người chơi đánh Button btn_Gamemoi Tùy chọn game 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ờ tạo cách tạo tạo cờ với kích thước cho sẵn sau add vào bàn cờ vịng lặp lồng Ô cờ sau tạo dựa vào vị trí cờ trước Vì tạo button khác gọi btncu để lưu lại vị trí cờ trước Sau cờ tạo thay vị trí cho btncu (Hình 3.2.2) 3.2.3 Xử lý quân cờ đánh Đối với game cờ Caro người chơi đánh với kí tự X O, game cài sẵn người đánh O đánh trước, vấn đề làm cách để đổi từ O sang X sau người chơi đánh kí hiệu đánh ô nhỏ bên tay trái + Tạo lớp người chơi để lưu thơng tin người chơi hình (Hình 3.3) + Khi nhấn vào cờ kiểm tra cờ có trống hay khơng có background cờ gán kí hiệu người chơi đánh cịn khơng khơng cho đánh 3.2.4 Xử lý thắng thua Thắng thua xét người chơi đánh đủ ô liên hàng ngang, hàng dọc, chéo hay chéo phụ dựa theo ví trí quân cờ đánh ta khởi tạo ma trận gồm list lồng vẽ bàn cờ để ghi lại vị trí quân cờ đánh + Sau người chơi click vào cờ ta lấy tọa độ ô cờ đánh + Xử lý hàng ngang: Kiểm tra từ vị trí vừa đánh sang bên phải bên trái, background giống tăng 1, bên cộng lại đủ thắng cộng điểm, ngược lại bỏ qua Hình 3.2.4.1 Thắng theo ngang + Xử lý hàng dọc: Kiểm tra vị trí đánh giống với vị trí vừa đánh tăng sau cộng lại đủ thắng cộng điểm ngược lại bỏ qua Hình 3.2.4.2 Thắng theo dọc 10 + Xử lý chéo chính: Kiểm tra đường chéo vị trí đánh giống với vị trí vừa đánh tăng sau cộng lại đủ thắng cộng điểm ngược lại bỏ qua Hình 3.2.4.3 Thắng theo chéo + Xử lý chéo phụ: Kiểm tra đường chéo phụ vị trí đánh giống với vị trí vừa đánh tăng sau cộng lại đủ thắng 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 Ở ta dùng công cụ timer để bắt thời gian kiện click thuộc tính cơng cụ progressBar Ta dùng kiện tick timer để nhảy thời gian đến giá trị lớn giá trị max đc cài Nếu hết thười gian người chơi chưa đánh xử thua người chơi đánh thời gian đc chạy lại Hình 3.2.5 Thời gian 3.2.6 Xử lý tùy chọn người dùng Game mới: Khi người chơi chọn game xóa bàn cờ tạo lại bàn cờ mới, thời gian đặt lại 13 Thoát: Khi người chơi nhấn vào thoát game chương trình đóng phương thức Exit bắt kiện Closing để thông báo Quay lại: Để biết quần cờ đánh phía trước ta khởi tạo stack để lưu quân cờ đánh Điều tiện cho người chơi muốn quay lại, ta cần kiểm tra số lượng quân cờ stack lớn ta lấy vị trí từ quân cờ xóa background sau đổi lại người chơi, đổi ảnh 14 Đặt lại điểm: Khi điểm người chơi đếu trả 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ề chương trình hồn thiện tính cần có game cờ Caro Người dùng sử dụng chương trình để chơi, game phân thắng bại lựa chọn khác để người dùng chọn Game ưu nên phát huy nhược điểm cần điều chỉnh Ưu điểm: Sử dụng C# dễ dàng cho người dùng, giao diện sinh động hơn, trực quan hơn, … So với game viết C C# với giao diện dễ nhìn cách chươi cx đơn giản so với C Nhược điểm: Game nhiều lỗi ẩn mà chưa thể fix, kiến thức cịn hạn chế nên chưa thể làm game hoàn thiện 4.2 HƯỚNG PHÁT TRIỂN Hướng phát triển game cho phép người chơi thay đổi tên người chơi, kí hiệu đánh chọn tỉ lệ bàn cờ mà người chơi muốn bàn cờ 3X3, 5X5… Tìm hiểu thêm kiến thức AI áp dụng để người chơi đấu với máy hay sử dụng mạng LAN để người dùng chơi với 16 TÀI LIỆU THAM KHẢO [1] https://hoangphongdhhp.blogspot.com/2016/07/game-co-caro-viet-bang-c.html [2] https://www.youtube.com/watch?v=rnrNL1CT7TM&t=10s 17 ... 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 hướng dẫn: Lê Thị Ý Nhi MSSV: 61130752 Ngành: Cơng nghệ Thơng...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... giao diện vấn đề với chuột chưa thực Báo cáo trình bày chung chung chưa vào cụ thể phân tích Sinh viên trình bày thảo u cầu tốn, hình ảnh, 21/12/2021 báo cáo thực tập lần thứ bảng biểu chưa trình