999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

拼圖游戲APP的設計與實現

2019-03-25 08:01:52張國榮
電腦知識與技術 2019年3期

張國榮

摘要:App Inventor是一個可視化,開源免費的編程工具,能夠簡單快捷地創建Android平臺上的拼圖游戲APP。利用逆序數的奇偶性能夠判斷拼圖游戲的解是否存在,保證每一次隨機游戲都是能夠完成的。改進傳統的九宮格布局設置,拓展到四行三列拼圖的布局;采用微數據庫技術,保存游戲玩家的最新紀錄,從而增加了游戲的多樣性和可玩性。

關鍵詞:拼圖游戲;Android;App Inventor;逆序數;奇偶性;微數據庫

中圖分類號:TP319? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2019)03-0096-04

Abstract: App Inventor is a visual, free open-source programming tool, which allows the user to create a jigsaw puzzle application for Android platform. The inverse ordinal number can be used to judge whether the solution of jigsaw puzzle exists or not, and ensure that every random game is solvable. Different from the traditional Nine-palace layout, the game uses four rows and three columns layout, and uses micro-database technology to keep the records of game players. The game is more diverse and fun.

Key words:Jigsaw puzzle game; Android; App Inventor; reverse order number; parity; micro-database

1 概述

拼圖游戲是一款經典的休閑智力游戲,點擊屏幕上與空格相鄰的小圖片,交換空格和被點擊小圖片,直到最終恢復完整的大圖片,能夠以越少的點擊次數完成越成功。常見的拼圖游戲有3行3列的九宮拼圖和4行4列的十五子棋。

App Inventor是一款由Google公司開發的在線開放編程工具軟件,用于在Android平臺上構建移動應用。利用基于Web的圖形化用戶屏幕生成器,可以設計應用的外觀,然后像玩拼圖玩具一樣,將“塊”語言拼裝在一起,來定義應用的行為。用App Inventor來創建一個拼圖游戲APP,無需編寫傳統枯燥的代碼,只是通過拼裝一個個預設好的圖形化積木塊來實現App開發,避免了復雜的語法錯誤,從而使得軟件開發變得前所未有的輕松和有趣。

2 拼圖游戲APP的設計

拼圖游戲可以多行多列,常見的是3行3列的九宮格游戲[1-2],也有4行4列的十五子棋游戲,這里對傳統游戲進行改進,采用了4行3列的拼圖布局設置。

2.1設計思路

1)首先準備拼圖素材。選擇一幅圖片,如圖1,寬高大小裁剪成240 像素*320像素, 再通過圖形處理軟件將這副完整圖片切分成4行3 列, 形成12個80 像素*80 像素的小圖片,選用前面的11張小圖,第12張小圖片不采用,使得大圖片的右下角留出一個空格,便于游戲中小圖片的移動。

2)游戲運行后, 玩家可以看到完整的大圖片,單擊開始游戲按鈕,游戲開始,11個小圖片被隨機打亂,打亂的過程需要確保大圖一定可以通過移動小圖片恢復。

3)玩家單擊與空格相鄰的小圖片可以移動小圖片的位置,并判斷大圖片是否已經恢復完成。

4)拼圖成功會彈出一個對話框,如果創造了新的紀錄,將會提示保留。

5)游戲過程可以選擇退出游戲,也可以選擇重新開始游戲。

圖2是游戲的流程圖,邏輯結構并不復雜,難點在于如何確保隨機排列的小圖片一定可以通過移動恢復完成大圖片。

2.2需要解決的問題

根據游戲的設計思路,游戲需要解決兩個關鍵的問題。

1)如何判斷單擊的小圖片是可以移動的,也就是說,如何判斷單擊的小圖片是與空格相鄰的。

可以先計算空格的坐標,因為小圖片的寬度是80像素,所以所有位置的X坐標相加應該是960像素,那么960減去11個小圖片的X坐標就是空格的X坐標,同樣地,1440減去11個小圖片的Y坐標就是空格的Y坐標。再計算被單擊的小圖片與空格的距離,使用距離公式,知道兩個對象的坐標,可以很容易求出距離,如果被單擊的小圖片與空格的距離是80,則說明它與空格相鄰,可以移動到空格的位置。如果不是,則可以判斷小圖片與空格不相鄰,單擊無效。

2)游戲中大圖片是否一定可以恢復完成。

游戲是否一定有解,這個問題已經有很多研究成果[3-7],主要是討論九宮格游戲和十五子棋游戲是否有解的問題。網絡上也有很多討論,并且拓展到任意行和任意列的情形。所有討論的基本思路是類似的,就是利用逆序數的奇偶性來判斷拼圖游戲的解是否存在,這里,引用文獻[8]中的一個定理來判斷隨機打亂后的小圖片是否能夠通過移動恢復成大圖片。

定理:設兩個矩陣A和B,將矩陣從左到右,從上到下排成一個一維數組,設其逆序對的個數加上空白格在原矩陣所在的行列號之和P,若P(A)與P(B)的奇偶性相同,則兩個矩陣可以通過拼圖游戲規則進行轉換。

因此,假設需要還原的圖像缺的空格是右下角那一塊,我們按照從左到右,從上到下用數字表示每一個小圖片,右下角的空格用12表示,然后把數字排成一個排列1,2,…,12,顯然,這個排列沒有逆序對,空格的行列號之和(4+3=7)是奇數,所以P(A)是奇數,因此,打亂的小圖片必須滿足P(B)是奇數才能保證打亂后可以恢復到原來的圖像。例如,用數字表示小圖片,數字12表示空格,如圖3,那么打亂后的圖4有解,圖5沒有解。

3 拼圖游戲APP的實現

3.1設計組件,初始化數據

在組件設計的時候,使用11個圖像精靈組件放置11個小圖片。初始化數據時,把精靈放在一個列表中,精靈的初始位置和空格位置也分別存放在坐標列表中,同時創建一個隨機列表用來存放小圖片打亂后的順序,變量“步數”用來記錄游戲過程中移動的步數,變量“空白區域X”和“空白區域Y”記錄空格的坐標,變量“是否成功”記錄游戲是否成功完成,游戲打開時,還需要讀出數據庫,把以前的記錄讀取出來,還要設置小圖片開始時不能點擊的,因為游戲還沒有開始。

3.3單擊小圖片,與空格對換

游戲通過單擊小圖片,讓小圖片與相鄰的空格對換,多次操作,小圖片可以移動到原來的位置。移動前,需要計算空格的位置,然后計算小圖片與空格的距離,判斷小圖片是否與空格相鄰,如果相鄰,則小圖片和空格對換。單擊小圖片的操作是一樣的,所以代碼是類似,這里只列出第一個小圖片的代碼。

3.4判斷圖像恢復完成

每一次單擊小圖片,移動小圖片之后,都需要檢查是否所有小圖片都恢復到原來的位置,如果所有小圖片已經恢復完成,給出提示信息,如果創造新的紀錄,則保存在微數據庫中。所有精靈不啟用,游戲結束。

3.5運行結果及討論

游戲開發完成后,測試運行順利,說明對小圖片排列的順序打亂有效而且可解,游戲更加多樣和好玩。更進一步地發現,游戲中的小圖片可以修改成任意行任意列,完整大圖的空格也可以出現在任何一個位置。

4 結論

拼圖游戲是一款經典的休閑智力游戲,不管在計算機還是在手機上都吸引著不少人參加,使用App Inventor這個開發工具,可以簡便的開發出在手機上運行的應用,而且,游戲改變了傳統的3X3或4X4布局,考慮解的存在問題,具有一定的實用價值和意義。

參考文獻:

[1] 蔡艷桃. App Inventor隨機九宮格拼圖的實現[J].計算機光盤軟件與應用,2014(9):172-173.

[2] 余戰秋. 基于App Inventor的九宮格拼圖游戲設計與實現[J].電腦編程技巧與維護,2017(18):34-36.

[3] 畢智超. 基于重排九宮問題的算法設計與實現[J]. 技術與市場,2017, 24(9):53-54.

[4] 黃沛杰. 重排九宮問題的分析與實現[J]. 現代計算機,2003(12):74-77.

[5] 杜海清. 快速判斷“重排九宮”初始狀態解的存在性[J].計算機應用,1993(6):59-61.

[6] 易校尉. 重排九宮問題的推廣及可解性定理[J].武漢工業學院學報,2013,32(3):58-60.

[7] 吳辰渝, 常文武.15子棋的數學探究[J].上海中學數學,2012(1):95-96.

[8] realmagician. 拼圖游戲可解性判斷[EB/OL]. https://blog.csdn.net/realmagician/article/details/17395035.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 国产成人久久777777| 亚洲 欧美 日韩综合一区| 在线欧美日韩| 日韩国产综合精选| 综合天天色| 无码粉嫩虎白一线天在线观看| 高清视频一区| 国内黄色精品| 欧美精品成人| 国产精品亚洲五月天高清| 高清久久精品亚洲日韩Av| 青青青视频蜜桃一区二区| 国产成人综合在线视频| 欧美在线导航| 亚洲男人的天堂久久香蕉网| 亚洲综合网在线观看| 亚洲色图另类| 久久伊人操| 在线欧美一区| 青青青国产视频| 国产成人综合亚洲欧美在| 香蕉99国内自产自拍视频| 亚洲有无码中文网| 国产丰满大乳无码免费播放| 99精品热视频这里只有精品7| 日韩高清中文字幕| 国产欧美日韩综合一区在线播放| 国产精品成人免费视频99| 精品久久久久成人码免费动漫| 欧美黄色a| 中文字幕 欧美日韩| 国产精品污污在线观看网站| 欧美成人免费午夜全| 国产亚洲视频中文字幕视频| 亚洲精品视频免费观看| 国产亚洲精品自在久久不卡| 美女高潮全身流白浆福利区| 国产精品亚洲五月天高清| 草草影院国产第一页| 午夜限制老子影院888| 久操线在视频在线观看| 国模视频一区二区| 久久精品无码中文字幕| 国产成人久久综合777777麻豆| 亚洲男人天堂网址| 色婷婷电影网| 91精品视频网站| 亚洲高清在线播放| 日本高清有码人妻| 国产丝袜丝视频在线观看| 超碰aⅴ人人做人人爽欧美 | 国产不卡网| 欧美日韩久久综合| 精品伊人久久久香线蕉| 日本中文字幕久久网站| 91九色国产porny| 国产免费久久精品99re丫丫一| 久久综合AV免费观看| 国产一级毛片网站| 九色综合伊人久久富二代| 在线观看视频99| 69国产精品视频免费| 亚洲精品麻豆| 欧美在线伊人| 欧美日韩中文字幕二区三区| 2018日日摸夜夜添狠狠躁| 亚洲国产AV无码综合原创| 一区二区在线视频免费观看| 久久亚洲美女精品国产精品| 久久久久久午夜精品| 久久精品免费国产大片| 老司国产精品视频| 欧美国产成人在线| 欧美日本不卡| 久草视频中文| 国产精品亚洲天堂| 国产成人综合在线视频| 免费在线色| 美美女高清毛片视频免费观看| www.99在线观看| 夜夜爽免费视频| 女人18毛片久久|