五子棋ai一版(自制)源代码
#include<iostream> //导入输入输出库
#include<stdlib.h> //导入系统库
#include<time.h> // 导入时间库
using namespace std; //命名空间
int jf(){ //定义函数玩家先下
cout<<"请开始游戏,输入坐标:x空格y"<<endl;
int qp[15][15];
for(int i = 0;i<15;i++){
for(int j=0;j<15;j++){
qp[i][j]=-1;
}
}//棋盘初始化
int a,b,a1,b1;
while(1){ //开始下棋
cin>>a>>b; //输入坐标
a--;
b--;
if(a<0 || a>14 || b<0||b>14){
cout<<"参数错误:您已超出棋盘范围请查阅后再输入:"<<endl;
}
else if(qp[a][b]==0 || qp[a][b] == 1){
cout<<"参数错误:该位置已有棋子"<<endl;
} //判断用户是否违规操作
else{
qp[a][b]=1;
for(int i = 0;i<15;i++){
for(int j = 0;j<15;j++){
if(qp[i][j]==-1){
cout<<".";
}
else if(qp[i][j]==0){
cout<<"x";
}
else {
cout<<"o";
}
}
cout<<endl;
}
a1=rand() % 15+1;
b1=rand() % 15+1;
a1=a1-1;
b1=b1-1;
while(qp[a1-1][b1-1] ==1 && qp[a1-1][b1-1] == 0){
a1=rand() % 15+1;
b1=rand() %15+1;
}//计算位置
qp[a1][b1]=0;
system("pause");
system("cls");
for(int i = 0;i<15;i++){
for(int j = 0;j<15;j++){
if(qp[i][j]==-1){
cout<<".";
}
else if(qp[i][j]==0){
cout<<"x";
}
else {
cout<<"o";
}
}
cout<<endl;
}//计算机输出坐标和棋盘
cout<<a1<<" "<<b1<<endl;
a1--;
b1--;
}
}
return 0;
}
int wjf(){// 定义函数计算机先
cout<<"请开始游戏,输入坐标:x空格y"<<endl;
int fc1,fc2;
int qp[15][15];
for(int i = 0;i<15;i++){
for(int j=0;j<15;j++){
qp[i][j]=-1;
}
}//初始化棋盘
int a,b,a1,b1;
a1=rand() % 15+1;
b1=rand() % 15+1;
while(qp[a1-1][b1-1] ==1 && qp[a1-1][b1-1] == 0){
a1=rand() % 15+1;
b1=rand() %15+1;
}//随机位置
a1=a1-1;
b1=b1-1;
qp[a1][b1]=0;
system("pause");
system("cls");
for(int i = 0;i<15;i++){
for(int j = 0;j<15;j++){
if(qp[i][j]==-1){
cout<<".";
}
else if(qp[i][j]==0){
cout<<"x";
}
else {
cout<<"o";
}
}
cout<<endl;
}//输出棋盘
cout<<a1+1<<" "<<b1+1<<endl;
while(1){
cin>>a>>b;
a=a-1;
b=b-1;
if(a<0 || a>14 || b<0 || b>14){
cout<<"参数错误:您已超出棋盘范围请查阅后再输入:"<<endl;
}
else if(qp[a][b]==0 || qp[a][b] == 1){
cout<<"参数错误:该位置已有棋子请查阅后再输入:"<<endl;
} //判断用户是否违规操作
else{
qp[a][b]=1;
for(int i = 0;i<15;i++){
for(int j = 0;j<15;j++){
if(qp[i][j]==-1){
cout<<".";
}
else if(qp[i][j]==0){
cout<<"x";
}
else {
cout<<"o";
}
}
cout<<endl;
}//输出棋盘
a1=rand() % 15+1;
b1=rand() % 15+1;
a1=a1-1;
b1=b1-1;
while(qp[a1-1][b1-1] ==1 || qp[a1-1][b1-1] == 0){
a1=rand() % 15+1;
b1=rand() %15+1;
}//随机位置
a1=a1-1;
b1=b1-1;
fc1=a1+1;
fc2=b1+1;
qp[a1][b1]=0;
system("pause");
system("cls");
for(int i = 0;i<15;i++){
for(int j = 0;j<15;j++){
if(qp[i][j]==-1){
cout<<".";
}
else if(qp[i][j]==0){
cout<<"x";
}
else {
cout<<"o";
}
}
cout<<endl;
}//输出棋盘
cout<<fc1<<" "<<fc2<<endl;
}
}
return 0;
}
int main(){
srand((unsigned int)time(NULL));
system("title 五子棋ai");
int a0;
cout<<"玩家先:输入1。计算机先:输入2"<<endl;//让用户选择模式
cin>>a0;
if(a0 == 1){
jf();
}
else{
wjf();
}
return 0;
}