Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Đại cương Thiết kế game trên giao diện winform bằng ngôn ngữ c#...

Tài liệu Thiết kế game trên giao diện winform bằng ngôn ngữ c#

.PDF
13
1
142

Mô tả:

lOMoARcPSD|15978022 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 BÀI TẬP NHÓM Thiết kế game trên giao diện Winform bằng ngôn ngữ C# Giảng viên hướng dẫn: Sinh viên thực hiện: ThS. Phạm Thị Kim Ngoan 1. Nguyễn Phước Bảo Khoa 2. Trần Hoàng Trọng 3. Nguyễn Tiến Đạt 4. Vũ Minh Thịnh Khánh Hoà - Tháng 12/2022. lOMoARcPSD|15978022 MỤC LỤC I.Giới thiệu ........................................................................................ 2 II. Nêu bài toán: ................................................................................ 2 1.Giới thiệu về game thẻ bài:................................................................................... 2 2.Yêu cầu thực hiện: ................................................................................................ 2 III. Phân công công việc: .................................................................. 2 IV.Mô tả thiết kế game ..................................................................... 3 1.Luật chơi: ............................................................................................................. 3 2.Giới thiệu hình ảnh và các thao tác cơ bản trong game:....................................... 3 3.Hướng giải quyết .................................................................................................. 4 4.Quy trình thiết kế ứng dụng .................................................................................. 5 V. Đánh giá các thành viên ............................................................. 11 1 lOMoARcPSD|15978022 BÀI TẬP NHÓM I.Giới thiệu 1. Tên đề tài: Lập trình game “RevelationCard” trên giao diện Windows Form bằng ngôn ngữ C#. 2. Tên nhóm: Mùa đông không lạnh 3. Tên game: Thủ lĩnh thẻ bài ( dựa trên game BattleShip ) 4. Lĩnh vực nghiên cứu: Ứng dụng Windows Form 5. Loại hình nghiên cứu: Game 6. Thời gian thực hiện: Tháng 12/2022 II. Nêu bài toán: 1.Giới thiệu về game thẻ bài: - Game thẻ bài là gì? Ý tưởng: là trò chơi mô phỏng theo game Tàu chiến (BattleShip) – một tựa game đã là tuổi thơ của rất nhiều thế hệ. Có 2 phe, mỗi phe sẽ chọn 3 thẻ bài bí mật để ẩn đi, và nhiệm vụ của đối phương là tìm ra 3 thẻ bài đó. 2.Yêu cầu thực hiện: - Tạo giao diện của game bao gồm: bản đồ của người chơi và địch, danh sách các tên thẻ bài của địch mà người chơi sẽ thăm dò, nút thăm dò. -Khi đã chọn đúng thẻ bài bí mật thì sẽ hiển thị hình đã chọn đúng và cộng điểm thêm 1, ngược lại hiển thị hình ảnh đã chọn sai. - Game kết thúc khi round = 0 hoặc điểm số = 3, phe nào có số điểm cao hơn sẽ chiến thắng III. Phân công công việc: Công việc 1.Lựa chọn và phân tích đề tài: 2.Ý tưởng và thiết kế giao diện, chức năng 3.Giải quyết bài toán 4.Tiến hành code mã nguồn 5.Tiến hành kiểm thử 6.Viết báo cáo và tổng hợp 7.Trình bày sản phẩm Thành viên tham gia Trần Hoàng Trọng Cả nhóm Cả nhóm Trần Hoàng Trọng Nguyễn Tiến Đạt Vũ Minh Thịnh Nguyễn Phước Bảo Khoa Nguyễn Tiến Đạt Nguyễn Tiến Đạt Nguyễn Phước Bảo Khoa Trần Hoàng Trọng Vũ Minh Thịnh 2 lOMoARcPSD|15978022 IV.Mô tả thiết kế game 1.Luật chơi: - Có 10 vòng chơi, tối đa 3 điểm, người nào đạt đủ 3 điểm trước hoặc điểm cao hơn đối phương sau 10 vòng chơi là người thắng cuộc. - Người chơi và địch(máy) sẽ được một bản đồ với kích thước là 4x4 ô. - Người chơi sẽ được chọn 3 vị trí bất kỳ để giấu thẻ bài của mình. - Sau khi chọn vị trí để đặt thẻ của bản thân thì có thể chọn một vị trí bất kỳ trong khu vực của địch để điều tra. - Nếu người chơi chọn và điều tra được thẻ của địch thì sẽ được cộng 1 điểm cho bản thân và tương tự như của địch. 2.Giới thiệu hình ảnh và các thao tác cơ bản trong game: -Một số hình về các nút lệnh trong game: +Vùng bản đồ của người chơi: gồm 16 ô là các Button được đặt tên như hình: +Vùng bản đồ của địch : cũng gồm 16 ô là các Button được đặt tên như hình: 3 lOMoARcPSD|15978022 +Vùng tấndòcông: Vị trí người chơi tìm thẻ bài địch Vị trí địch dò tìm thẻ bài người chơi Nút điều tra +Hình ảnh khi chọn đúng thẻ bài +Hình ảnh khi chọn sai thẻ bài 3.Hướng giải quyết - Lựa chọn lập trình trên Winform của C# (Visual Studio): đơn giản, dễ sử dụng. - Dựa vào yêu cầu thực hiện bài toán, ta xử lí như sau: + Tạo ra các 16 Buttons ở mỗi bên, người chơi phải chọn 3 vị trí trí bất kì để ẩn thẻ bài rồi mới có thể tiến hành bước thăm dò địch; địch (máy) sẽ chọn ngẫu nhiên 3 vị trí để ẩn thẻ bài ( sử dụng hàm Random để xử lý) + Tạo danh sách(List) để lưu trữ vị trí dò tìm: Phe ta: tạo 1 List danh sách các vị trí thuộc bản đồ địch ( tạo 1 ComboBox lưu các phần tử trong List để người chơi có thể chọn vị trí), sau khi chọn xong mới có thể nhấn được nút “Probe” Phe địch: tạo 1 List danh sách các vị trí thuộc bản đồ của người chơi, cho địch chọn 1 vị trí ngẫu nhiên ở bản đồ của người chơi dò tìm ( sử dụng hàm Random để làm việc này),vị trị được chọn sẽ hiện thị vào ô “Enemy’s investigation”. + Tạo ô hiển thị điểm số (textbox) khi chọn đúng thì điểm tăng thêm 1. +Tạo ô hiển thị vòng chơi (textbox), mỗi bên có 10 lượt chọn, khi người chơi và địch đã chọn 1 vị trí ở bản đồ của đối phương thì số vòng chơi giảm đi 1. 4 lOMoARcPSD|15978022 +Game kết thúc khi round = 0 hoặc điểm số tăng lên 3( sử dụng sự kiện của toolbox Timer ). 4.Quy trình thiết kế ứng dụng B1. Lập trình tính năng xử lý cơ bản B2. Định hướng xây dựng tính năng bổ sung B3. Hoàn tất giao diện: *Hàm thiết lập cho địch ẩn 3 thẻ bài B1:Lập trình tính năng xử lý cơ bản: -Vị trí địch lựa chọn: Đặt điều kiện để không bị chọn trùng ô. Biến index: Chọn 1 ô ngẫu nhiên trong vị trí của địch. + Vị trí của địch sẽ được chọn ngẫu nhiên 3 ô từ w1 đến z4 + Nếu vị trí ô đó chưa được chọn và chưa được gán nhãn thì ta sẽ gán nhãn là: “enemyCard”. + Nếu không thỏa điều kiện thì sẽ quay ngẫu nhiên vị trí tiếp theo. + Debug: Hiển thị vị trí được máy random trong debug. *Hàm khởi động trò chơi: + Khởi tạo danh sách các nút cho vị trí người chơi từ w1 đến z4. + Khởi tạo danh sách các nút cho vị trí của địch từ a1 đến d4. + Khởi tạo ô chọn vị trí của địch bằng “null”. + Thông báo cho người chơi biết phải chọn 3 ô khác nhau để bắt đầu trò chơi. + Ở vòng for đầu tiên ta khởi tạo trạng thái ban đầu của vị trí của địch. + Ở vòng for đầu tiên ta khởi tạo trạng thái ban đầu của vị trí của người chơi. + Gọi hàm thiết lập cho địch ẩn 3 thẻ bài (EnemyLocationPicker()). + Khi Restart Game thì nút Probe sẽ không được phép nhấn. 5 lOMoARcPSD|15978022 *Hàm ẩn thẻ bài của người chơi: + Nếu tổng số thẻ bài lớn hơn 0 thì: Để 1 biến cục bộ “button” bằng tham số sender để chuyển “sender” thành kiểu dữ liệu Button(nút). Nếu người chơi nhấn chọn nút thì chính nút đó sẽ bị vô hiệu hóa.. Màu nền của nút đã được chọn sẽ chuyển thành xám để phân biệt rõ ràng giữa trạng thái của các nút. Sau đó những nút được chọn sẽ được gán nhãn thành “playerCard” để nhận biết thẻ đó đã được sắp đặt. Sau mỗi lần chọn nút thì số lượng thẻ giảm đi 1. + Nếu tổng số thẻ bằng 0 : Cho btnProde.Enable = true (nút Probe trên giao diện) để có thể nhấn vào. Sau đó dòng chữ gợi ý sẽ được chuyển để cho người chơi biết được bước tiếp theo để làm gì. 6 lOMoARcPSD|15978022 *Hàm thiết lập lượt chơi của địch: 1.Xử lí lượt chơi của địch - Khi vòng chơi còn lớn 0 Máy sẽ chọn ngẫu nhiên 1 vị trí ở bản đồ của người chơi ( xử lý nhờ hàm Random) Biến index là 1 biến để chọn ngẫu nhiên vị trí bên vị trí người chơi. + Nếu máy chọn đúng vị trí có thẻ bài đã ẩn của người chơi (playerPositionButtons[index].Tag == “enemyCard”) Hiển thị hình thẻ chọn đúng => ta xử lý chèn hình ảnh vào như sau: playerPositionButtons[index].BackgroundImage = Properties.Resources.Card (Card là tên file ảnh ) Vị trí được máy chọn để tấn công sẽ hiện lên trên ô “enemyMove”. Ô được chọn sẽ được vô hiệu hoá. Sau đó ô đó sẽ được xóa thuộc tính đã chọn khỏi danh sách. Cộng điểm của máy lên 1 Sau đó hàm dừng lại. + Ngược lại nếu máy chọn sai: Hiển thị hình thẻ chọn sai => xử lý chèn hình ảnh tương tự như khi chọn đúng: playerPositionButtons[index].BackgroundImage = Properties.Resources.x (x là tên file ảnh ) Vị trí được máy chọn để tấn công sẽ hiện lên trên ô “enemyMove”. Ô được chọn sẽ được vô hiệu hoá. Sau đó ô đó sẽ được xóa thuộc tính đã chọn khỏi danh sách. Sau đó hàm dừng lại. 2. Xử lý kết thúc game: -Khi số vòng bé hơn 1 hoặc điểm của địch bằng 3 hoặc điểm của người chơi bằng 3 thì: + Nếu điểm người chơi lớn hơn điểm của máy thì: Hiển thị ra thông báo người chơi đã thắng. Khởi động lại game mới. + Nếu điểm máy lớn hơn điểm của người chơi thì: Hiển thị ra thông báo máy đã thắng. Khởi động lại game mới. 7 lOMoARcPSD|15978022 + Nếu điểm máy bằng điểm của người chơi thì: Hiển thị ra thông báo hòa. Khởi động lại game mới. *Hàm thiết lập người chơi dò tìm thẻ bài của địch: + Nếu danh sách chọn vị trí tấn công của địch đã có vị trí sẽ tấn công thì: Biến provePosition lưu các giá trị sau khi chuyển đổi thành chữ thường ở EnemyLocationListbox (vd:W1->w1) => Mục đích là để so sánh với các “name” ở List enermyPositionButtons (danh sách các ô bên bản đồ của địch) có giống nhau không. Biến index lưu chỉ số những phần tử có “nam” giống nhau. => sử dụng phương thức Findindex kết hợp với biểu thức lambda để thực thi. + Nếu ô vị trí của địch chưa được chọn và số vòng chơi lớn hơn 0 thì: Số vòng chơi sẽ trừ đi 1 + Nếu người chơi chọn đúng ô địch đã chọn thì: Ô của địch bị chọn đúng sẽ bị vô hiệu hoá. Hiển thị hình thẻ chọn đúng(tương tự như của địch). Điểm người chơi sẽ tăng lên 1 Sau đó đến lượt chơi của địch + Nếu người chơi chọn sai thì: Ô của địch bị chọn đúng sẽ bị vô hiệu hoá. Hiển thị hình thẻ chọn sai(tương tự như của địch). Sau đó đến lượt chơi của địch + Nếu người chơi chưa chọn ô để tấn công thì sẽ có một cảnh báo nhắc người chơi chọn ô để tấn công. 8 lOMoARcPSD|15978022 9 Downloaded by Quang Quang ([email protected]) lOMoARcPSD|15978022 B2. Định hướng xây dựng tính năng bổ sung - Có thể định hướng bổ sung một số tính năng để game tối ưu hơn như sau: + Khi người chọn vị trị đặt thẻ bài, nếu chọn nhầm có thể chọn lại bằng cách click chuột thêm 1 lần nữa. + Thêm hiệu ứng âm thanh vào game để người chơi cảm thấy thú vị hơn. B3. Hoàn tất giao diện: -Giao diện game khi chưa bắt đầu: - Game bắt đầu khi người chơi đã chọn xong 3 vị trí để ẩn thẻ bài và đã chọn vị trí người chơi muốn dò tìm. 10 Downloaded by Quang Quang ([email protected]) lOMoARcPSD|15978022 V. Đánh giá các thành viên ( Rất tích cực A, tích cực B, còn hạn chế C) Nguyễn Tiến Đạt : A Trần Hoàng Trọng : A Vũ Minh Thịnh : B Nguyễn Phước Bảo Khoa : A 11 Downloaded by Quang Quang ([email protected]) lOMoARcPSD|15978022 *Tài liệu tham khảo: - Kiến thức lập trình Windows Form (học phần lập trình hướng đối tượng C#) đã học. - Phân tích và hướng dẫn làm game: https://www.youtube.com/watch?v=ZMppynIIqKs&t=2775s 12 Downloaded by Quang Quang ([email protected])
- Xem thêm -

Tài liệu liên quan