Mong được Góp ý Cho Code Cờ Caro 3x3 - Programming Trang chủ » Bàn Cờ Caro 3x3 » Mong được Góp ý Cho Code Cờ Caro 3x3 - Programming Có thể bạn quan tâm Bán Cọc Bê Tông 200x200 Bán Cọc Bê Tông đúc Sẵn Bán Cọc Bê Tông Làm Hàng Rào Bản Cốc Cốc Bản Cốc Cốc Mới Nhất Mong được góp ý cho code cờ Caro 3x3 programming c++ Kamisama (Nguyễn Minh Đức) February 27, 2022, 9:20am #1 Chào anh chị =-=’ Em là mem mới, hy vọng sẽ được các anh chị giúp đỡ. Tình hình là em mới tạo được trò cờ Caro (bản 3x3) cơ mà em thấy phần code kiểm tra người thắng nó hơi dài và không được khả thi khi mở rộng bàn cờ ra cho lắm Mong mọi người góp ý =-=’ #include<iostream> #include<stdio.h> #include <conio.h> int winner(void); bool blank(void); char a[3][3]={'*','*','*','*','*','*','*','*','*'}; using namespace std; int main(){ system("cls"); int i,j; cout<<" GAME CO CARO CHO 2 NGUOI\n"; // in ban co 3x3 cout<<" __1__ __2__ __3__ "; cout<<"\n"; for(i=0;i<6;i++){ for(j=0;j<3;j++){ if(i%2==0) cout<<" | |"; else if(j==0) cout<<i/2+1<<" |__"<<a[i/2][j]<<"__| "; else cout<<" |__"<<a[i/2][j]<<"__| "; } cout<<"\n"; } bool end=false; int k=1; //Luot choi cua X va Y while(end==false){ int x,y; cout<<"Nhap toa do:\n"; cout<<"x= "; cin>>x; cout<<"y= "; cin>>y; while((x>3||x<1)||(y>3||y<1)||a[y-1][x-1]!='*'){ cout<<"Nhap lai toa do:\n"; cout<<"x= "; cin>>x; cout<<"y= "; cin>>y; } system("cls"); if(k%2==0) a[y-1][x-1]='O'; else a[y-1][x-1]='X'; k++; cout<<" __1__ __2__ __3__ "; cout<<"\n"; for(i=0;i<6;i++){ for(j=0;j<3;j++){ if(i%2==0) cout<<" | |"; else { if(j==0) cout<<i/2+1<<" |__"<<a[i/2][j]<<"__| "; else cout<<" |__"<<a[i/2][j]<<"__| "; } } cout<<"\n"; } int c=winner(); if(c==0){ cout<<"Hoa\n"; char check; cout<<"Ban co muon choi lai? (c/k)"; cin>>check; if(check=='k') end=true; else{ for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]='*'; system("cls"); cout<<" __1__ __2__ __3__ "; cout<<"\n"; for(i=0;i<6;i++){ for(j=0;j<3;j++){ if(i%2==0) cout<<" | |"; else if(j==0) cout<<i/2+1<<" |__"<<a[i/2][j]<<"__| "; else cout<<" |__"<<a[i/2][j]<<"__| "; } cout<<"\n"; } } } if(c==1){ cout<<"X thang\n"; char check; cout<<"Ban co muon choi lai? (c/k)"; cin>>check; if(check=='k') end=true; else{ for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]='*'; system("cls"); cout<<" __1__ __2__ __3__ "; cout<<"\n"; for(i=0;i<6;i++){ for(j=0;j<3;j++){ if(i%2==0) cout<<" | |"; else if(j==0) cout<<i/2+1<<" |__"<<a[i/2][j]<<"__| "; else cout<<" |__"<<a[i/2][j]<<"__| "; } cout<<"\n"; } } } if(c==2){ cout<<"Y thang\n"; char check; cout<<"Ban co muon choi lai? (c/k)"; cin>>check; if(check=='k') end=true; else{ for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]='*'; system("cls"); cout<<" __1__ __2__ __3__ "; cout<<"\n"; for(i=0;i<6;i++){ for(j=0;j<3;j++){ if(i%2==0) cout<<" | |"; else if(j==0) cout<<i/2+1<<" |__"<<a[i/2][j]<<"__| "; else cout<<" |__"<<a[i/2][j]<<"__| "; } cout<<"\n"; } } } } return 0; } //Ham check nguoi thang int winner(void){ int i,j,s=-1; for(i=0;i<=2;i++){ if(a[i][0]==a[i][1]&&a[i][1]==a[i][2]&&a[i][2]=='X') s=1; if(a[i][0]==a[i][1]&&a[i][1]==a[i][2]&&a[i][2]=='O') s=2; } for(i=0;i<=2;i++){ if(a[0][i]==a[1][i]&&a[1][i]==a[2][i]&&a[2][i]=='X') s=1; if(a[0][i]==a[1][i]&&a[1][i]==a[2][i]&&a[2][i]=='O') s=2; } if(a[0][0]==a[1][1]&&a[1][1]==a[2][2]&&a[2][2]=='X') s=1; if(a[0][2]==a[1][1]&&a[1][1]==a[2][0]&&a[2][0]=='X') s=1; if(a[0][0]==a[1][1]&&a[1][1]==a[2][2]&&a[2][2]=='O') s=2; if(a[0][2]==a[1][1]&&a[1][1]==a[2][0]&&a[2][0]=='O') s=2; if(blank()==false) s=0; return s; } //Ham check o trong trong ban co bool blank(void){ int i,j; for(i=0;i<=2;i++) for(j=0;j<=2;j++) if(a[i][j]=='*') return true; return false; } noname00 (HK boy) August 5, 2017, 5:07pm #2 Kamisama: code kiểm tra người thắng Bạn dựa vào quy tắc tính người thắng để viết 1 hàm checkWin() để xem có người nào thắng hay không. Kiểm tra có dãy các ô ngang liên tiếp nào thoả mãn hay không. for i = 0 -> n-1 for j = 0 -> n-1 if (a[i][j] == a[i][j+1] == a[i][j+2] == ...) return true Kiểm tra có dãy các ô dọc liên tiếp nào thoả mãn hay không. for i = 0 -> n-1 for j = 0 -> n-1 if (a[i][j] == a[i+1][j] == a[i+2][j] == ...) return true Kiểm tra có hàng chéo nào thoả mãn hay không. for i = 0 -> n-1 for j = 0 -> n-1 if (a[i][j] == a[i+1][j+1] == a[i+2][j+2] == ...) // kiểm tra theo đường chéo chính return true for i = 0 -> n-1 for j = 0 -> n-1 if (a[i][j] == a[i+1][j-1] == a[i+2][j-2] == ...) // kiểm tra theo đường chéo phụ return true Bạn nên lưu các kí tự dưới dạng mảng 2 chiều n x n. Muốn in bàn cờ, hãy viết 1 hàm print() riêng. 3 Likes Kamisama (Nguyễn Minh Đức) August 5, 2017, 4:58pm #3 wow, em cảm ơn nhiều vtrnnhlinh (Linh) February 27, 2022, 9:20am #4 thật sự mình rất ngại phải nói điều này :V nhưng vì sự văn minh của diễn đàn, mình mong bạn có thể “thả tim” và check solution cho anh @noname00 1 Like Kamisama (Nguyễn Minh Đức) August 5, 2017, 5:08pm #5 =-=’, sr, em mới vô nên có nhìu thứ chưabiết =-=’ Kamisama (Nguyễn Minh Đức) August 6, 2017, 9:27am #6 cho em hỏi là đường chéo chính với đường chéo phụ là gì vậy ạ =-=’ noname00 (HK boy) August 6, 2017, 9:29am #7 Đường chéo chính và đường chéo phụ trong mảng hai chiều? programming Như tiêu đề, mình đang bắt đầu học c++ và không hiểu đường chéo chính và đường chéo phụ trong mảng của C++ là gì. Mong ai đã học qua và hiểu phần này giải thích cho mình!!! DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Bàn Cờ Caro 3x3 Game Chơi Cờ Caro - Tic Tac Toe 3x3, 5x5, 7x7 Bàn Cờ Caro 3x3 - BeeCost Bộ Cờ Caro - BeeCost Cách để Chơi Cờ Ca Rô Luôn Thắng - WikiHow [Part 1] Tạo Game Cờ Caro 3x3(TicTacToe) Cơ Bản Bằng Code Ruby . Cách Chơi Caro 3X3 ? Cách Chơi Trò Chơi Cờ Caro Luật Chơi Cờ Caro 3 X 3 Cơ Bản Cho Người Mới Chơi Game Tic Tac Toe 24h - Game Cờ Caro Kiểu Mới - Game24h Cách Chơi Caro 3X3 (9 Cách Chơi Cờ Caro Online, 3x3, 5x5 Và Mẹo đánh Caro đỉnh Như Cao ... Cờ Caro Kết Hợp Cờ Vua Có Hộp Đựng Và Làm Bàn Cờ Tiện Lợi ... BoardGame Cờ Sudoku Nhật Bản Kết Hợp Cờ Caro Bằng Gỗ ...