Cài đặt trò chơi ca rô 9 ô

Chia sẻ: Lam Phuong Huyen | Ngày: | Loại File: DOC | Số trang:14

0
134
lượt xem
17
download

Cài đặt trò chơi ca rô 9 ô

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ca rô 9 ô là một trò chơi đối kháng thông minh giữa 2 người, ...

Chủ đề:
Lưu

Nội dung Text: Cài đặt trò chơi ca rô 9 ô

  1. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN VÀ GIÁO VIÊN CHẤM ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. Niên luận 1:NL03_2009 1
  2. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ Nhóm chúng em xin chân thành cảm ơn quý Thầy (Cô) trường Đại học Trà Vinh nói chung và quý Thầy (Cô) Bộ môn Công nghệ Thông tin nói riêng đã tạo điều kiện và trang bị cho chúng em những kiến thức cơ bản để thực hiện niên luận này. Đặc biệt chúng em xin cảm ơn Thầy Ngô Thanh Huy -giáo viên trường Đại học Trà Vinh, Bộ môn Công nghệ Thông tin đã tận tình hướng dẫn chúng em trong suốt thời gian thực hiện niên luận,và trong thời gian đó giúp cho chúng em có thêm nhiều kiến thức bổ ích cũng như ứng dụng của máy tính vào đời sống thiết thực. Mặc dù bài niên luận đã hoàn tất nhưng không tránh được những sai xót. Chúng em kính mong nhận được sự cảm thông cùng những lời góp ý quý báu từ quý Thầy (Cô) cùng các bạn để bài niên luận của chúng em được hoàn chỉnh, chính xác và tối ưu hơn. Qua đó, chúng em có thể tích lũy những kinh nghiệm cho những bài niên luận tiếp sau. Cuối lời chúc quý Thầy (Cô) được nhiều sức khỏe và có nhiều thành công mới trong hiện tại cũng như tương lai. Niên luận 1:NL03_2009 2
  3. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ MỤC LỤC Phần 1: Giới thiệu đề tài.......................................................................................4 1.1 Giới thiệu tổng quan................................................................................4 1.2 Giới hạn chương trình.............................................................................4 1.3 Mục tiêu cần đạt......................................................................................5 1.4 Hướng giải quyết....................................................................................5 Phần 2: Cơ sở lý thuyết.........................................................................................6 2.1 Các định nghĩa..........................................................................................6 2.2 Thuật toán.................................................................................................8 Phần 3: Phân tích- Hiện thực.................................................................................8 3.1 Công cụ lập trình.....................................................................................8 3.2 Giới thiệu chương trình...........................................................................9 3.2.1 Giao diện chương trình..............................................................9 3.2.2 Các modules chương trình con...................................................10 3.3 Thiết kế giải thuật:.................................................................................11 3.4 Hàm Main.................................................................................................12 3.4.1 Chương trình..............................................................................12 3.4.2 Lưu đồ........................................................................................12 Phần 4: Kết luận- Đánh giá...................................................................................13 4.1 Kết quả đạt được....................................................................................13 4.2 Ưu điểm...................................................................................................13 4.3 Hạn chế.................................................................................................... Niên luận 1:NL03_2009 3
  4. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ CÀI ĐẶT TRÒ CHƠI CARO 9 Ô Phần 1: GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu tổng quan: Carô 9 ô là 1 trò chơi đối kháng thông minh giữa hai người, người chơi thay phiên nhau đi những nước đi (bằng dấu X , O hoặc các quân cờ đen, trắng) tại các ô trống. Bên nào đi được ba quân cờ liên tiếp thẳng hàng (ngang, dọc, xiên) thì thắng cuộc. Có khi ván cờ không phân thắng bại khi không còn ô trống mà hai bên không đủ ba quân cờ liên tiếp, lúc đó hai đấu thủ hòa nhau. Chương trình trò chơi của chúng em là chương trình trò chơi caro với 3 x 3 ô giữa người với người. Bàn cờ gồm có 9 ô, trong đó có 3 dòng, 3 cột được tạo nên từ các ký tự đặc biệt trong đồ họa graphics. Để in ra được đúng vị trí mình muốn thì phải xác định được tọa độ x, y trong hàm line (hàm vẽ đường thẳng). Để chơi được trò chơi này thì người chơi sử dụng bằng bốn phím mũi tên để duy chuyển qua lại giữa các ô trong bàn cờ và sử dụng phím backpace để đánh quân cờ vào vị trí mà mình đã chọn. 1.2 Giới hạn chương trình: Chương trình được thiết kế giới hạn trên bàn cờ 3x3 ô, giao diện Dos đơn giản dễ sử dụng, không có sử dụng đồ họa. X O Niên luận 1:NL03_2009 4
  5. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ 1.3 Mục tiêu cần đạt:  Phải xác định được trạng thái thắng thua hoặc trạng thái hòa cờ giữa hai đấu thủ sau mỗi bàn chơi theo quy định của caro 9 ô.  Phải tìm cách phân tích xem từ một trạng thái nào đó sẽ dẫn đến đấu thủ nào sẽ thắng với điều kiện cả hai đấu thủ đều có trình độ ngang nhau.  Phải tìm đủ đáp án của bài toán, thời gian thực thi chương trình nhanh và chính xác cao.  Giao diện thân thiện, dễ sử dụng và thể hiện được các qui luật của trò chơi  Thể hiện được các trạng thái thắng, thua, hòa tương ứng trong từng ván cờ 1.4 Hướng giải quyết:  Hiển thị được bàn cờ 3x3 ô ra màn hình sau mỗi nước đi.  Khi bàn cờ kết thúc phải xuất ra thông báo về kết quả của cuộc chơi để xác định ai là người chiến thắng.  Nắm vững cơ sở lý thuyết về cấu trúc dữ liệu, kỹ thuật thiết kế giải thuật, thiết kế giao diện để thực hiện các vấn đề trên.  Chọn cấu trúc dữ kiệu thích hợp để lưu trạng thái của một bàn cờ ( chẳng hạn như dung mảng hai chiều, danh sách liên kết ).  Dùng ngôn ngữ C để xây dựng các hàm, thư viện đồ họa để vẽ bàn cờ và các thuật toán cần thiết.  Dùng mảng để lưu và kiểm tra các nước đi của hai người chơi để biết ai thắng ai thua và có khả năng xảy ra hòa khi hai người chơi đều xuất sắc.  Sử dụng câu lệnh if và ifelse để người chơi sử dụng bốn phím mũi tên để duy chuyển con trỏ và phím backspace để đi O hay X trên bàn cờ. Niên luận 1:NL03_2009 5
  6. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ Phần 2: CƠ SỞ LÝ THUYẾT 2.1 Các định nghĩa  Bàn cờ là một bảng vuông 3x3, nên ta dùng một mảng hai chiều với kích thước 3x3 để tổ chức bàn cờ.  Các ô nằm theo chiều ngang là các dòng, các ô nằm theo chiều dọc gọi là các cột.  Giải thuật vét cạn Min- Max.  Nút Max là nút mà người đi O chọn cho mình nước đi sao cho trạng thái có giá trị là 1.  Nút Min là nút mà người đi chọn cho minh nước đi sao cho trạng thái có giá trị là 2.  Bàn cờ có n ô thì có thể có tới n! nút trên cây ta gọi là sự bùng nổ tổ hợp các nút. Hình ảnh minh họa cho nút Max và nút Min trong cây trò chơi. Niên luận 1:NL03_2009 6
  7. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ  “Vét cạn” là kỉ thuật phải đi tới tất cả các điểm dừng rồi mới quay lui.  Giải thuật cắt tỉa Alpha- Beta: Nếu A là một nút Max và ta đang xét một nút con B của nó (dĩ nhiên B là nút Min). Giả sử Va là một giá trị tạm của A, Vb một giá trị tạm của B và nếu ta có Va≥ Vb thì ta không cần xét các con chưa xét của B nữa. Vì nếu có xét thì giá trị của B cũng sẽ nhỏ hơn hoặc bằng Vb và do đó không ảnh hưởng gì đến Va. Tương tự nếu A là nút Min (tất nhiên B là nút Max) và Va ≤ Vb thì ta cũng không cần xét đến các con chưa xét của B nữa. Việc không xét tiếp các con chưa được xét của nút B gọi là việc cắt tỉa Alpha-Beta các con của nút B. Niên luận 1:NL03_2009 7
  8. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ  “Cắt tỉa alpha-beta” là kỉ thuật không nhất thiết phải đi tới tất cả các điểm dừng mà chỉ cần đi đến một số điểm nào đó và dựa vào một số suy luận nào đó để có thể quay lui sớm. 2.2 Thuật toán: Quay lui là một quá trình phân tich đi xuống và quay lui trở lại theo con đường đã đi qua. Tại mỗi bước có thể chúng ta chưa giải quyết được vấn đề vì thế phải phân tích cho tới các điểm dừng. Tại đó chúng ta quay ngược trở lại theo con đường cũ để giải quyết vấn đề tồn động. Phần 3: PHÂN TÍCH- HIỆN THỰC 3.1 Công cụ lập trình Niên luận 1:NL03_2009 8
  9. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ Ngôn ngữ lập trình C, với các phần mềm : Visual C++ Borland C++ 3.1 Turbo C++ 3.0 Nhóm chúng em đã chọn Turbo C++ 3.0 để viết chương trình này. 3.2 Giới thiệu chương trình 3.2.1 Giao diện chương trình Chương trình có giao diện Dos đơn giản, thân thiện, dễ dùng. Có những phím tắt giúp cho quá trình sử dụng được thuận tiện với các phím tắt: • Bấm ESC để thoát chương trình. • Bấm phím bất kì để bắt đầu trò chơi. Niên luận 1:NL03_2009 9
  10. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ Trạng thái bàn cờ đang trong trạng thái chờ đợi , và lượt đi là của quân O. Quân O mặt định ban đầu là ở chính giữa bàn cờ. Muốn duy chyển quân O sang ô khác ta sử dụng bằng bốn phím mũi tên. Khi ta đặt quân O vào trong ô vuông thì bước đi kế tiếp là thuộc về quân X, khi đó bảng chỉ dẫn sẽ thể hiện là “ lượt đi: X ”. Khi đó ta sử dụng bốn phím mũi tên để đặt quân X vào vị trí mà ta muốn đặt. Cứ tiếp tục như vậy cho đến khi hai bên tìm ra con đường chiến thắng bằng cách đi đủ ba quân cờ mà không bị đối phương chặn một trong hai đầu. Ở hình dưới thì quân cờ O đã chiến thắng vì đã đủ ba quân cờ. 3.2.2 Các modules chương trình con • Các kí hiệu được định nghĩa trong chương trình: - Trang_thai= -1: bàn cờ trống (chưa gì hết). Niên luận 1:NL03_2009 10
  11. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ - Trang_thai= 0: cờ hòa. - Trang_thai= 1: cờ O thắng. - Trang_thai= 2: cờ X thắng. - Row_size: có giá trị là 40. - Table_size: có giá trị là 3. • Các hàm được định nghĩa trong chương trình: Void paint: Void vi_tri_moi: Void danh_dau: Void kiem_tra: Void init: 3.3 Thiết kế giải thuật: Bắt đầu Giới thiệu chương trình Màn hình Xác định Vẽ bảng Vẽ bàn cờ chào mừng trạng thái thông tin Hòa X thắng O thắng 0 1 2 Vẽ con cờ Vẽ con trỏ Thoát ESC Niên luận 1:NL03_2009 11
  12. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ 3.4 Hàm main: 3.4.1 Chương trình: Chương trình khởi tạo giá trị cho bàn cờ với kích thước là 3x3 ô. Tại mỗi ô trên bàn cờ xác định giá trị mới và xử lý bằng cách di chuyển 4 phím mũi tên: lên, xuống, trái, phải. Tiếp đến, nó sẽ gọi hàm đánh dấu đề tiến hành đặt quân cờ X (O) vào vị trí mới mà người chơi chọn. Sau khi đã đánh dấu lên bàn cờ nó sẽ gọi tiếp hàm kiểm tra để tìm ra kết quả trạng thái của bàn cờ (thắng, thua, hòa). Ngược lại, nếu chưa tìm được kết quả thì nó quay lui tiếp tục gọi hàm đánh dấu. Hàm main kết thúc khi hàm kiểm tra tìm được kết quả và xuất ra trạng thái của bàn cờ. Dừng chương trình. 3.4.2 Lưu đồ: BEGIN Tạo bàn cờ Gọi hàm vị trí mới Gọi hàm đánh dấu Gọi hàm kiểm tra Xuất Kết Quả END Niên luận 1:NL03_2009 12
  13. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ Phần 4: KẾT LUẬN- ĐÁNH GIÁ 4.1 Kết quả đạt được Khi làm xong niên luận này nhóm chúng em đã đạt được các kết quả như sau: - Tạo được bàn cờ xuất hiện trên màn hình “ Dos”. - Quân cờ đầu tiên dành cho người đánh quân O. - Kiểm tra để xác định người chiến thắng. Về cơ bản thì nhóm chúng em đã hoàn thành được các yêu cầu của đề tài đặt ra. Nắm được cấu trúc dữ liệu ( trên cơ sở sử dụng mảng). Biết cách cài đặt, các thao tác trên Turbo C. 4.2 Ưu điểm:  Không giới hạn về thời gian.  Giao diện đơn giản, dễ sử dụng.  Có thể nâng cấp, phát triển lên thành một chương trình chơi cờ có quy mô lớn  Có phạm vi ứng dụng rộng.  Giải thuật tương đối dễ hiểu. 4.3 Hạn chế  Chưa áp dụng được giải thuật Alpha-Beta vào trong code.  Giao diện chưa đẹp.  Chưa tạo được menu chọn cách chơi  Chưa cho phép người chơi chọn lượt đi trước hay sau. 4.4 Hướng phát triển Niên luận 1:NL03_2009 13
  14. Trường Đại học Trà Vinh Khoa Kỹ thuật Công nghệ  Khắc phục các hạn chế trên.  Nâng cấp chương trình lên mức tối ưu.  Ghép thêm đồ họa để giao diện chương trình sinh động hơn. TÀI LIỆU THAM KHẢO [1] Phạm Văn Ất. Kỹ thuật lập trình C. Nhà xuất bản Đại học Quốc gia TPHCM [2] Cấu trúc Dữ liệu và giải thuật của Đỗ Xuân Lôi- NXB Khoa học Kỹ Thuật 2001 [3] Nhập môn cấu trúc Dữ liệu và thuật toán của Dương Anh Đức-Trần Hạnh Nhi, ĐHQG TPHCM 2003 [4] Link: http: // www.dec.ctu.edu.vn/cit/gtrinh/gthuat Niên luận 1:NL03_2009 14
Đồng bộ tài khoản