Danh mục

Lập trình trò chơi Caro bằng ngôn ngữ C++

Số trang: 6      Loại file: doc      Dung lượng: 4.00 KB      Lượt xem: 16      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Loạt bài viết này sẽ hướng dẫn bạn phân tích, thiết kế, và viết chương trình chơi trò chơi Caro bằng ngôn ngữ C++
Nội dung trích xuất từ tài liệu:
Lập trình trò chơi Caro bằng ngôn ngữ C++Loạt bài viết này sẽ hướng dẫn bạn phân tích, thiết kế, và viết chươngtrình chơi trò chơi Caro bằng ngôn ngữ C++- Trò chơi đối kháng (two-agent,conflicting game (?)) : Gồm 2 người chơi, đối thủ nàysẽ tìm cách dành chiến thắng trước đối thủ kia trong một số hữu hạn nước đi, mỗinước đi đuợc tạo ra dựa từ 1 trạng thái bất kỳ của trận đấu. Nếu sau 1 số giới hạnnước đi, nếu chưa ai dành chiến thắng thì xem như hoà. Ngoài ra, thông tin về trậnđấu là hoàn toàn biết đuợc (perfect information) đối với cả 2 đối thủ.- Cờ Carô (hay còn gọi là Gomoku ) cũng là 1 loại trò chơi đối kháng, trong đó mỗi đốithủ trong mỗi lượt đi của mình sẽ chọn 1 ô trống còn lại trên bàn cờ (kẻ sẵn các ôlưới ) sao cho tạo thành n con liên tiếp để chiến thắng ... Nếu n = 3 thì nó có 1 tên kháclà Tic Tac Toe , nếu bổ sung thêm luật cho nó thì có thể đổi tên là Penta,Pentix (có ănquân) ... Ngoài ra, có luật thi đấu mà người ta đã chứng minh đuợc người đi truớc baogiờ cung có thuật toán để thắng, do đó để hạn chế thuận lợi của người đi trước,người ta đã đặt ra luật rừng sau1. Giới thiệuPhát triển chương trình ) :+ Bàn cờ có kích thước tuỳ ý NxN, chọn n = 16;+ Quân cờ đầu tiên phải đánh chính giữa lưới bàn cờ.+ Nếu tồn tại đúng 5 con liên tiếp trên 1 hàng là thắng (chéo,ngang,dọc). [*]+ Nếu hết chỗ đi thì 2 bên hoà.+ Và 1 số luật khác, nhưng để đon giản, em không đề cập ... (%c,c1);#include #include #include const dong=25,cot=50,x=cot/2,y=dong/2;/* Thu tuc ve 1 dong */void Ve_1d(int x2,char c1++)c{printf(%c%c,c2,c3);cprintf(%c%c,c2,c4);,char c2,char c3,char c4)cprintf for (int i=1;i//============================================/* Thu tuc nhap ho ten nguoi choi */void Nhap_HoTen(char *Ten[]){for (int k=0;kD,int >C){int i,j,m;for (i=k-1,j=l-1,m=1;i>=k-5;i--,j--)if (A[y+k][x+l]==A[y+i][x+j])m++;else{GTD=A[y+i][x+j];break;}for (i=k+1,j=l+1;iD,int >C){int i,m;for (i=k-1,m=1;i>=k-5;i--)if (A[y+k][x+l]==A[y+i][x+l])m++;else{GTD=A[y+i][x+l];break;}for (i=k+1;iD,int >C){int i,j,m;for (i=k-1,j=l+1,m=1;i>=k-5;i--,j++)if (A[y+k][x+l]==A[y+i][x+j])m++;else{GTD=A[y+i][x+j];break;}for (i=k+1,j=l-1;i}//============================================/* Ham kiem tra duong ngang */int Ktra_DuongNgang(int A[dong][cot],int k,int l,int >D,int >C){int j,m;for (j=l-1,m=1;j>=l-5;j--)if (A[y+k][x+l]==A[y+k][x+j])m++;else{GTD=A[y+k][x+j];break;}for (j=l+1;jint So,mau;So=(Co==X ) ? 1:2;mau=(Co==X ) ? 12:14;if (A[y+k][x+l]==0){A[y+k][x+l]=So;textcolor(mau);putch(Co);if (Ktra_Thang(A,k,l)!=1)switch (Co){case X:Co=O;break;case O:Co=X;break;}}return Co;}void main(){int A[dong][cot],k,l,K_Tra,flag;const dx=2,dy=1;char *Ten[2];char ch,Co;start:textattr(0x07);clrscr();Nhap_HoTen(Ten);printf(Ban %s chon quan co di truoc (X/O)=,Ten[0]);Co=toupper(getch());flag=(Co==X ) ? 0:1;/* Tao gia tri 0 cho mang A[][] */for (k=0;kif (ch==27) goto thoat;if (ch== ){ch=getch();switch (ch){case K:Qua_Trai(l,dx);break; // Traicase M:Qua_Phai(l,dx);break; // Phaicase H:Di_Len(k,dy);break; // Lencase P:Di_Xuong(k,dy);break; // Xuong}} // if (ch== )elseif (ch==13)switch (Co){case X:Co=LuuXuat_QuanCo(A,k,l,Co);case O:Co=LuuXuat_QuanCo(A,k,l,Co);} // switch (Co)K_Tra=Ktra_Thang(A,k,l);}while ((ch!=27) && (K_Tra!=1));gotoxy(50,23);textcolor(13);if ((K_Tra==1) && (flag==0))cprintf(Ban %s da thang !,Ten[A[y+k][x+l]-1]);if ((K_Tra==1) && (flag==1))cprintf(Ban %s da thang !,Ten[2-A[y+k][x+l]]);thoat:gotoxy(50,25);textcolor(11);cprintf(Ban co tiep tuc khong ? ) ;textcolor(7);ch=getch();if (toupper(ch)==Y )goto start;}

Tài liệu được xem nhiều: