栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C+EasyX = 俄罗斯方块——<二>

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C+EasyX = 俄罗斯方块——<二>

void Changemove()
{
    void unmove();
    //void getCoor();
    //getCoor();
    void drawCoor();
    drawCoor();
    switch (dir)
    {
    case 1:
 switch (ch)
 {
 case 1:
 case 2:
     //能移动
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] - 1] = 1;
     }
     //不能移动
     break;
 case 3:
     //能移动
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && coor.CCol[3] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] - 1] = 1;
     }
     break;
 case 4:
     //能移动
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && coor.CCol[2] > 0)
     {
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] - 1] = 1;
     }
     //不能移动
     break;
 case 5:
     //能移动
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] - 1] = 1;
     }
     //不能移动
     break;
 case 6:
     //能移动
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] - 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] - 1] = 1;
     }
     //不能移动
     break;
 case 7:
     //能移动
     if (Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 & Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && coor.CCol[1] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
     }
     break;
 case 8:
     //能
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] - 1] = 1;
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
     }
     break;
 case 9:
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] - 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
     }
     break;
 case 10:
     //能移动
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] - 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] - 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
     }
     //不能移动
     break;
 case 11:
     //能移动
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] - 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
     }
     break;
 case 12:
     //能
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && coor.CCol[2] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] - 1] = 1;
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
     }
     break;
 case 13:
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
     }
     break;
 case 14:
     for (int i = 0; i < 4; i++)
     {
  if (Map[coor.CRow[i]][coor.CCol[i] - 1] == 0)
  {
      if (coor.CCol[0] > 0)
      {
   if (i == 3)
   {
Map[coor.CRow[0]][coor.CCol[0]] = 0;
Map[coor.CRow[1]][coor.CCol[1]] = 0;
Map[coor.CRow[2]][coor.CCol[2]] = 0;
Map[coor.CRow[3]][coor.CCol[3]] = 0;
Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
Map[coor.CRow[2]][coor.CCol[2] - 1] = 1;
Map[coor.CRow[3]][coor.CCol[3] - 1] = 1;
   }
   continue;
      }
  }
     }
     break;
 case 15:
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
     }
     break;
 }
 break;
    case 2:
 switch (ch)
 {
 case 1:
 case 2:
     //能移动
     if (Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[3] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
     }
     //不能移动
     break;
 case 3:
     //能移动
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[0] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] + 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
     }
     break;
 case 4:
     //能移动
     if (Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[1] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
     }
     //不能移动
     break;
 case 5:
     //能移动
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[3] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] + 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
     }
     //不能移动
     break;
 case 6:
     //能移动
     if (Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[3] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
     }
     //不能移动
     break;
 case 7:
     //能移动
     if (Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 & Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && coor.CCol[0] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
     }
     break;
 case 8:
     //能
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[3] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0] + 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
     }
     break;
 case 9:
     if (Map[coor.CRow[2]][coor.CCol[2] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[2] < 9)
     {
  Map[coor.CRow[2]][coor.CCol[2] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
     }
     break;
 case 10:
     //能移动
     if (Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[1] < 9)
     {
  Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
     }
     //不能移动
     break;
 case 11:
     //能移动
     if (Map[coor.CRow[2]][coor.CCol[2] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[3] < 9)
     {
  Map[coor.CRow[2]][coor.CCol[2] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
     }
     break;
 case 12:
     //能
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[0] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0] + 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
     }
     break;
 case 13:
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[3] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0] + 1] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
     }
     break;
 case 14:
     for (int i = 0; i < 4; i++)
     {
  if (Map[coor.CRow[i]][coor.CCol[i] + 1] == 0)
  {
      if (coor.CCol[0] < 9)
      {
   if (i == 3)
   {
Map[coor.CRow[0]][coor.CCol[0]] = 0;
Map[coor.CRow[1]][coor.CCol[1]] = 0;
Map[coor.CRow[2]][coor.CCol[2]] = 0;
Map[coor.CRow[3]][coor.CCol[3]] = 0;
Map[coor.CRow[0]][coor.CCol[0] + 1] = 1;
Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
Map[coor.CRow[2]][coor.CCol[2] + 1] = 1;
Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
   }
      }
  }
     }
     break;
 case 15:
     if (Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[3] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
     }
     break;
 }
 break;
    //变形
    case 3:
 switch (ch)
 {
 case 2:
     if (Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && Map[coor.CRow[0] - 1][coor.CCol[0]] == 0 && Map[coor.CRow[1] - 1][coor.CCol[1]] == 0)
     {
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[1] - 1][coor.CCol[1]] = 1;
  Map[coor.CRow[0] + 1][coor.CCol[0]] = 1;
  ch = 3;
     }
     break;
 case 3:
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && coor.CCol[0] < 9)
     {
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] + 1] = 1;
  ch = 2;
     }
     break;
 case 4:
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[1] + 1][coor.CCol[1]] == 0 && Map[coor.CRow[0]][coor.CCol[0] - 1] == 0)
     {
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[0] - 1][coor.CCol[0]] = 1;
  Map[coor.CRow[1] + 1][coor.CCol[1]] = 1;
  ch = 5;
     }
     break;
 case 5:
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] + 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
  ch = 4;
     }
     break;
 case 6:
     if (Map[coor.CRow[0] - 1][coor.CCol[0]] == 0 && Map[coor.CRow[0] + 1][coor.CCol[0]] == 0 && Map[coor.CRow[1] - 1][coor.CCol[1]] == 0 && Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && coor.CCol[1] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] + 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] - 1] = 1;
  ch = 7;
     }
     break;
 case 7:
     if (Map[coor.CRow[0] - 1][coor.CCol[0] - 1] == 0 && Map[coor.CRow[0] - 1][coor.CCol[0] - 2] == 0 && Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[0]][coor.CCol[0] - 2] == 0)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[0] - 1][coor.CCol[0] - 1] = 1;
  ch = 8;
     }
     break;
 case 8:
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[2] + 1][coor.CCol[2]] == 0 && Map[coor.CRow[3] + 1][coor.CCol[3]] == 0 && Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
  Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
  Map[coor.CRow[2]][coor.CCol[2] - 1] = 1;
  ch = 9;
     }
     break;
 case 9:
     if (Map[coor.CRow[0] - 1][coor.CCol[0]] == 0 && Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && Map[coor.CRow[1] - 1][coor.CCol[1]] == 0 && Map[coor.CRow[2] + 1][coor.CCol[2]] == 0)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0] - 1][coor.CCol[0]] = 1;
  Map[coor.CRow[1] - 1][coor.CCol[1]] = 1;
  Map[coor.CRow[1] + 1][coor.CCol[1]] = 1;
  ch = 6;
     }
     break;
 case 10:
     if (Map[coor.CRow[0] - 1][coor.CCol[0]] == 0 && Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] + 1] == 0 && Map[coor.CRow[1] - 1][coor.CCol[1]] == 0 && Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && coor.CCol[0] > 0)
     {
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] - 1] = 1;
  Map[coor.CRow[1] + 1][coor.CCol[1]] = 1;
  ch = 11;
     }
     break;
 case 11:
     if (Map[coor.CRow[0] - 1][coor.CCol[0]] == 0 && Map[coor.CRow[0] + 1][coor.CCol[0]] == 0 && Map[coor.CRow[1] - 1][coor.CCol[1]] == 0 && Map[coor.CRow[1] + 1][coor.CCol[1]] == 0 && Map[coor.CRow[2] - 1][coor.CCol[2]] == 0 && Map[coor.CRow[2]][coor.CCol[2] + 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[2] - 1][coor.CCol[2]] = 1;
  Map[coor.CRow[3]][coor.CCol[3] - 1] = 1;
  ch = 12;
     }
     break;
 case 12:
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[2] - 1][coor.CCol[2]] == 0 && Map[coor.CRow[2] + 1][coor.CCol[2]] == 0 && Map[coor.CRow[3] + 1][coor.CCol[3]] == 0 && Map[coor.CRow[3]][coor.CCol[3] + 1] == 0 && coor.CCol[0] < 9)
     {
  Map[coor.CRow[0]][coor.CCol[0]] = 0;
  Map[coor.CRow[1]][coor.CCol[1]] = 0;
  Map[coor.CRow[2] - 1][coor.CCol[2]] = 1;
  Map[coor.CRow[3]][coor.CCol[3] + 1] = 1;
  ch = 13;
     }
     break;
 case 13:
     if (Map[coor.CRow[0]][coor.CCol[0] - 1] == 0 && Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[1] + 1][coor.CCol[1]] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && Map[coor.CRow[2] + 1][coor.CCol[2]] == 0 && Map[coor.CRow[3] + 1][coor.CCol[3]] == 0 && coor.CRow[3] < 23)
     {
  Map[coor.CRow[2]][coor.CCol[2]] = 0;
  Map[coor.CRow[3]][coor.CCol[3]] = 0;
  Map[coor.CRow[0]][coor.CCol[0] + 1] = 1;
  Map[coor.CRow[1] + 1][coor.CCol[1]] = 1;
  ch = 10;
     }
     break;
 case 14:
     if (Map[coor.CRow[0]][coor.CCol[0] + 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] - 1] == 0 && Map[coor.CRow[1]][coor.CCol[1] + 1] == 0 && Map[coor.CRow[2]][coor.CCol[2] - 1] == 0 && Map[coor.CRow[3]][coor.CCol[3] - 1] == 0)
     {
  if (coor.CCol[0] > 1 && Map[coor.CRow[1]][coor.CCol[1] - 2] == 0 && coor.CCol[3] < 9)
  {
      Map[coor.CRow[0]][coor.CCol[0]] = 0;
      Map[coor.CRow[2]][coor.CCol[2]] = 0;
      Map[coor.CRow[3]][coor.CCol[3]] = 0;
      Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
      Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
      Map[coor.CRow[1]][coor.CCol[1] - 2] = 1;
      ch = 15;
  }
  else if(coor.CCol[0] < 8 && Map[coor.CRow[1]][coor.CCol[1] + 2] == 0 && coor.CCol[0] > 0)
  {
      Map[coor.CRow[0]][coor.CCol[0]] = 0;
      Map[coor.CRow[2]][coor.CCol[2]] = 0;
      Map[coor.CRow[3]][coor.CCol[3]] = 0;
      Map[coor.CRow[1]][coor.CCol[1] - 1] = 1;
      Map[coor.CRow[1]][coor.CCol[1] + 1] = 1;
      Map[coor.CRow[1]][coor.CCol[1] + 2] = 1;
      ch = 15;
  }
     }
     break;
 case 15:
     if (Map[coor.CRow[0] - 1][coor.CCol[0]] == 0 && Map[coor.CRow[3] + 1][coor.CCol[3]] == 0 && Map[coor.CRow[2] + 1][coor.CCol[2]] == 0 && Map[coor.CRow[2] - 1][coor.CCol[2]] == 0)
     {
  if (coor.CRow[0] < 22 && Map[coor.CRow[2] + 2][coor.CCol[2]] == 0)
  {
      Map[coor.CRow[0]][coor.CCol[0]] = 0;
      Map[coor.CRow[1]][coor.CCol[1]] = 0;
      Map[coor.CRow[3]][coor.CCol[3]] = 0;
      Map[coor.CRow[2] - 1][coor.CCol[2]] = 1;
      Map[coor.CRow[2] + 1][coor.CCol[2]] = 1;
      Map[coor.CRow[2] + 2][coor.CCol[2]] = 1;
      ch = 14;
  }
  else if(coor.CRow[0] == 22 && Map[coor.CRow[2] - 2][coor.CCol[2]] == 0)
  {
      Map[coor.CRow[0]][coor.CCol[0]] = 0;
      Map[coor.CRow[1]][coor.CCol[1]] = 0;
      Map[coor.CRow[3]][coor.CCol[3]] = 0;
      Map[coor.CRow[2] - 1][coor.CCol[2]] = 1;
      Map[coor.CRow[2] + 1][coor.CCol[2]] = 1;
      Map[coor.CRow[2] - 2][coor.CCol[2]] = 1;
      ch = 14;
  }
     }
     break;
 }
 break;
    }
    if (dir != 0)
    {
 for (int j = 0; j < 4; j++)
 {
     clearrectangle(coor.CCol[j] * 30 + 170, coor.CRow[j] * 30 - 120, coor.CCol[j] * 30 + 170 + 30, coor.CRow[j] * 30 - 90);
 }
    }
    dir = 0;
}
void unmove()
{
    for (int i = 0; i < 4; i++)
    {
 Map[coor.CRow[i]][coor.CCol[i]] = 2;
    }
    temp = 1;
}

void drawCoor()
{
    for (int row = 0; row < 24; row++)
    {
 for (int col = 0; col < 10; col++)
 {
     if (Map[row][col] == 1)
     {
  setfillcolor(YELLOW);
  fillrectangle(col * 30 + 170, row * 30 - 120, col * 30 + 30 + 170, row * 30 - 90);
  coor.CRow[coor.n] = row;
  coor.CCol[coor.n] = col;
  coor.n++;
     }
 }
 if (coor.n == 4) break;
    }
    coor.n = 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/233079.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号