intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Phạm Quang Nhiệm | Ngày: | Loại File: DOC | Số trang:6

1.999
lượt xem
209
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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++

Chủ đề:
Lưu

Nội dung Text: Lập trình trò chơi Caro bằng ngôn ngữ C++

  1. 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++ - Trò chơi đối kháng (two-agent,conflicting game (?)) : Gồm 2 người chơi, đối thủ này sẽ 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ỗi nướ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ạn nướ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 đối thủ 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ác là Tic Tac Toe , nếu bổ sung thêm luật cho nó thì có thể đổi tên là Penta,Pentix (có ăn quân) ... Ngoài ra, có luật thi đấu mà người ta đã chứng minh đuợc người đi truớc bao giờ 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" sau 1. Giới thiệu Phá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
  2. //============================================ /* 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; }
  3. 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
  4. } //============================================ /* 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;j
  5. int 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;k
  6. if (ch==27) goto thoat; if (ch=='\0' ) { ch=getch(); switch (ch) { case 'K': Qua_Trai(l,dx); break; // Trai case 'M': Qua_Phai(l,dx); break; // Phai case 'H': Di_Len(k,dy); break; // Len case 'P': Di_Xuong(k,dy); break; // Xuong } } // if (ch=='\0' ) else if (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; }
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2