欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言鍵盤控制走迷宮小游戲

 更新時(shí)間:2020年06月16日 11:46:04   作者:Kingdeguo  
這篇文章主要為大家詳細(xì)介紹了C語言鍵盤控制走迷宮小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言鍵盤控制走迷宮小游戲的具體代碼,供大家參考,具體內(nèi)容如下

在看了《啊哈C語言》之后想寫一個(gè)游戲demo

游戲的截圖

首先是啟動(dòng)界面

然后是初始化

接下來是鍵盤操控

地圖的復(fù)雜度也很容易修改。
也支持退出。按s鍵選擇退出游戲這個(gè)選項(xiàng)即可。

下面是源代碼

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

void startUp();
void gameInstructions();
void menu(char c);
void gameMap();

char map[6][6]={"######",
 "#o # ",
 "# ## #",
 "# # #",
 "## #",
 "######"
 };


int main() {
 startUp();//游戲啟動(dòng)界面
 
 gameInstructions();//游戲說明 
 
 //顯示菜單 
 printf(" -> 開始游戲\n");
 printf("  退出游戲\n");
 printf("按Enter進(jìn)入游戲\n");
 char choose1;
 choose1 = getch();
 menu(choose1);
 
 //加載游戲地圖
 gameMap();
 
 //玩家進(jìn)行操作
 system("cls"); 
 int i,x,y,p,q,j;
 char ch;
 
 x=1;y=1;p=1;q=5;
 for(i=0;i<6;++i){
 printf("  ");
 for(j=0;j<6;++j){
 printf("%c ",map[i][j]);
 }
 printf("\n");
 }
 while(x != p || y != q){
 ch = getch();
 
 if(ch == 's' || ch == 'S'){
 if(map[x+1][y] != '#'){
 map[x][y] = ' ';
 x++;
 map[x][y] = 'o';
 }else{
 printf("\a");
 }
 }
 
 if(ch == 'w' || ch == 'W'){
 if(map[x-1][y] != '#'){
 map[x][y] = ' ';
 x--;
 map[x][y] = 'o';
 }else{
 printf("\a");
 }
 }
 
 if(ch == 'a' || ch == 'A'){
 if(map[x][y-1] != '#'){
 map[x][y] = ' ';
 y--;
 map[x][y] = 'o';
 }else{
 printf("\a");
 }
 }
 
 if(ch == 'd' || ch == 'D'){
 if(map[x][y+1] != '#'){
 map[x][y] = ' ';
 y++;
 map[x][y] = 'o';
 }else{
 printf("\a");
 }
 }
 
 system("cls");
 for(i=0;i<6;++i){
 printf("  ");
 for(j=0;j<6;++j){
 printf("%c ",map[i][j]);
 }
 printf("\n");
 }
 }
 system("cls");
 printf("You Win!\n");
 Sleep(3000); 
 return 0;
}

void startUp(){
 int i; 
 int circle = 2;
 for(i=0;i<circle;++i){
 system("cls"); 
 printf("  游戲正在加載");
 Sleep(500);
 system("cls"); 
 printf("  游戲正在加載.");
 Sleep(500);
 system("cls"); 
 printf("  游戲正在加載..");
 Sleep(500);
 system("cls"); 
 printf("  游戲正在加載...");
 Sleep(500);
 }
 system("cls"); 
 printf("  游戲加載完畢!\n");
 Sleep(1000); 
}

void gameInstructions(){
 printf("<---操作按鍵:[W][S][A][D]--->\n");
 printf("<---分別對應(yīng)[上][下][左][右]--->\n");
 printf("<---注意使用英文輸入法--->\n");
 Sleep(1000);
}

void menu(char c){
 system("cls");
 if(c == 'S' || c == 's'){
 printf("  游戲加載完畢!\n");
 printf("<---操作按鍵:[W][S][A][D]--->\n");
 printf("<---分別對應(yīng)[上][下][左][右]--->\n");
 printf("  開始游戲\n");
 printf(" -> 退出游戲\n");
 printf("程序?qū)⒃?s后關(guān)閉\n");
 int i = 0;
 for(i=0;i<5;++i){
 system("cls");
 printf("程序?qū)⒃?%ds后關(guān)閉\n",5-i);
 Sleep(1000);
 } 
 exit(0);//退出程序 
 }else{
 printf("  游戲加載完畢!\n");
 printf("<---操作按鍵:[W][S][A][D]--->\n");
 printf("<---分別對應(yīng)[上][下][左][右]--->\n");
 printf(" -> 開始游戲\n");
 printf("  退出游戲\n");
 printf("按Enter進(jìn)入游戲\n");
 
 }
}

void gameMap(){
 system("cls");
 printf("---正在加載游戲地圖---\n");
 
 int i, j;
 for(i=0;i<6;++i){
 printf("  ");
 for(j=0;j<6;++j){
 printf("%c ",map[i][j]);
 Sleep(100);
 }
 printf("\n");
 Sleep(200);
 }
 
 system("cls");
 printf("---Part1---\n");
 for(i=0;i<6;++i){
 printf("  ");
 for(j=0;j<6;++j){
 printf("%c ",map[i][j]);
 }
 printf("\n");
 }
}

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

相關(guān)文章

  • C++使用TinyXml實(shí)現(xiàn)讀取XMl文件

    C++使用TinyXml實(shí)現(xiàn)讀取XMl文件

    常見C/C++?XML解析器有Tinyxml、XERCES、squashxml、xmlite、pugxml、libxml等等,本文為大家介紹的是使用TinyXml實(shí)現(xiàn)讀取XMl文件,需要的可以參考一下
    2023-06-06
  • C++實(shí)現(xiàn)LeetCode(57.插入?yún)^(qū)間)

    C++實(shí)現(xiàn)LeetCode(57.插入?yún)^(qū)間)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(57.插入?yún)^(qū)間),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Qt信號與槽知識點(diǎn)總結(jié)歸納

    Qt信號與槽知識點(diǎn)總結(jié)歸納

    信號和槽是一種高級接口,應(yīng)用于對象之間的通信,它是QT的核心特性,下面這篇文章主要給大家介紹了關(guān)于Qt信號與槽知識點(diǎn)總結(jié)歸納的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • exit和atexit的區(qū)別詳細(xì)解析

    exit和atexit的區(qū)別詳細(xì)解析

    以下是對exit與atexit的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-09-09
  • C++命名空間和缺省參數(shù)介紹

    C++命名空間和缺省參數(shù)介紹

    這篇文章主要介紹了C++命名空間和缺省參數(shù),使用命名空間的目的是對標(biāo)識符的名稱進(jìn)行本地化,以避免命名沖突或名字污染,namespace關(guān)鍵字的出現(xiàn)就是針對這種問題的,缺省參數(shù)是聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個(gè)默認(rèn)值,更多詳細(xì)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容
    2022-01-01
  • C++字符串拼接效率對比(+=、append、stringstream、sprintf)

    C++字符串拼接效率對比(+=、append、stringstream、sprintf)

    這篇文章主要介紹了C++字符串拼接效率對比(+=、append、stringstream、sprintf),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++?OpenMP簡單介紹

    C++?OpenMP簡單介紹

    這篇文章主要介紹了C++?OpenMP簡介,OpenMP?還支持自定義數(shù)據(jù)類型的歸約操作,需要通過omp?declare?reduction指令來聲明自定義操作符和數(shù)據(jù)類型的歸約方式,感興趣的朋友一起看看吧
    2023-05-05
  • C++ Boost Bind庫示例分析使用

    C++ Boost Bind庫示例分析使用

    Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個(gè)可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱
    2022-11-11
  • C語言循環(huán)隊(duì)列的表示與實(shí)現(xiàn)實(shí)例詳解

    C語言循環(huán)隊(duì)列的表示與實(shí)現(xiàn)實(shí)例詳解

    這篇文章主要介紹了C語言循環(huán)隊(duì)列的表示與實(shí)現(xiàn),對于數(shù)據(jù)結(jié)構(gòu)與算法的研究很有幫助,需要的朋友可以參考下
    2014-07-07
  • opencv3/C++ FLANN特征匹配方式

    opencv3/C++ FLANN特征匹配方式

    今天小編就為大家分享一篇opencv3/C++ FLANN特征匹配方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論