homework1: 印象深刻的错误
生活随笔
收集整理的這篇文章主要介紹了
homework1: 印象深刻的错误
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ?在上個學期的學習中,有一門課程叫WEB開發,有一次作業是要求做一個拼圖,規則是4x4,有15張圖片和1個空格,用鼠標點擊圖片,若周圍有空格則可以移動,外觀大概如下:
所以首先要解決的問題是,如何判斷當前點擊的圖片周圍有空格。 我的做法是創建一個數組,把1到16存入,然后隨機打亂數字,16代表空白格(實際是一張白色圖片),把打亂的數字按順序放入格子中,然后就判斷當前點擊的格子周圍的四個格子中有沒有16就可以了。 若周圍有16,則把這個格子中的圖片src換掉,實現圖片的“移動”。這個想法聽起來可行,但是實際操作時,遇到了一個問題。我點擊邊緣處的格子,判斷條件有的地方沒有考慮周全。比如這段代碼:
?
| $("img").click(function () { | |
| ? | if(isgameover==false) |
| ? | { |
| ? | var n=0; |
| ? | var a = $(this).attr("id"); |
| ? | var b = parseInt(a); |
| ? | var temp; |
| ? | if (blocks[b - 2] == 16 ) { |
| ? | $("#g" + b + " img").attr("src", "../image/" + blocks[b - 2] + ".jpg"); |
| ? | $("#g" + (b - 1) + " img").attr("src", "../image/" + blocks[b - 1] + ".jpg"); |
| ? | temp = blocks[b - 2]; |
| ? | blocks[b - 2] = blocks[b - 1]; |
| ? | blocks[b - 1] = temp; |
| ? | steps = steps + 1; |
| ? | ? |
| ? | $("#bushu").text(steps); |
| ? | }? |
這段代碼中,考慮的條件是b-2,也就是想判斷當前點的格子左邊的那個格中是否為16,但是忽略了換行的情況,因為畢竟這是一個4X4的排列,不是一個直線,這樣后果是,點擊某行的第一個格,可能和上一行最后一個格交換。所以我優化了一下,條件改為如下,這個錯誤就解決了。
if (blocks[b - 2] == 16 && b != 5 && b != 9 && b != 13)
?
轉載于:https://www.cnblogs.com/cricketvaxes/p/6475626.html
總結
以上是生活随笔為你收集整理的homework1: 印象深刻的错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我最印象深刻的编程错误经历
- 下一篇: cura-engine学习(1)