1. 程式人生 > 程式設計 >C語言鍵盤控制走迷宮小遊戲

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

本文例項為大家分享了C語言鍵盤控制走迷宮小遊戲的具體程式碼,供大家參考,具體內容如下

在看了《啊哈C語言》之後想寫一個遊戲demo

遊戲的截圖

首先是啟動介面

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

然後是初始化

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

接下來是鍵盤操控

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

地圖的複雜度也很容易修改。
也支援退出。按s鍵選擇退出遊戲這個選項即可。

下面是原始碼

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

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

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


int main() {
 startUp();//遊戲啟動介面
 
 gameInstructions();//遊戲說明 
 
 //顯示選單 
 printf(" -> 開始遊戲\n");
 printf("  退出遊戲\n");
 printf("按Enter進入遊戲\n");
 char choose1;
 choose1 = getch();
 menu(choose1);
 
 //載入遊戲地圖
 gameMap();
 
 //玩家進行操作
 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("<---分別對應[上][下][左][右]--->\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("<---分別對應[上][下][左][右]--->\n");
 printf("  開始遊戲\n");
 printf(" -> 退出遊戲\n");
 printf("程式將在5s後關閉\n");
 int i = 0;
 for(i=0;i<5;++i){
 system("cls");
 printf("程式將在 %ds後關閉\n",5-i);
 Sleep(1000);
 } 
 exit(0);//退出程式 
 }else{
 printf("  遊戲載入完畢!\n");
 printf("<---操作按鍵:[W][S][A][D]--->\n");
 printf("<---分別對應[上][下][左][右]--->\n");
 printf(" -> 開始遊戲\n");
 printf("  退出遊戲\n");
 printf("按Enter進入遊戲\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");
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。