Báo Cáo Bài Tập Lớn Kỹ Thuật Lập Trình

19 298 0
Báo Cáo Bài Tập Lớn Kỹ Thuật Lập Trình

Đ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

GIỚI THIỆU 2 II. Ý TƯỞNG THUẬT TOÁN 2 III. Ý TƯỞNG HOÀN THIỆN GIAI ĐOẠN 3 3 IV. CÁC HÀM XỬ LÝ CHÍNH 5 V. BẢNG TÓM TẮT CHỨC NĂNG 6 VI. MỘT SỐ HÌNH ẢNH TRONG GAME 7 VII. TÀI LIỆU THAM KHẢOGIỚI THIỆU 2 II. Ý TƯỞNG THUẬT TOÁN 2 III. Ý TƯỞNG HOÀN THIỆN GIAI ĐOẠN 3 3 IV. CÁC HÀM XỬ LÝ CHÍNH 5 V. BẢNG TÓM TẮT CHỨC NĂNG 6 VI. MỘT SỐ HÌNH ẢNH TRONG GAME 7 VII. TÀI LIỆU THAM KHẢOGIỚI THIỆU 2 II. Ý TƯỞNG THUẬT TOÁN 2 III. Ý TƯỞNG HOÀN THIỆN GIAI ĐOẠN 3 3 IV. CÁC HÀM XỬ LÝ CHÍNH 5 V. BẢNG TÓM TẮT CHỨC NĂNG 6 VI. MỘT SỐ HÌNH ẢNH TRONG GAME 7 VII. TÀI LIỆU THAM KHẢO

Đại Học Quốc Gia Thành Phố Hồ Chí Minh Trường Đại Học Bách khoa Báo Cáo Bài Tập Lớn Kỹ Thuật Lập Trình Đề tài: GAME REVERSI (Ver 1.0) Giảng viên: thầy Vương Bá Thịnh Sinh viên tham gia: STT Họ tên MSSV Trần Quang Khôi 1411875 Nguyễn Đức Huy 1413369 Nguyễn Hữu Phúc 1412962 Lê Đình Duy 1410561 TP HỒ CHÍ MINH, 12/2015 MỤC LỤC I GIỚI THIỆU Game REVERSI game trí tuệ đơn giản người chơi đối kháng với lưới 8x8 chứa quân trắng, quân đen, trống Luật chơi: - người chơi, người chơi quân trắng, người chơi quân đen - Đến lượt chơi người chơi buộc phải đặt qn cờ vào vị trí hợp lệ, khơng tồn vị trí hợp lệ đặt qn nhường quyền cho người chơi lại - Vị trí đặt quân hợp lệ vị trí cho người chơi đặt quân vào vị trí “ăn” qn đối phương (Xin xem phần phụ lục luật chơi ) Trò chơi kết thúc trường hợp sau: +Bàn cờ khơng trống +Cả người chơi khơng có vị trí đặt qn Luật thắng thua: trò chơi kết thúc người chơi có số lượng quân cờ bàn cờ nhiều người chiến thắng Yêu cầu Giai đoạn 1: Tạo danh sách vị trí đặt quân hợp lệ người chơi Sinh viên cung cấp file “Assignment.c” chứa prototype hàm cần thực, “Main.c” dùng để test chương trình Trong hàm generate_list_valid_moves nhận input trạng thái bàn cờ, người chơi cần đặt quân người nào, output danh sách vị trí hợp lệ Quy định: 1-người chơi quân đen, 2-người chơi quân trắng output theo thứ tự dòng từ nhỏ tới lớn ứng với dòng, cột từ nhỏ tới lớn Giai đoạn 2: Cập nhật trạng thái bàn cờ sau bước Giai đoạn 3: Hoàn thiện game người chơi II Ý TƯỞNG THUẬT TOÁN - Giai đoạn : + Tạo quân cờ vị trí (5,5);(4,4);(5,4);(4,5) + Quét dọc ngang bàn cờ, vị trí có qn cờ (giá trị X) người chơi 1(biến đầu vào), giá trị O người chơi (biến đầu vào) bắt đầu làm bước sau : • Xét theo hàng dọc, từ giá trị xét cộng thêm đơn vị , giá trị ô bàn cờ quân ta bỏ qua, quân địch xét tiếp hết bàn cờ Nếu cuối bàn cờ cuối dãy quân địch khơng có qn ta đưa tọa độ điểm cuối vào ma trận gợi ý Làm tương tự xét từ giá trị xét trừ đơn vị • Xét theo hàng ngang, từ giá trị xét cộng thêm đơn vị , giá trị ô bàn cờ quân ta bỏ qua, quân địch xét tiếp hết bàn cờ Nếu cuối bàn cờ cuối dãy qn địch khơng có qn ta đưa tọa độ điểm cuối vào ma trận gợi ý Làm tương tự xét từ giá trị xét trừ đơn vị • Xét theo đường chéo, từ giá trị xét cộng thêm đơn vị , giá trị ô bàn cờ quân ta bỏ qua, quân địch xét tiếp hết bàn cờ Nếu cuối bàn cờ cuối dãy qn địch khơng có qn ta đưa tọa độ điểm cuối vào ma trận gợi ý Làm tương tự xét từ giá trị xét trừ đơn vị - Giai đoạn : • - Giai đoạn : Tạo vòng lặp để hoàn thiện menu game bước giai đoạn 1, giai đoạn liên tục kết thúc game III Ý TƯỞNG HOÀN THIỆN GIAI ĐOẠN : - Thiết kế giao diện người dùng game tảng console với tùy chỉnh điều khiển trực quan - Sau khởi động game, menu game xuất với tính : + Giúp đỡ : Chương trình xuất hiển thị luật chơi, sau xem xong, người dùng bấm phím để quay lại menu game + Tùy chọn: Chương trình xuất menu khác để người dùng tùy chỉnh chức sau : • Chế độ chơi : Chơi với máy người chơi (mặc định người chơi) • Lựa chọn quyền đánh trước (mặc định X đánh trước) • Điều chỉnh thời gian lượt ( mặc định 30s ) + Game : Tạo game mới, bàn cờ 8x8 • Các vị trí quân cờ ban đầu tạo bàn cờ, vị trí gợi ý hiển thị Người chơi điều khiển trỏ đánh vào vị trí mong muốn(dòng, cột) Nếu khơng đánh vị trí gợi ý, vị trí khơng hợp lệ hình báo lỗi “Bạn khơng phép ngồi gợi ý” u cầu nhập lại • Khi bàn cờ đầy bên đạt điều kiện thắng xuất thơng báo người chiến thắng Trường hợp không thời gian quy định bị xử thua • Trong q trình chơi bấm ESC để quay lại menu +Lưu game : Chương trình lưu bàn cờ dạng tập tin có phần mở rộng *CR, lưu thư mục cài đặt game với phần tên thời gian hệ thống +Tải game : Chương trình hiển thị danh sách ván cờ lưu Sau người chơi chọn ván cờ cần tải chương trình tái ván cờ thời điểm lưu +Giới thiệu : Hiển thị thơng tin game mssv nhóm +Thoát : Nếu chọn chức chơi chương trình hiển thị thơng báo “bạn có muốn lưu ván cờ trước khơng?” Nếu chọn có chương trình lưu - Điều khiển chức menu phím mũi tên, phím enter để chọn chức tương ứng - Điều khiển trực quan : + Người chơi dùng phím mũi tên để di chuyển, enter để đánh + Người chơi dùng phím a,w,s,d để di chuyển ( tương tự game fps ) , phím space để đánh + Các quân cờ người chơi có màu sắc khác nhau, chuyển từ số 1-2 thành X,O, ô gợi ý chuyển thành dấu “-“ ô bàn cờ - Gián đoạn lúc chơi : lúc chơi, người chơi thực phím tắt để gọi chức menu : + F2 : hiển thị giúp đỡ +F3 : lưu game +F4 : tải game +F5 : hiển thị thơng tin game +ESC : quay lại menu - ViẾt chương trình đánh với máy IV CÁC HÀM XỬ LÝ CHÍNH - Trong file coRVS.cpp: chứa hàm để vẽ ô bàn cờ ô thông tin lúc chơi - Hàm veMenu: thực hiển thị chọn MENU GAME, chạy chương trình hàm gọi main(); Trong chơi hay thao tác khác, ta nhấn phím ESC hàm gọi -> trở MENU GAME - Hàm veGioiThieu: in thơng tin nhóm, mssv - Hàm giupDo: in thơng tin hướng dẫn phím bấm luật chơi GAME - Cài đặt: - Hàm veCaiDat để in giao diện người chơi chọn phần tùy chọn MENU GAME Trong hàm veCaiDat lại gọi hàm caiDat để thực thay đổi thông số (các biến) - Hàm luuGame: thực chức LƯU GAME chơi - Tải game lưu game : người chơi chọn chức tải GAME gọi hàm menuTaiGame để thị danh sách GAME ĐÃ LƯU, chọn GAME ĐÃ LƯU gọi hàm taiGame để thực chức TẢI GAME - Hàm catch_keys1 & hàm catch_keys2: bắt kiện phím di chuyển trỏ chơi Trong chơi đọc vào phím, khơng phải phím di chuyển gọi hàm bamPhimKhiChoi để thực phím chức F1, F2,… - Hàm kiemtrasoquan: kiểm tra xem bàn cờ đầy quân chưa V BẢNG TÓM TẮT CHỨC NĂNG Stt Chức MENU GAME Nội dung - Hiển thị MENU GAME với chức năng, người dùng chọn phím điều hướng phím enter GIÚP ĐỠ - Hiển thị hướng dẫn cách chơi Hiển thị hướng dẫn luật chơi Nhấn phím trở lại MENU GAME TÙY CHỌN - Lựa chọn quyền đánh trước với người - Cho biết thông tin tại: chế độ chơi, quyền đánh trước, thời gian mặc định cho lượt - Tùy chỉnh thời gian lượt (thấp 10 (s) nhiều 99 (s) GAME MỚI - Hiển bàn cờ có kích thước nxn Người chơi đánh quân cờ phím điều hướng (a/s/d/w) enter (space) - Dùng màu sắc kí hiệu riêng cho quân cờ bên - Trong q trình chơi GAME, nhấn phím chức năng: + Nhấn F1: để hiển thị GIÚP ĐỠ + Nhấn F2: để CHƠI GAME MỚI + Nhấn F3: để chơi LƯU GAME + Nhấn F4: để TẢI GAME + Nhấn F5: Hiển thị THÔNG TIN GAME + Nhấn ESC: để quay lại MENU GAME -Tính thời gian cho nước LƯU GAME - Tự động LƯU ván cờ chơi dạng tập tin với phần tên thời gian hệ thống mở rộng *.CR LƯU thư mục cài đặt GAME - Xuất thông báo sau LƯU GAME thành công TẢI GAME - Hiển thị danh sách ván cờ LƯU (tên file game) - Người chơi chọn ván cờ cần chơi tiếp cách nhập giá trị tương ứng danh sách THƠNG TIN - Hiển thị thơng tin nhóm THỐT - Thốt game - Nếu chơi chương trình thơng báo hỏi có muốn lưu game khơng *Đề tài chưa viết chương trình chơi game với máy VI MỘT SỐ HÌNH ẢNH TRONG GAME 10 11 12 13 VII TÀI LIỆU THAM KHẢO - Website : http://dtvt.org/forum_posts.asp?TID=13162&title=mt-s-hm-m-rng-trn-c-c (Tham khảo hàm mở rộng C/C++: hàm thay đổi kích thước cửa sổ console, hàm Sleep(), hàm tạo màu cho text.) - Wikipedia - Tài liệu : +Slide giảng kỹ thuật lập trình +Tài liệu thực hành kỹ thuật lập trình Game mẫu : Tap Reversi Free VIII PHỤ LỤC Luật chơi 14 - Mỗi mặt quân cờ đại diện cho bên chơi Ta gọi cờ hai bên đen trắng, gọi sấp ngửa, qn cờ có mặt riêng biệt -Trước kia, cờ Othello khơng quy định vị trí đặt quân cờ Sau đó, chấp nhận luật chơi với điều khoản phải có điểm đặt vào vị trí hình vuông trung tâm bàn cờ, hai quân sẫm hai quân nhạt Quân màu sẫm Quân màu sẫm cần phải đặt vị trí tồn hàng ngang dọc, chéo quân quân cũ hai quân có hay nhiều quân nhạt Trong hình dưới, qn sẫm đặt vị trí gợi ý Sau đặt quân, quân sẫm lật tất quân nhạt nằm đường dóng quân sẫm quân sẫm cũ Những quân sáng màu trở thành màu sẫm quân sẫm sử dụng chúng lượt tiếp theo, quân nhạt lại lật chúng lại nước 15 Nếu quân sẫm định vị trí d6 (theo hình dưới), quân nhạt bị lật mặt bàn cờ có dạng hình Bây đến lượt quân nhạt nước tương tự để tìm hội lật mặt quân sẫm Các khả sau: Quân nhạt vào c4 lật quân sẫm: Người chơi thay phiên quân Nếu bên khơng tiếp tiếp tục đến lượt người hai bên không nước 16 Điều xảy cờ kín hết qn hay bên chơi khơng qn bàn cờ Người chơi có nhiều quân bàn cờ người thắng Một điều khác Reversi cờ Othello ciệc sử dụng quân Ở Reversi người chơi chia 32 quân từ lúc bắt đầu 32 quân (bao gồm hai quân bàn cờ lúc bắt đầu chơi) khơng qn Họ không sử dụng quân cờ đối thủ Ở cờ Othello tất quân cờ thuộc sở hữu chung hai người chơi; quân cờ để chung hộp, hai bên có hội dùng quân ngang Chiến thuật - Các quân cờ thay đổi màu nhanh, dễ dàng thường xuyên, vậy, ưu điểm nhược điểm cố gắng có nhiều quân từ lúc bắt đầu Chiếm góc, cạnh, mobility, parity, tàn dự đốn trước việc chìa khóa thành cơng cờ Othello - Chiếm góc Nếu có quân đặt góc qn khơng bị đổi hết trận cờ Do đó, người chơi sử dụng quân cờ góc để chốt giữ nhóm quân với cạnh sát làm thành hệ thống chắn Do việc chiếm giữ góc chiến lược có hiệu có hội đến Nói chung, quân cờ ổn định nằm hướng ranh giới, hàng kín qn, có quân màu nằm cạnh liên tiếp bị chặn hai đầu quân màu khác - Mobility Một người chơi có chiến thuật khơng dễ dàng từ bỏ việc chiếm góc hay nước tốt Do vậy, để đoạt nước tốt bạn cần phải ép đối thủ nước từ bỏ cách tốt Cách tốt để làm việc làm giảm số lượng nước cho đối thủ bạn Nếu bạn định tìm cách hạn chế số nước hợp lý đối thủ sớm hay muộn họ phải nước mà họ khơng mong muốn Một ví trí cần thực tất quân bạn đứng cạnh nhau, bao vây xung quanh quân đối thủ Với vị trí vậy, bạn đọc nước đối thủ 17 - Tại biên Các quân cờ đặt phía biên bàn cờ dường chắn (bởi chúng khơng bị lật mặt dễ dàng) Bốn vng góc bàn cờ gọi X-vuông Lúc bắt đầu hay ván cờ, chiếm giữ, đảm bảo chắn cho việc sở hữu chúng - Đoán trước Như chiến thuật cờ vua hay checkers, người chơi không nên xem xét cờ Đối với nước đi, bạn cần phải cân nhắc diễn biến có từ phía đối thủ, sau khả phản ứng lại bạn với nước Tình khơng liên quan đến nước sau Do vậy, phân tích khả đi, chiếm góc khả khác, bạn nên xem xét cách tốt để thực chiến lược thời gian dài quan tâm đến nước Các chương trình chơi game máy tính - Chương trình chơi cờ Othello tốt dễ dàng đánh bại người chơi cờ giỏi Vào đầu năm 1980, chương trình Moor thắng đương kim vơ địch lúc vào năm 1997, chương trình Logistello đánh bại nhà vô địch Takeshi Murakami với tỷ số 6:0 Sự trội khơng có trò chơi cờ vua, nơi mà máy tính chơi giỏi ngang ngửa với người hay cờ vây, nơi chí người chơi trung bình thắng máy tính giỏi - Nói chung, lồi người khơng thể thắng trí thơng minh máy tính cờ Othello máy tính tính tốn nhiều nước tiếp theo, việc người khơng thể Các nhà phân tích ước 18 tính số lượng vị trí hợp lệ cờ Othello nhiều 1028 có độ phức tạp xấp xỉ 1058 19

Ngày đăng: 18/06/2018, 11:17

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan