1. 程式人生 > >走出迷宮小遊戲的實現

走出迷宮小遊戲的實現

#include <stdio.h> #define rows 6 #define cols 8 //全域性變數儲存地圖 char map[rows][cols] = { {'#',' ','#','#','#','#','#','#'}, {'#','O','#','#',' ',' ',' ','#'}, {'#',' ','#','#',' ','#',' ','#'}, {'#',' ',' ','#',' ','#',' ','#'}, {'#','#',' ',' ',' ','#',' ','#'}, {'#','#'
,'#','#','#','#',' ','#'} }; /** * 列印地圖 */ void showMap(); //儲存小人當前的位置: int currenRow = 1; int currenCol = 1; /** * 接受使用者的輸入 * * @return 返回操作 */ char getPlayerDirection(); /** * 小人向上 */ void moToUp(); /** * 小人向下 */ void moToDown(); /** * 小人向左移動 */ void moToLeft(); /** * 小人向右移動 */ void moToRight(); int
main(int argc, const char * argv[]) { while (1) { showMap(); if (currenRow ==4 && currenCol == 6) { printf("很牛逼!\n"); return 0; } int dir = getPlayerDirection(); switch (dir) { case 'w': case
'W': moToUp(); break; case 'a': case 'A': moToLeft(); break; case 'D': case 'd': moToRight(); break; case 's': case 'S': moToDown(); break; case 'q': case 'Q': printf("遊戲太難了,退出!\n"); return 0; default: printf("輸入有誤!\n"); break; } } return 0; } /** * 列印地圖 */ void showMap() { for (int i = 0; i<rows; i++) { for (int j = 0; j<cols; j++) { printf("%c",map[i][j]); } printf("\n"); } } /** * 接受使用者的輸入 * * @return 返回操作 */ char getPlayerDirection() { printf("下一步的操作是:w-上 a-左,d-右,s-下,q-退出\n"); char dir; rewind(stdin); scanf("%c",&dir); return dir; } /** * 小人向上 */ void moToUp() { //若小人向上移動,則儲存一下地址 int nextRow = currenRow -1; int nextCol = currenCol; if (map[nextRow][nextCol] == ' ') { //路變成人 人變成路 map[nextRow][nextCol] ='0'; map[currenRow][currenCol] =' '; //更新小人的位置 currenRow = nextRow; currenCol = nextCol; } } /** * 小人向下 */ void moToDown() { //若小人向下移動,則儲存一下地址 int nextRow = currenRow +1; int nextCol = currenCol; if (map[nextRow][nextCol] == ' ') { //路變成人 人變成路 map[nextRow][nextCol] ='0'; map[currenRow][currenCol] =' '; //更新小人的位置 currenRow = nextRow; currenCol = nextCol; } } /** * 小人向左移動 */ void moToLeft() { //若小人向左移動,則儲存一下地址 int nextRow = currenRow ; int nextCol = currenCol -1; if (map[nextRow][nextCol] == ' ') { //路變成人 人變成路 map[nextRow][nextCol] ='0'; map[currenRow][currenCol] =' '; //更新小人的位置 currenRow = nextRow; currenCol = nextCol; } } /** * 小人向右移動 */ void moToRight() { //若小人向右移動,則儲存一下地址 int nextRow = currenRow ; int nextCol = currenCol + 1; if (map[nextRow][nextCol] == ' ') { //路變成人 人變成路 map[nextRow][nextCol] ='0'; map[currenRow][currenCol] =' '; //更新小人的位置 currenRow = nextRow; currenCol = nextCol; } }

相關推薦

迷宮遊戲實現

#include <stdio.h> #define rows 6 #define cols 8 //全域性變數儲存地圖 char map[rows][cols] = { {'#',' ','#','#','#','#','#','#'}, {'#','O','#','#','

迷宮遊戲實現

 一.首先給出一個迷宮 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1

[原始碼和文件分享]基於JAVA實現迷宮迷宮遊戲

1 功能說明 1.1 問題描述 用JAVA實現電腦鼠走迷宮的程式,一個假想的小車能在圖示的迷宮中穿行輸出其可能的組合式。 1.2 題目要求 根據國際比賽規則,電老鼠走迷宮分為三個階段: 從起點走到終點從終點 進一步遍歷完整個迷宮,獲得整個迷宮的地圖(牆和通路)

我用資料結構花了一夜給女朋友寫了個h5迷宮遊戲

目錄 起因 分析 畫線(棋盤) 畫迷宮 方塊移動 結語 @(文章目錄) 先看效果圖(線上電腦嘗試地址http://biggsai.com/maze

如何區塊連遊戲改造第一步?

cto 相對 發現 公開 而且 加密狗 全部 col 成本 前段時間,在美國矽谷的區塊鏈峰會中,當Ripple執行董事Chris Larsen被問起2020年以前,區塊鏈最好的應用領域會在哪裏的時候,他只回答了一個方向,那就是區塊鏈加遊戲的結合。      Ripple執行

廣度優先演算法迷宮

廣度優先演算法(Breadth-First Search),同廣度優先搜尋,又稱作寬度優先搜尋,或橫向優先搜尋,簡稱BFS,是一種圖形搜尋演演算法。簡單的說,BFS是從根節點開始,沿著樹的寬度遍歷樹的節點,如果發現目標,則演算終止。廣度優先搜尋的實現一般採用open-closed表。 有這麼一個迷宮: 6

U3D 簡化版跳一跳遊戲 實現(新手入門) (附原始碼下載連結,整個工程檔案)

今年三月份在CSDN上傳了一個資源,U3D版本跳一跳小遊戲的原始碼,並附帶了下述的說明,現在補充一篇部落格,簡單說一下具體是怎麼實現的。(新手入門)使用U3D開發的跳一跳小遊戲,入門級,沒有複雜的程式碼,只是簡單的功能實現,程式碼使用C#,unity版本2017 適合初學者提

迷宮遊戲最短路徑的選擇

我們主要通過一個棧來實現一個迷宮,用壓棧來記錄路徑 迷宮我們定義66大小的迷宮這個走法原則上是可以無限的,但是我們定義的我們必須需要考錄這個我們用棧實現這個迷宮需要考慮的問題,首先來說棧是有大小的啊,所以在沒有回溯的前提下,這個迷宮一直不走老路線也就是壓棧,這個對於66迷宮來說綽

迷宮

描述 當你站在一個迷宮裡的時候,往往會被錯綜複雜的道路弄得失去方向感,如果你能得到迷宮地圖,事情就會變得非常簡單。  假設你已經得到了一個n*m的迷宮的圖紙,請你找出從起點到出口的最短路。 輸入 第一行是兩個整數n和m(1<=n,m<=100),表示迷宮的

Unity GoldGame遊戲實現(Collision碰撞檢測)

遊戲介面: 遊戲實現思路: 遊戲開始隨機生成5個Box 鍵盤輸入控制Player移動 當Player碰撞到物體 檢測物體身上標籤  如果Tag為Box則Box銷燬 在其位置生成一個Gold 如果Tag為Gold則Gold銷燬 得分+1 遊戲實現過程: 所

深度優先搜尋:能否迷宮

題目 一個m×n的迷宮裡有很多鐳射,用其起點和終點座標(x1,y1,x2,y2)來表示。有鐳射的地方不能通過。當起點為(0,0),終點為(m,n),且移動只能為上下左右各一個單位,問能否從起點到達終點。輸入包括m和n,接著是鐳射的個數,每個鐳射的使用4個座標表

NOI題庫2.5 6264 迷宮

描述 當你站在一個迷宮裡的時候,往往會被錯綜複雜的道路弄得失去方向感,如果你能得到迷宮地圖,事情就會變得非常簡單。 假設你已經得到了一個n*m的迷宮的圖紙,請你找出從起點到出口的最短路。 輸入

自動尋找迷宮的最短路徑

演算法心得:1.利用廣度優先遍歷(bfs)實現尋找最短路徑2.利用樹的思想,將每走一步的終點與它的起點相連線,這樣就能在最後把整條最短路徑找出來#include<stdio.h> #include<stdlib.h> #include<time.

迷宮(C程式設計進階第9周)

問題描述 當你站在一個迷宮裡的時候,往往會被錯綜複雜的道路弄得失去方向感,如果你能得到迷宮地圖,事情就會變得非常簡單。 假設你已經得到了一個n*m的迷宮的圖紙,請你找出從起點到出口的最短路。 輸入

java 藍橋杯 迷宮

給一個 n 行 m 列的 2 維的迷宮,'S'表示迷宮額起點,'T'表示迷宮的終點,'#'表示不能通過的點,'.' 表示可以通過的點。你需要從'S'出發走到'T',每次只能上下左右走動,並且只能進入能

Scratch中做一個簡單迷宮遊戲,值得您收藏!

“ 孩子們都喜歡從彎彎繞繞中體驗冒險與成功,如果讓孩子參與迷宮設計,在組合排列中設計一條又一條“道路”,他的思維一定可以得到極大的鍛鍊,其中的成就感也是不言而喻的。”01——效果展示—---Scratc

1254:迷宮

style 最短 set 保存 遍歷 ring nbsp cst -s 背景:眾所周知,這道題還是個迷宮板子。。。。。 原理:廣搜,檢索路徑,將走過的和墻所在區域置為0,其他區域置為1(可以走)。那麽,用隊列存一下路徑,搜索每深一層,步數++,然後後退時步數再-回去就行了

C++遊戲——迷宮

大家想不想成名,那就一步步來吧,先寫一些小遊戲熱熱身。 下載地址 主程式程式碼: #include<conio.h> #include<stdlib.h> #inclu

CSS3實現五子棋Web遊戲,Canvas畫布和DOM兩種實現,並且具有悔棋和撤銷悔棋功能。

posit oct padding 角色 sar pac osi fse ech 用Canvas實現五子棋的思路: 1、點擊棋盤,獲取坐標x,y,計算出棋子的二維數組坐標i和j, 2、棋子的實現,先arc一個圓,再填充漸變色。 3、下完一步棋後切換畫筆和角色。 4、贏法算法

2048遊戲主要算法實現

mes 方向 時間限制 上下左右 print ron weight color ges http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=4681 4681: 2