Code C++ game caro
Code Cờ carô viết bằng C++
Lưu vào... Báo cáo Thống kê
2019-05-15 2.273
Mình xin trình bày code C++ về trò chơi caro mà ai cũng biết. ở bàn cờ là ma trận do người dùng nhập vào kích thước nxn nhưng phải lớn hơn 5 vì 5 quân cờ mới tính là chiến thắng.
Người chơi sẽ nhập lần lượt luân phiên các vị trí i,j để đánh quân cờ, người chiến thắng là người có 5 quân cờ giống nhau liên tiếp hàng chéo hoặc ngang, dọc.
Sau đây mình xin show code:
#include #include #include #include #include #define max 500 //kêu người dùng nhập kích thước bàn cờ và khởi tạo trạng thái bàn cờ ban đầu là 0. void khoidong(char a[][max],int &m) { printf("Moi ban nhap kich thuoc dong va cot\n"); scanf("%d",&m); while(m<=5) { printf("Moi ban lai nhap kich thuoc dong va cot\n"); scanf("%d",&m); } for(int i=0; i < m; i++) for(int j=0;j < m; j++) { a[0][j]=j; a[i][0]=i; if(i!=0||j!=0) a[i][j]='.'; } } //kiểm tra đã đầy quân cờ trên bàn cờ chưa int isfull(char a[][max],int m) { int dem=0; for(int i=0;i< m;i++) { for(int j=0;j< m;j++) if(i!=0&&j!=0) if(a[i][j]=='.') dem++; } if(dem==0) return 0; return 1; } //hàm người chơi nhập quân cờ, và kiểm tra tính hợp lệ khi chọn ô cần đánh void nhap1(char a[][max],int m,int &i1,int &j1,char s1[]) { printf("\n Moi %s nhap o can danh",s1); printf(" nhap dong:"); scanf("%d",&i1); printf(" nhap cot:"); scanf("%d",&j1); if((i1==100&&j1==100)||(i1==0&&j1==0)) return; while(i1<=0||j1<=0||a[i1][j1]=='X'||a[i1][j1]=='O'||i1>=m||j1>=m) { printf("\n Moi %s nhap lai o can danh",s1); scanf("%d",&i1); scanf("%d",&j1); if((i1==100&&j1==100)||(i1==0&&j1==0)) return; } a[i1][j1]='O'; } void nhap2(char a[][max],int m,int &i2,int &j2,char s2[]) { printf("\n Moi %s nhap o can danh:",s2); printf(" nhap dong:"); scanf("%d",&i2); printf(" nhap cot:"); scanf("%d",&j2); if(i2==100&&j2==100) return; while(i2<=0||j2<=0||a[i2][j2]=='O'||a[i2][j2]=='X'||i2>=m||j2>=m) { printf("\n Moi %s lai nhap o can danh",s2); scanf("%d",&i2); scanf("%d",&j2); if(i2==100&&j2==100) return; } a[i2][j2]='X'; } //kiểm tra có win chưa void xet_dong(char a[][max],int m,char s1[],char s2[],int &win) { int demo=0,demx=0; for(int i=0;i < m;i++) { demo=0; demx=0; for(int j=0;j < m;j++) { if(a[i][j]=='O') demo++; else { if(a[i][j]=='X') { if(demo>=5&&a[i][j-(demo+1)]!='X') demo=5; else demo=0; } if(a[i][j]=='.') if(demo>=5) demo=5; else demo=0; } if(a[i][j]=='X') demx++; else { if(a[i][j]=='O') { if(demx>=5&&a[i][j-(demx+1)]!='O') demx=5; else demx=0; } if(a[i][j]=='.') if(demx>=5) demx=5; else demx=0; } } if(demo>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s1); win=1; } if(demx>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s2); win=1; } } } void xet_cot(char a[][max],int m,char s1[],char s2[],int &win) { int demo=0,demx=0; for(int j=0;j< m;j++) { demo=0; demx=0; for(int i=0;i< m;i++) { if(a[i][j]=='O') demo++; else { if(a[i][j]=='X') { if(demo>=5&&a[i-(demo+1)][j]!='X') demo=5; else demo=0; } if(a[i][j]=='.') if(demo>=5) demo=5; else demo=0; } if(a[i][j]=='X') demx++; else { if(a[i][j]=='O') { if(demx>=5&&a[i-demx+1][j]!='O') demx=5; else demx=0; } if(a[i][j]=='.') if(demx>=5) demx=5; else demx=0; } } if(demo>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s1); win=1; } if(demx>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s2); win=1; } } } void xet_cheo_tren_chinh(char a[][max],int m,char s1[],char s2[],int &win) { int demo=0,demx=0; int i=0,k=0; for(int j=1;j< m;j++) { demo=0; demx=0; k=j; i=0; while(k< m) { if(a[i][k]=='O') demo++; else { if(a[i][k]=='X') { if(demo>=5&&a[i-demo+1][k-demo+1]!='X') demo=5; else demo=0; } if(a[i][k]=='.') if(demo>=5) demo=5; else demo=0; } if(a[i][k]=='X') demx++; else { if(a[i][k]=='O') { if(demx>=5&&a[i-demx+1][k-demx+1]!='O') demx=5; else demx=0; } if(a[i][k]=='.') if(demx>=5) demx=5; else demx=0; } k++; i++; } if(demo>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s1); win=1; } if(demx>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s2); win=1; } } } void xet_cheo_duoi_phu(char a[][max],int m,char s1[],char s2[],int &win) { int demo=0,demx=0; int j=0,k=0; for(int i=1;i< m;i++) { demo=0; demx=0; k=i; j=m-1; while(k< m) { if(a[k][j]=='O') { demo++; } else { if(a[k][j]=='X') { if(demo>=5&&a[k-demo+1][j+demo+1]!='X') demo=5; else demo=0; } if(a[k][j]=='.') if(demo>=5) demo=5; else demo=0; } if(a[k][j]=='X') demx++; else { if(a[k][j]=='O') { if(demx>=5&&a[k-demx+1][j+demx+1]=='O') demx=5; else demx=0; } if(a[k][j]=='.') if(demx>=5) demx=5; else demx=0; } k++; j--; } if(demo>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s1); win=1; } if(demx>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s2); win=1; } } } void xet_cheo_duoi_chinh(char a[][max],int m,char s1[],char s2[],int &win) { int demo=0,demx=0; int j=0,k=0; for(int i=1;i< m;i++) { demo=0; demx=0; k=i; j=0; while(k< m) { if(a[k][j]=='O') demo++; else { if(a[k][j]=='X') { if(demo>=5&&a[k-demo+1][j-demo+1]!='X') demo=5; else demo=0; } if(a[k][j]=='.') if(demo>=5) demo=5; else demo=0; } if(a[k][j]=='X') demx++; else { if(a[k][j]=='O') if(demx>=5&&a[k-demx+1][j-demx+1]!='O') demx=5; else demx=0; if(a[k][j]=='.') if(demx>=5) demx=5; else demx=0; } k++; j++; } if(demo>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s1); win=1; } if(demx>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s2); win=1; } } } void xet_cheo_tren_phu(char a[][max],int m,char s1[],char s2[],int &win) { int demo=0,demx=0; int i=0,k=0; for(int j=1;j< m;j++) { demo=0; demx=0; k=j; i=0; while(k>0) { if(a[i][k]=='O') demo++; else { if(a[i][k]=='X') { if(demo>=5&&a[i-demo+1][k+demo+1]!='X') demo=5; else demo=0; } if(a[i][k]=='.') if(demo>=5) demo=5; else demo=0; } if(a[i][k]=='X') demx++; else { if(a[i][k]=='O') { if(demx>=5&&a[i-demx+1][k+demx+1]!='O') demx=5; else demx=0; } if(a[i][k]=='.') if(demx>=5) demx=5; else demx=0; } k--; i++; } if(demo>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s1); win=1; } if(demx>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s2); win=1; } } } void xet_chinh(char a[][max],int m,char s1[],char s2[],int &win) { int demo=0,demx=0; for(int i=0;i< m;i++) { if(a[i][i]=='X') demx++; else { if(a[i][i]=='O') { if(demx>=5&&a[i-demx+1][i-demx+1]!='O') demx=5; else demx=0; } if(a[i][i]=='.') if(demx>=5) demx=5; else demx=0; } if(a[i][i]=='O') demo++; else { if(a[i][i]=='X') { if(demo>=5&&a[i-demo+1][i-demo+1]!='X') demo=5; else demo=0; } if(a[i][i]=='.') if(demo>=5) demo=5; else demo=0; } } if(demo>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s1); win=1; } if(demx>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s2); win=1; } } void xet_phu(char a[][max],int m,char s1[],char s2[],int &win) { int demo=0,demx=0; for(int i=0;i< m;i++) { demx=0; demo=0; for(int j=0;j< m;j++) { if(i+j==m-1) { if(a[i][j]=='O') demo++; else { if(a[i][j]=='X') { if(demo>=5&&a[i-demo+1][j+demo+1]!='X') demo=5; else demo=0; } if(a[i][j]=='.') if(demo>=5) demo=5; else demo=0; } if(a[i][j]=='X') demx++; else { if(a[i][j]=='O') { if(demx>=5&&a[i-demx+1][j+demx+1]!='O') demx=5; else demx=0; } if(a[i][j]=='.') if(demx>=5) demx=5; else demx=0; } } } if(demo>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s1); win=1; } if(demx>=5) { printf("\nNGUOI CHOI %s DA WIN\n",s2); win=1; } } } //xuất ra bàn cờ void xuat(char a[][max],int m) { printf("\nban co la:\n"); for(int i=0;i< m;i++) { for(int j=0;j< m;j++) { if(i==0||j==0) printf("%4d",a[i][j]); else printf("%4c",a[i][j]); } printf("\n"); printf("\n"); } } //hàm hướng dẫn người chơi void huong_dan() { printf("Ban lan luot nhap toa do=(so dong,so cot)\n"); printf("Ban khong duoc nhap len toa do da nhap,neu ban nhap sai se nhap lai\n"); printf("Neu ben nao co >=5 quan co cua minh giong nhau lien tiep thi se thang\n "); printf("VD:XXXXX->Win\n"); printf("Neu ban bi doi phuong chan 2 dau khi ben trong co 5 quan co cua minh nhung van chua Thang\n"); printf("VD:OXXXXXO->NO WIN\n"); printf("Neu ban bi doi phuong chan 2 dau khi ben trong co 5 quan co cua minh nhung khong sat thi se Thang\n"); printf("VD OXXXXX O->WIN\n"); printf("Neu ban muon Thoat, exit= so dong=100 va so cot=100\n"); printf("toa do chet(100,100)\n"); printf("Neu muon choi lai thi nhap: dong:0 va cot 0\n"); printf("(0,0)\n"); printf("Neu ma tat ca cac o bi danh het ma chua co nguoi thang thi 2 ben se hoa\n"); printf("thank you! chuc ban choi vui(^_^)\n"); printf(" 2-Bat Dau Choi\n"); printf(" 3-Thoat\n"); printf("Ban muon chon:"); } void main() { int k,n,win=0; char s1[20],s2[20],kt; char a[max][max]; int m,i1,j1,i2,j2; printf("Xin nhap yeu cau\n"); printf(" 1-Huong Dan Choi\n"); printf(" 2-Bat Dau Choi\n"); printf(" 3-Thoat\n"); printf("Ban muon chon:"); scanf("%d",&n); do{ switch(n) { case 1: huong_dan(); scanf("%d",&n); break; case 2: printf("\nGAME START\n"); printf("Nhap ten cua nguoi choi thu 1: "); scanf("%s",s1); printf("Nhap ten cua nguoi choi thu 2: "); scanf("%s",s2); khoidong(a,m); system("cls"); xuat(a,m); do { k=isfull(a,m); if(k==1) { nhap1(a,m,i1,j1,s1); } system("cls"); xuat(a,m); xet_dong(a,m,s1,s2,win); xet_cot(a,m,s1,s2,win); xet_cheo_tren_chinh(a,m,s1,s2,win); xet_cheo_tren_phu(a,m,s1,s2,win); xet_cheo_duoi_phu(a,m,s1,s2,win); xet_cheo_duoi_chinh(a,m,s1,s2,win); xet_chinh(a,m,s1,s2,win); xet_phu(a,m,s1,s2,win); if(win==1||k==0||(i1==100&&j1==100)||(i2==100&&j2==100)||(i1==0&&j1==0)||(i2==0&&j2==0)) { printf("ban co muon choi lai khong? Y/N \n"); scanf("%s",&kt); if((i1==0&&j1==0)||(i2==0&&j2==0)||kt=='Y'||kt=='y'||k==0) { if(k==0) printf("%s HOA %s\n",s1,s2); win=0; break; } else { return; } } k=isfull(a,m); if(k==1) { nhap2(a,m,i2,j2,s2); } system("cls"); xuat(a,m); xet_dong(a,m,s1,s2,win); xet_cot(a,m,s1,s2,win); xet_cheo_tren_chinh(a,m,s1,s2,win); xet_cheo_tren_phu(a,m,s1,s2,win); xet_cheo_duoi_phu(a,m,s1,s2,win); xet_cheo_duoi_chinh(a,m,s1,s2,win); xet_chinh(a,m,s1,s2,win); xet_phu(a,m,s1,s2,win); if(win==1||k==0||(i1==100&&j1==100)||(i2==100&&j2==100)||(i1==0&&j1==0)||(i2==0&&j2==0)) { printf("ban co muon choi lai khong? Y/n \n"); scanf("%s",&kt); if((i1==0&&j1==0)||(i2==0&&j2==0)||kt=='Y'||kt=='y'||k==0) { if(k==0) printf("%s HOA %s\n",s1,s2); win=0; break; } else { return; } } } while(k==1&&win==0); break; case 3: break; default: printf("Ban da chon sai\n Moi ban nhap lai:"); scanf("%d",&n); } }while(n!=3); }Chủ đề liên quan
Kinh Nghiệm
phạm anh phiên - phamanhphien - Level 10
Video liên quan
Đăng ký:
Đăng Nhận xét (Atom)
Bài đăng phổ biến
-
Như chúng ta cũng biết, chiếc điện thoại từ lâu đã trở thành một vật bất ly thân trong đời sống xã hội ngày nay. Để tiện cho công việc cũng ...
-
These tips are divided into IELTS listening exam specific skills / tips and then general English language listening skills. A lot of student...
-
Công Thức Chế Tạo Đồ Trong Minecraft 1.16.4 Các công thức chế tạo đồ cơ bản Items Nguyên liệu Cách chế tạo Công dụng GỗThân gỗ Xây dựng nhà ...
-
Nồi chiên không dầu 7L Sharp Thái Lan 1800w chiên nguyên con gà Giá bán : 2.650.000 khuyến mại còn 1.400.000 tại Hệ thống Điện Máy Đăng Khoa...
-
Đa số mọi người ngày nay đều mở tài khoản ngân hàng để có thể thực hiện các giao dịch tài chính. Hơn nữa, họ có thể sử dụng ngân hàng số MBB...
-
Home/Ngân Hàng/ Cách đăng ký kích hoạt E-Mobile Banking của Agribank online qua điện thoại Ngân Hàng Cách đăng ký kích hoạt E-Mobile Banking...
-
Share This: I recently installed an SSD into my laptop and did a clean install of Windows 10. Occasionally after some usage, Windows 10 woul...
-
Chăm sóc da với serum không khó nhưng cũng không hoàn toàn dễ mà đòi hỏi bạn nên có tìm hiểu trước, xây dựng quy trình chăm sóc da khoa học....
-
HÌNH THỨC GÕ ĐỆM KHI HÁT CÁC CA KHÚC CHO TRẺ MẦM NON VÀ CÁCH HƯỚNG DẪN SINH VIÊN THỰC HÀNH HIỆU QUẢ Âm nhạc là một trong những hoạt động ...
-
Có nên cho trẻ ngủ lúc chiều tối không là câu hỏi của nhiều bà mẹ vì cứ đến thời điểm này, con thường hay buồn ngủ và không chịu ăn bữa tối....
Danh sách Blog của Tôi
Labels
- Android
- Apple
- Bài tập
- Bàn phím
- Bánh
- Bao lâu
- Bao nhiêu
- Bí quyết
- Cách
- Chia sẻ
- Chuột
- Có nên
- Công Nghệ
- Công thức
- Cpu
- Cryto
- Danh sách
- Dịch
- Đại học
- Đánh giá
- Đẹp
- Eth
- File
- Film
- Gái
- Game
- Giá
- Giá bán
- Giá rẻ
- Giới Tính
- Gpu
- Gym
- Học
- Học Tốt
- Hỏi Đáp
- Hướng dẫn
- Ios
- Ipad
- Iphone
- Khoa Học
- Khỏe
- Khỏe Đẹp
- Kinh nghiệm
- Là gì
- Làm sao
- Laptop
- Lg
- List
- Macbook
- Màn hình
- Máy
- Máy tính
- Mẹo
- Mẹo Hay
- Món
- Món Ngon
- Mua Sắm
- Nấu
- Ngân hà
- Nghĩa là gì
- Nghiên cứu
- Ngoại ngữ
- Ngôn ngữ
- Nhà
- Ở đâu
- Phát minh
- Phân tích
- Phim
- Phụ nữ
- Phương pháp
- Phương trình
- Review
- Sách
- Samsung
- Sáng kiến
- So sánh
- Son
- Tại sao
- Thể dục
- Thế nào
- Thị trường
- Thịt
- Thuốc
- Tiếng anh
- Tiếng hàn
- Tiếng trung
- Top
- Top List
- Tốt nhất
- Trade
- Trai
- Trái đất
- Trò chơi
- Trường lớp
- Váy
- Vì sao
- Xây
- Xây Đựng
0 nhận xét: