首頁 現(xiàn)實

程序媛養(yǎng)成計劃

第四十三章 第一次接觸

程序媛養(yǎng)成計劃 任煦之秋 2065 2020-05-16 21:41:48

  聽老爹這么一說,我心里居然產(chǎn)生了一種勝利就在前方的感覺,照這么算來的話,C語言的內(nèi)容也不是很多嘛。

  當然了,隨著我對編程世界的了解逐漸加深,才深感我這個時候還是too young too simple。C語言就像是「道生一,一生二,二生三,三生萬物」中的三,催生了程序的萬物。

  「指針」這詞語被老爹提起不是一次兩次了,現(xiàn)在老爹由對塔它如此推崇備至,不免讓我對它產(chǎn)生那么一絲絲好奇。

  函數(shù)這部分內(nèi)容涉及到的理論知識的確還是太多了,在老爹的帶領下,我們重頭到位將理論知識實踐了三遍才理解透徹。到了這一步,自然少不了把推箱子游戲優(yōu)化完成。畢竟我能夠堅持到這個時候,很大程度上取決于想將這個程序寫好。

  由于我和小弦子的開發(fā)經(jīng)驗的確是太少了,所以一時之間根本就沒有辦法在現(xiàn)有代碼的基礎上抽出關鍵信息。老爹思慮了一番,決定以此為契機,培養(yǎng)我們在這方面的意識。

  「我們先來剖析一下,在對灰太狼上下左右四個方向按鍵的邏輯處理上的相同點和不同點。首先來說相同點:需要判斷灰太狼移動的方向下一個位置,下下個位置,以此來決定是否進行移動。如果要移動,進行相應的邏輯處理,如修改地圖數(shù)組中內(nèi)容,移動灰太狼圖片。

  不同點其實只有一個:方向不同,因為方向不同造成灰太狼下個位置,下下個位置不同。

  按照我們之前的邏輯,我們是在代碼中是根據(jù)方向來確定灰太狼的下一個位置、下下個位置的坐標,如果我們事先知道了下個和下下個位置的坐標,那么邏輯處理是不是就能夠統(tǒng)一了?」

  老爹一句點醒夢中人,我和小弦子在一瞬間恍然大悟。歸根究底,一切的不同就是因為方向,進而造成了確定灰太狼下個、下下個位置的坐標的過程不同。

  如果確定了下個、下下個位置的坐標,在進行判斷的時候就可以直接通過坐標來獲取地圖數(shù)組對應位置的值進行判斷即可,那么判斷邏輯自然就統(tǒng)一了!

  分析到這里,我感覺問題已經(jīng)解決了,恨不得立刻動手,先寫為快。

  「所以現(xiàn)在問題來了,我們應該如何根據(jù)方向來確定灰太狼下個和下下個位置的坐標。

  目前我們已知的條件是灰太狼當前位置的坐標以及灰太狼移動的方向,答案肯定要從這兩個已知條件來獲取。

  給你們10分鐘的考慮時間,看看能不能確定這其中的關系?!?p>  老爹笑了笑,說完就燒開水泡茶去了。

  我和小弦子聞言后就開始思考這個問題,只見小弦子不斷在空中比劃,好像是在演算什么。

  我的空間想象能力不如小弦子,于是只能取來筆和紙畫了一個網(wǎng)格,開始尋找這其中的關系。

  在我剛剛將灰太狼前后左右的坐標標出來后,我好像就發(fā)現(xiàn)了其中的規(guī)律所在。

  假設灰太狼當前的位置坐標為x=3,y=4,那么它向上移動的下一個位置的坐標就是x=2,y=4;向下移動的下一個位置的坐標是x=4,y=4;向左移動的下一個位置的坐標是x=3,y=3,;向右移動的一個位置的坐標是x=3,y=5。

  也就是說,如果向上或者向下移動,是對x做加減,向左或者向右移動,是對y做加減。

  等等,按照這個邏輯,下下個位置的坐標好像也能夠確定了。

  向上,下下個位置的坐標為x=1,y=4;

  向下,下下個位置的坐標為x=5,y=4;

  向左,下下個位置的坐標為x=3,y=2;

  向下,下下個位置的坐標為x=3,y=6;

  上下方向的規(guī)律是:下個位置坐標的x=灰太狼坐標的x±1,下下個位置坐標的x=灰太狼坐標的x±2。

  同理左右方向的規(guī)律是:下個位置坐標的y=灰太狼坐標的y±1,下下個位置坐標的y=灰太狼坐標的y±2。

  「邏輯是沒錯,關系也很容易的出來,通過switch語句來判定方向,然后就能夠確定下個位置和下下個位置的坐標了。

  這樣實現(xiàn)功能是沒有什么問題了,但總覺得似乎還有其他的辦法?能不能不通過switch來判斷方向?對了,方向按鍵有自己的鍵值,左37,上38,右39,下40,這其中會不會有什么聯(lián)系?」

  在將坐標和方向的關系理清了后,我又開始考慮如何在不使用switch語句的情況下來計算出下一個位置以及下下個位置的坐標。

  一旁的小弦子摸著下巴,眉頭緊皺,想必也是陷入了某個死胡同當中。

  10分鐘悄然而過,然而我還是沒有想出如何通過鍵值和灰太狼當前的位置坐標來推算出下一個位置坐標。

  「怎么樣,小家伙們?有沒有什么收獲呀?」

  老爹笑著問道。

  「上下方向的規(guī)律是:下個位置坐標的x=灰太狼坐標的x±1,下下個位置坐標的x=灰太狼坐標的x±2。

  左右方向的規(guī)律是:下個位置坐標的y=灰太狼坐標的y±1,下下個位置坐標的y=灰太狼坐標的y±2?!?p>  我和小弦子一起回答道。

  然而我們倆卻不約而同地露出了一副苦瓜臉,絲毫沒有因為得出了這個規(guī)律而沾沾自喜。

  不僅如此,就連坐在一旁的六叔叔都露出了一副沉思的樣子。

  「對呀,那你們兩個小家伙還一副愁眉苦臉的樣子?」

  老爹啞然。

  「老爹,我總覺得按鍵的鍵值和這個規(guī)律應該是有某種聯(lián)系的,如果能夠找出來這種聯(lián)系,我們就可以不使用switch了!可是我想了半天也沒有想出這種關系是什么。」

  我嘆了一口氣。

  「我贊同玥玥的說法,也認為鍵值和這個規(guī)律必然存在某種聯(lián)系!可惜始終沒有找到這其中的關鍵所在?!?p>  小弦子也是皺著眉頭說道。

  「嗯,不錯不錯,你們已經(jīng)在開始鉆研算法的問題了,算是和它的第一次接觸了吧!雖然還很淺顯,但這是一個好的開端。你們說得沒錯,鍵值的確和這個規(guī)律有著聯(lián)系,一旦找到了這個聯(lián)系,就可以通過計算的方式把規(guī)律給呈現(xiàn)出來,從而達到不使用switch的目的?!?p>  

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設置
設置
書架
加入書架
書頁
返回書頁
指南