C++五子棋带光标控制



#include<windows.h>
#include <conio.h>


#include<iostream>
#include<cstdlib> 
using namespace std;
const char outstr[11][4]={"┌","┬","┐","├","┼","┤","└","┴","┘","○","●"};
int com[15][15],luozi[15][15];
int c,d;


void jushi()                                   //这是判断落子重要性的函数 
{
      int x,y,i,m,n,lianzi1=0,lianzi2=0,life=0;
      memset(com,0,sizeof(com));//初始化数组
      for(x=0;x<=14;x++)
      for(y=0;y<=14;y++)
      {
          if(luozi[x][y]==0)//落子的选取
          {
              for(m=-1;m<=1;m++) 
              for(n=-1;n<=1;n++)
              {
              if(m!=0 || n!=0)
              {       
                      for(i=1;i<=4;i++)
                      {
 //判断棋盘左边四条线上面的相同类型的棋子的数量
                           if( x+i*m>=0 && x+i*m<=14 && y+i*n>=0 && y+i*n<=14 && luozi[x+i*m][y+i*n]==1 )
//递增连子数
                           {lianzi1++;}
                           else
                           if(luozi[x+i*m][y+i*n]==0)
                           {life++; break;}
                           else
                           {break;}
}                    
                      for(i=-1;i>=-4;i--)
                      {
 //判断棋盘右边边四条线上面的相同类型的棋子的数量
                           if( x+i*m>=0 && x+i*m<=14 && y+i*n>=0 && y+i*n<=14 && luozi[x+i*m][y+i*n]==1 )
                           {lianzi1++;}
                           else
                           if(luozi[x+i*m][y+i*n]==0)
                           {life++; break;}
                           else
                           {break;}
                      }
 //获取人的棋每个点上的权重,连子数越多,权重越大
                      if(lianzi1==1)    {com[x][y]+=1;}//若连子数为1当前权重加1
                      else if(lianzi1==2) 
                               {
                                    if(life==1)   {com[x][y]+=5;}//若连子数2,生命值为1 为当前权重加5
                                    else if(life==2)   {com[x][y]+=10;}//若连子数2,生命值为2 为当前权重加10
}
                      else if(lianzi1==3)
                               {
                                    if(life==1)   {com[x][y]+=20;}//若连子数3,
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值