亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用C語言怎么實現推箱子游戲

發布時間:2021-05-27 18:24:50 來源:億速云 閱讀:166 作者:Leah 欄目:編程語言

使用C語言怎么實現推箱子游戲?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

#include <stdio.h> 
#include <conio.h>
#include<stdlib.h> 

int map[9][11] = {
 {0,1,1,1,1,1,1,1,1,1,0}, //0代表空地
 {0,1,0,0,0,1,0,0,0,1,0}, //1代表墻
 {0,1,0,4,4,4,4,4,0,1,0}, //3代表目的地
 {0,1,0,4,0,4,0,4,0,1,1}, //4代表箱子
 {0,1,0,0,0,0,0,0,4,0,1}, //5代表人 
 {1,1,0,1,1,1,1,0,4,0,1},
 {1,0,8,3,3,3,3,1,0,0,1}, //2 3 4 5 6 7 8 9 1 0
 {1,0,3,3,3,3,3,0,0,1,1},
 {1,1,1,1,1,1,1,1,1,1,0} };

//繪制地圖 //二維數組+switch()
void DrawMap()
{
 //遍歷二維數組 //0 打印空格 //1 墻 //3 目的地 //什么結構?
 for (int i = 0; i < 9; i++)
 {
  for (int j = 0; j < 11; j++)
  {
   //if else switch
   switch (map[i][j])
   {
   case 0:
    printf(" ");
    break;
   case 1:
    printf("■");
    break;
   case 3:
    printf("☆");
    break;
   case 4:
    printf("□");
    break;
   case 5:
    printf("♀"); //5人
    break;
   case 7:  //4 + 3 箱子在目的地中
    printf("★");
    break;
   case 8:  // 5 + 3 人在目的地當中 人?
    printf("♀");
    break;
   }
  }
  printf("\n");
 }
}


void PlayGame()
{
 int r, c; //人的下標 //
 for (int i = 0; i < 9; i++)
 {
  for (int j = 0; j < 11; j++)
  {
   if (map[i][j] == 5||map[i][j]==8) //i j 人的下標?
   {
    r = i;
    c = j;
   }
  }
 }

 char ch; //字符變量
 ch = getch(); //鍵盤的輸入保存到字符中
 // getch()  getchar() 接收鍵盤字符
 // getch()直接接收 不顯示回文 getchar()顯示回文可以修改 enter鍵結束

 //根據不同的按鍵 改變不同的值. 分支.
 switch (ch)
 {
 case 'W': //W A S D方向 72 80 75 77 虛擬鍵值 ascii windowVK_UP VK_TAB VK_RETUNE
 case 'w':
 case 72:
  if (map[r - 1][c] == 0|| map[r - 1][c] == 3) 
  {
   map[r - 1][c] += 5;
   map[r][c] -= 5;
  }
  else if (map[r - 1][c] == 4 || map[r - 1][c] == 7)
  {
   if (map[r - 2][c] == 0 || map[r - 2][c] == 3)
   {
    map[r - 2][c] += 4;
    map[r - 1][c] += 1;
    map[r][c] -= 5;
   }
  }



  break;

 case 'S': //enter按鍵的作用 確認 返回
 case 's':
 case 80:
  if (map[r + 1][c] == 0 || map[r + 1][c] == 3)
  {
   map[r + 1][c] += 5;
   map[r][c] -= 5;
  }
  else if (map[r + 1][c] == 4 || map[r+ 1][c] == 7)
  {
   if (map[r + 2][c] == 0 || map[r + 2][c] == 3)
   {
    map[r + 2][c] += 4;
    map[r + 1][c] += 1;
    map[r][c] -= 5;
   }
  }
  break;

 case 'A':
 case 'a':
 case 75:
  if (map[r ][c - 1] == 0 || map[r ][c - 1] == 3)
  {
   map[r ][c - 1] += 5;
   map[r][c] -= 5;
  }
  else if (map[r][c - 1] == 4 || map[r][c - 1] == 7)
  {
   if (map[r ][c - 2] == 0 || map[r ][c - 2] == 3)
   {
    map[r ][c - 2] += 4;
    map[r ][c - 1] += 1;
    map[r][c] -= 5;
   }
  }
  break;

 case 'D':
 case 'd':
 case 77:
  if (map[r][c + 1] == 0 || map[r][c + 1] == 3)
  {
   map[r][c + 1] += 5;
   map[r][c] -= 5;
  }
  else if (map[r][c + 1] == 4 || map[r][c + 1] == 7)
  {
   if (map[r][c + 2] == 0 || map[r][c + 2] == 3)
   {
    map[r][c + 2] += 4;
    map[r][c + 1] += 1;
    map[r][c] -= 5;
   }
  }
  break;
 }
}

//
int main() //主函數
{
 while (1)
 {
  system("cls");
  DrawMap();
  PlayGame();
 }

 return 0;
}

//通過按鍵來實現游戲 ---> 通過按鍵來改變二維數組的排列順序.
//思考一個問題? 地圖是二維數組來決定的. 人在哪里 二維數組來決定?

/************************************************
//人推箱子 
可以動. 怎么辦. 改變元素
  1.人的前面是空地
  2.人的前面是目的地
  3.人的前面是箱子
   3.1 箱子的前面是空地
   3.2 箱子的前面是目的地


   //盤斷二維數組中有幾個7
   //沒有目的地 不對.. 人站在目的地
   //有沒有4.
****************************************/

使用C語言怎么實現推箱子游戲

使用C語言怎么實現推箱子游戲

看完上述內容,你們掌握使用C語言怎么實現推箱子游戲的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛曲县| 泗洪县| 葵青区| 时尚| 浮梁县| 额尔古纳市| 天峨县| 焉耆| 宝清县| 元阳县| 泰来县| 阿拉善左旗| 成安县| 崇信县| 沙湾县| 章丘市| 靖宇县| 监利县| 前郭尔| 西充县| 方正县| 长武县| 双牌县| 长汀县| 万年县| 惠安县| 梨树县| 洛阳市| 平邑县| 息烽县| 安乡县| 阿拉善左旗| 永靖县| 辉县市| 安多县| 筠连县| 额济纳旗| 滨海县| 武山县| 波密县| 嵩明县|