最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言實(shí)現(xiàn)推箱子游戲

 更新時(shí)間:2018年11月19日 14:37:05   作者:Yan_Less  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)推箱子游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

每天學(xué)習(xí)一點(diǎn)點(diǎn),每天容易一點(diǎn)點(diǎn)。一個(gè)簡(jiǎn)單的C語(yǔ)言程序,用來(lái)復(fù)習(xí)c語(yǔ)言,代碼通俗易懂。有什么問(wèn)題望各位不吝賜教。

本文用最簡(jiǎn)單的C語(yǔ)言語(yǔ)句寫(xiě)個(gè)推箱子的程序,分享給大家:

/*******************************************
用最簡(jiǎn)單的C語(yǔ)言語(yǔ)句寫(xiě)個(gè)推箱子的程序。


********************************************/
#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} };

//繪制地圖 //二維數(shù)組+switch()
void DrawMap()
{
 //遍歷二維數(shù)組 //0 打印空格 //1 墻 //3 目的地 //什么結(jié)構(gòu)?
 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 人在目的地當(dāng)中 人?
    printf("♀");
    break;
   }
  }
  printf("\n");
 }
}


void PlayGame()
{
 int r, c; //人的下標(biāo) //
 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 人的下標(biāo)?
   {
    r = i;
    c = j;
   }
  }
 }

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

 //根據(jù)不同的按鍵 改變不同的值. 分支.
 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按鍵的作用 確認(rèn) 返回
 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() //主函數(shù)
{
 while (1)
 {
  system("cls");
  DrawMap();
  PlayGame();
 }

 return 0;
}

//通過(guò)按鍵來(lái)實(shí)現(xiàn)游戲 ---> 通過(guò)按鍵來(lái)改變二維數(shù)組的排列順序.
//思考一個(gè)問(wèn)題? 地圖是二維數(shù)組來(lái)決定的. 人在哪里 二維數(shù)組來(lái)決定?

/************************************************
//人推箱子 
可以動(dòng). 怎么辦. 改變?cè)?
  1.人的前面是空地
  2.人的前面是目的地
  3.人的前面是箱子
   3.1 箱子的前面是空地
   3.2 箱子的前面是目的地


   //盤(pán)斷二維數(shù)組中有幾個(gè)7
   //沒(méi)有目的地 不對(duì).. 人站在目的地
   //有沒(méi)有4.
****************************************/

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++實(shí)現(xiàn)病人就醫(yī)管理系統(tǒng)

    C++實(shí)現(xiàn)病人就醫(yī)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++語(yǔ)言實(shí)現(xiàn)病人就醫(yī)管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • VScode+cuda編程常見(jiàn)環(huán)境問(wèn)題的解決

    VScode+cuda編程常見(jiàn)環(huán)境問(wèn)題的解決

    本文主要介紹了VScode+cuda編程常見(jiàn)環(huán)境問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 基于Qt的TCP實(shí)現(xiàn)通信

    基于Qt的TCP實(shí)現(xiàn)通信

    這篇文章主要為大家詳細(xì)介紹了基于Qt的TCP實(shí)現(xiàn)通信,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語(yǔ)言中帶頭雙向循環(huán)鏈表基本操作的實(shí)現(xiàn)詳解

    C語(yǔ)言中帶頭雙向循環(huán)鏈表基本操作的實(shí)現(xiàn)詳解

    無(wú)頭單向非循環(huán)鏈表結(jié)構(gòu)簡(jiǎn)單,一般不會(huì)單獨(dú)用來(lái)存數(shù)據(jù)。而帶頭雙向循環(huán)鏈表的結(jié)構(gòu)較為復(fù)雜,一般用在單獨(dú)存儲(chǔ)數(shù)據(jù)。本文將介紹帶頭雙向循環(huán)鏈表的基本操作,需要的可以參考一下
    2022-11-11
  • C++入門(mén)筆記之std::vector容器詳解

    C++入門(mén)筆記之std::vector容器詳解

    這篇文章主要給大家介紹了關(guān)于C++之std::vector容器的相關(guān)資料,vector,一種隨機(jī)訪問(wèn)的數(shù)組類(lèi)型,它提供了對(duì)數(shù)組元素的快速、隨機(jī)訪問(wèn),以及在序列尾部快速、隨機(jī)的插入和刪除操作,需要的朋友可以參考下
    2021-07-07
  • 用C++實(shí)現(xiàn)推箱子

    用C++實(shí)現(xiàn)推箱子

    這篇文章主要為大家詳細(xì)介紹了用C++實(shí)現(xiàn)推箱子,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • C語(yǔ)言修煉之路初識(shí)分支句?循環(huán)助本心上篇

    C語(yǔ)言修煉之路初識(shí)分支句?循環(huán)助本心上篇

    現(xiàn)實(shí)生活中我們經(jīng)常需要根據(jù)不同的條件做出不同的選擇。程序設(shè)計(jì)中也需要根據(jù)條件來(lái)選擇不同的程序進(jìn)行處理,這稱(chēng)之為分支結(jié)構(gòu),當(dāng)條件表達(dá)式不存在時(shí),它被假設(shè)為真。您也可以設(shè)置一個(gè)初始值和增量表達(dá)式,一般情況下,C?程序員偏向于使用?for(;;)?結(jié)構(gòu)來(lái)表示一個(gè)無(wú)限循環(huán)
    2022-03-03
  • C++ 靜態(tài)成員的類(lèi)內(nèi)初始化詳解及實(shí)例代碼

    C++ 靜態(tài)成員的類(lèi)內(nèi)初始化詳解及實(shí)例代碼

    這篇文章主要介紹了C++ 靜態(tài)成員的類(lèi)內(nèi)初始化詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Qt數(shù)據(jù)庫(kù)應(yīng)用之實(shí)現(xiàn)數(shù)據(jù)分組導(dǎo)出

    Qt數(shù)據(jù)庫(kù)應(yīng)用之實(shí)現(xiàn)數(shù)據(jù)分組導(dǎo)出

    這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)分組導(dǎo)出,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以了解一下
    2022-06-06
  • C++ 迭代器失效問(wèn)題解決

    C++ 迭代器失效問(wèn)題解決

    在C++中,當(dāng)一個(gè)vector進(jìn)行了插入或刪除操作時(shí),其迭代器可能會(huì)失效,本文就來(lái)介紹一下C++ 迭代器失效問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01

最新評(píng)論

延吉市| 涞水县| 景德镇市| 淮安市| 精河县| 长治市| 龙州县| 古丈县| 靖安县| 宕昌县| 金沙县| 东源县| 读书| 板桥市| 田林县| 永修县| 大足县| 山阳县| 兴城市| 淮阳县| 宣恩县| 富宁县| 台北市| 西乌珠穆沁旗| 江口县| 浠水县| 宜宾县| 永定县| 晋江市| 肥西县| 麻栗坡县| 盐边县| 瓦房店市| 峨边| 晋江市| 清水县| 宁城县| 墨玉县| 荥经县| 宜阳县| 东乡族自治县|