亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C/C++編寫推箱子小游戲

 更新時(shí)間:2021年06月01日 14:31:20   作者:WJX+WT  
這篇文章主要為大家詳細(xì)介紹了C/C++編寫推箱子小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C/C++編寫推箱子小游戲的具體代碼,供大家參考,具體內(nèi)容如下

我們用' #'來代表墻,‘O'來代表箱子,' * '代表終點(diǎn),‘@'代表箱子已經(jīng)到達(dá)終點(diǎn),‘S來表示人'。
注意:W,A,S,D為方向鍵,而且要在英文格式下

運(yùn)行示例:

以下為完整代碼:

/*

推箱子(示例二)


*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
int main()
{
 char a[12][12]={"##########",
     "##     ###",
                    "##O###   #",
                    "# S O  O #",
                    "# **# O ##",
                    "##**#   ##",
                    "##########",
                   };
    int x=3,y=2;
    int i;
    char ch;
    for(i=0;i<7;i++)
    puts(a[i]);
    
    while(a[4][2]!='@'||a[4][3]!='@'||a[5][2]!='@'||a[5][3]!='@')
    {
     
  ch=getch();
     if(ch=='s')
     {
         if(a[x+1][y]!='#'&&a[x+1][y]!='O'&&a[x+1][y]!='@') //如果只有人,沒有箱子 
      {
       a[x][y]=' ';
       x++;
       a[x][y]='S';
   }
   else if(a[x+2][y]!='#'&&a[x+1][y]=='O'&&a[x+2][y]!='*') //如果是箱子和人一起走 
   {
    a[x][y]=' ';
    x++;
    a[x][y]='S';
    a[x+1][y]='O';
   }
   else if(a[x+2][y]!='#'&&(a[x+1][y]=='O'||a[x+1][y]=='@')&&a[x+2][y]=='*') //如果人和箱子一起走,并且前面是終點(diǎn)      
   {
    a[x][y]=' ';
    x++;
    a[x][y]='S'; 
    a[x+1][y]='@';
   }
  }
  
  if(ch=='w')
     {
      
      if(a[x-1][y]!='#'&&a[x-1][y]!='O'&&a[x-1][y]!='@') //如果只有人,沒有箱子 
      {
       a[x][y]=' ';
       x--;
       a[x][y]='S';
       
   }
   else if(a[x-2][y]!='#'&&a[x-1][y]=='O'&&a[x-2][y]!='O') //如果是箱子和人一起走 
   {
    a[x][y]=' ';
    x--;
    a[x][y]='S';
    a[x-1][y]='O';

   }
   else if(a[x-2][y]!='#'&&(a[x-1][y]=='O'||a[x-1][y]=='@')&&a[x-2][y]=='*')  //如果人和箱子一起走,并且前面是終點(diǎn)      
   {
    a[x][y]=' ';
    x--;
    a[x][y]='S'; 
    a[x-1][y]='@';
   }
  }
  if(ch=='a')
     {
      
      if(a[x][y-1]!='#'&&a[x][y-1]!='O'&&a[x][y-1]!='@') //如果只有人,沒有箱子 
      {
       a[x][y]=' ';
       y--;
       a[x][y]='S';
       
   }
   else if(a[x][y-2]!='#'&&a[x][y-1]=='O') //如果是箱子和人一起走 
   {
    a[x][y]=' ';
    y--;
    a[x][y]='S';
    a[x][y-1]='O';
   }
   else if(a[x][y-2]!='#'&&(a[x][y-1]=='O'||a[x][y-1]=='@')&&a[x][y-2]=='*') //如果人和箱子一起走,并且前面是終點(diǎn)      
   {
    a[x][y]=' ';
    y--;
    a[x][y]='S'; 
    a[x][y-1]='@';
   }
  }
  if(ch=='d')
     {
      
      if(a[x][y+1]!='#'&&a[x][y+1]!='O'&&a[x][y+1]!='@') //如果只有人,沒有箱子 
      {
       a[x][y]=' ';
       y++;
       a[x][y]='S';
       
   }
   else if(a[x][y+2]!='#'&&a[x][y+1]=='O'&&a[x][y+2]!='O') //如果是箱子和人一起走 
   {
    a[x][y]=' ';
    y++;
    a[x][y]='S';
    a[x][y+1]='O';
   }
   else if(a[x][y+2]!='#'&&(a[x][y+1]=='O'||a[x][y+1]=='@')&&a[x][y+2]=='*'&&a[x][y+2]!='O')   //如果人和箱子一起走,并且前面是終點(diǎn)      
   {
    a[x][y]=' ';
    y++;
    a[x][y]='S'; 
    a[x][y+1]='@';
   }
  }
  if(a[4][2]!='@'&&a[4][2]!='S'&&a[4][2]!='*')
     {
      a[4][2]='*';
  }
  if(a[4][3]!='@'&&a[4][3]!='S'&&a[4][3]!='*')
     {
      a[4][3]='*';
  }
  if(a[5][2]!='@'&&a[5][2]!='S'&&a[5][2]!='*')
     {
      a[5][2]='*';
  }
  if(a[5][3]!='@'&&a[5][3]!='S'&&a[5][3]!='*')
     {
      a[5][3]='*';
  }
  if(a[1][2]=='O'||a[1][6]=='O'||a[2][8]=='O'||a[3][8]=='O'||a[5][5]=='O'||a[5][7]=='O')              //判斷失敗的情況 
  {
   break;
  }
  system("cls");
  for(i=0;i<7;i++)
     puts(a[i]);
 }
 system("cls");
 if(a[4][2]!='@'||a[4][3]!='@'||a[5][2]!='@'||a[5][3]!='@')
    printf("YOU LOSE!");
    else
    printf("YOU WIN!");
    Sleep(3000);
    
 return 0;
}

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

相關(guān)文章

  • 深入了解C語言棧的創(chuàng)建

    深入了解C語言棧的創(chuàng)建

    棧只允許在一端進(jìn)行插入或刪除操作的線性表。首先棧是一種線性表,但是限定這種線性表只能在某一端進(jìn)行插入和刪除操作,這篇文章主要介紹了C語言對(duì)棧的實(shí)現(xiàn)基本操作
    2021-07-07
  • C++之vector內(nèi)存釋放原理

    C++之vector內(nèi)存釋放原理

    這篇文章主要介紹了C++之vector內(nèi)存釋放原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++非繼承時(shí)函數(shù)成員訪問屬性和類繼承過程中的訪問控制

    C++非繼承時(shí)函數(shù)成員訪問屬性和類繼承過程中的訪問控制

    這篇文章主要介紹了C++非繼承時(shí)函數(shù)成員訪問屬性和類繼承過程中的訪問控制,非繼承時(shí),protected成員和private成員沒有任何區(qū)別,都是類內(nèi)部可以直接訪問它們、類外部的類對(duì)象不可訪問它們、類內(nèi)部的類對(duì)象可以訪問它們,更多詳細(xì)內(nèi)容請(qǐng)參考下面相關(guān)資料
    2022-03-03
  • C++讀寫.mat文件的方法

    C++讀寫.mat文件的方法

    本文介紹了“C++讀寫.mat文件的方法”,需要的朋友可以參考一下
    2013-03-03
  • 詳解C++編程中標(biāo)記語句與復(fù)合語句的寫法

    詳解C++編程中標(biāo)記語句與復(fù)合語句的寫法

    這篇文章主要介紹了C++編程中標(biāo)記語句與復(fù)合語句的寫法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-01-01
  • Qt實(shí)現(xiàn)簡(jiǎn)單折線圖表

    Qt實(shí)現(xiàn)簡(jiǎn)單折線圖表

    這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)簡(jiǎn)單折線圖表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • opengl繪制五星紅旗

    opengl繪制五星紅旗

    這篇文章主要為大家詳細(xì)介紹了opengl繪制五星紅旗的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • C++ OpenCV制作黑客帝國(guó)風(fēng)格的照片

    C++ OpenCV制作黑客帝國(guó)風(fēng)格的照片

    這篇文章主要介紹了如何通過C++ OpenCV制作出黑客帝國(guó)風(fēng)格的照片,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)OpenCV有一定幫助,需要的可以參考一下
    2022-01-01
  • C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例

    C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例

    這篇文章主要為大家介紹了C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • C++中構(gòu)造函數(shù)與析構(gòu)函數(shù)的詳解及其作用介紹

    C++中構(gòu)造函數(shù)與析構(gòu)函數(shù)的詳解及其作用介紹

    這篇文章主要介紹了C++中構(gòu)造函數(shù)與析構(gòu)函數(shù)的詳解及其作用介紹,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評(píng)論