本文主要是介绍[C++] 大一课设-五子棋(含人机对弈)-Qt版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
大一时写的课设,今天翻到,在此保存。
若有帮到您最好,不足之处请多多包涵,欢迎指正错误。
代码
下载链接。没有币可以+我微信要(geodoer-top)
人机对弈的核心
【赢法数组】wins[][][]三维数组记录五子棋的所有赢法
#include<iostream>
using namespace std;
const int N=15;
const int MAX=1000;
int main() {int count=0;int wins[N][N][MAX];for (int i=0; i<N; i++)for (int j=0; j<N; j++)for (int k=0; k<572; k++) wins[i][j][k] = 0;for (i=0; i<N; i++) {for (int j=0; j<N-4; j++) {for (int k=0; k<5; k++)wins[i][j+k][count] = 1;count++;}}for (i=0; i<N; i++) {for (int j=0; j<N-4; j++) {for (int k=0; k<5; k++)wins[j+k][i][count] = 1;count++;}}for (i=0; i<N-4; i++) {for (int j=0; j<N-4; j++) {for (int k=0; k<5; k++)wins[i+k][j+k][count] = 1;count++;}} for (i=0; i<N-4; i++) {for (int j=N-1; j>3; j--) {for (int k=0; k<5; k++)wins[i+k][j-k][count] = 1;count++;}}printf("%d",count);for (int k=0; k<count; k++) {printf("%d\n",k);for (int i=0; i<N; i++) {for (int j=0; j<N; j++) {printf("%d",wins[i][j][k]);}printf("\n");}}return 0;
}
这篇关于[C++] 大一课设-五子棋(含人机对弈)-Qt版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!