亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        連連看游戲的設計及其實現(xiàn)

        2015-07-18 12:09:44趙海國
        關鍵詞:小方塊數(shù)組連線

        趙海國, 屈 洋

        (湖南理工學院 數(shù)學學院, 湖南 岳陽 414006)

        連連看游戲的設計及其實現(xiàn)

        趙海國, 屈 洋

        (湖南理工學院 數(shù)學學院, 湖南 岳陽 414006)

        連連看游戲是一款界面友好、操作簡單、趣味性強的經典小游戲. 本文闡述了基于圖形用戶界面的連連看游戲的算法設計思想和游戲開發(fā)流程, 對開發(fā)其他各類游戲有一定的借鑒價值.

        連連看小游戲; 圖形用戶界面; 圖形小方塊

        連連看游戲是一款界面友好, 操作簡單, 無需安裝客戶端, 深受大眾喜愛的經典趣味小游戲. 任何用戶都能在電腦、手機等各類客戶端上輕松地登錄游戲并進行游戲操作, 所以該游戲迅速躋身為全球最受歡迎的游戲之一. 基于連連看游戲的經典性和應用廣泛性, 本文使用Java語言設計了一個基于圖形用戶界面的連連看游戲, 著重闡述了連連看游戲的算法設計思想和游戲開發(fā)流程, 對開發(fā)其他各類游戲有一定的借鑒價值.

        1 連連看游戲設計簡介

        連連看游戲設計分為三個主要部分: 游戲主菜單設計, 游戲圖形界面設計、游戲算法設計, 如圖1所示.

        圖1 游戲模塊設計圖

        連連看游戲用戶登陸游戲頁面后, 選擇開始按鈕便能進入游戲. 系統(tǒng)將游戲難度分為1至9個不同的等級, 用戶可以自行選擇游戲難度, 用戶選擇任意難度等級后直接進入游戲界面. 游戲界面由若干行若干列成對出現(xiàn)的圖形小方塊組成. 根據(jù)游戲難易程度不同, 圖形小方塊中放置著不同數(shù)量的成對圖形, 用戶通過鼠標點擊的方式選擇界面中不同位置的兩個相同圖片. 如果這兩個圖片在中間沒有障礙的情況下可以連線成功, 則系統(tǒng)會實現(xiàn)圖片消除, 否則界面不變化, 用戶需重新選擇重新判斷, 直到界面中所有圖片都被消除完畢, 則表明游戲成功. 用戶如果是新手則可以先看游戲演示, 了解游戲的操作過程, 再自己進行游戲操作. 如果選擇的游戲難度太大, 則用戶可以選擇提示按鈕, 系統(tǒng)會提示用戶進行下一步的正確操作. 如果用戶覺得本次游戲界面上圖片排列太雜亂, 則可以選擇刷新按鈕重新生成界面再繼續(xù)游戲操作,

        具體操作流程如圖2所示.

        圖2 游戲流程圖

        2 連連看游戲算法設計

        連連看游戲的主要算法包括游戲開始階段的數(shù)據(jù)初始化算法, 圖片加載顯示算法, 游戲過程中的圖片連線成功判別及圖片消除算法, 游戲成功判別算法等等. 游戲主體程序如下:

        const int ROW=8;//定義二維數(shù)組的行數(shù)

        const int COL=8;// 定義二維數(shù)組的列數(shù)

        int gameData[ROW][COL]; // 定義用于存放圖形的二維數(shù)組

        void initData( );//數(shù)據(jù)初始化函數(shù): 將32對圖片順序存入二維數(shù)組, 用隨機函數(shù)打亂元素位置

        void displayData( );// 加載游戲數(shù)據(jù), 圖片顯示函數(shù): 使用循環(huán)語句顯示二維數(shù)組中各個圖片

        bool canClear(int x1,int y1,int x2,int y2);

        //連線判別消除函數(shù): 圖片配對成功并連線成功則返回1, 否則返回0

        bool isVictory( ); //游戲成功判別函數(shù): 游戲成功則返回1, 否則返回0

        int main(int argc, char *argv[])

        {

        initData( );//生成游戲數(shù)據(jù), 完成游戲數(shù)據(jù)初始化

        void displayData( ); //加載游戲數(shù)據(jù), 顯示游戲界面

        int x1,y1,x2,y2;

        while(true) //循環(huán)選擇并消除圖形配對成功并連線成功的圖形小方塊, 直到游戲結束

        {選擇不同位置的兩個圖形小方塊, 將坐標記入(x1,y1)和(x2,y2)

        if canClear(int x1,int y1,int x2,int y2)

        { 消除圖片 }

        if isVictory( ) break; //游戲結束則跳出while( )循環(huán)

        }

        }

        連連看游戲開始階段的數(shù)據(jù)初始化算法initData( )實現(xiàn)并不復雜: 由于整個游戲界面采用的是地圖設計, 地圖采用GUI編程的網格布局, 以八行八列的地圖網格布局為例, 即將整個游戲操作區(qū)域看作是由8 864×=個小方塊組成的一幅地圖, 每一個小方塊放置著相應的圖案, 稱為圖案小方塊[1]. 這些圖案小方塊都是成對出現(xiàn)并隨機分布在地圖的各個位置, 初始化算法中需要先定義一個存放圖片數(shù)據(jù)的二維數(shù)組gameData[8][8], 注意二維數(shù)組的下標要和網格布局的行數(shù)和列數(shù)相同, 通過使用循環(huán)語句將8 864×=張且為32對圖片依次順序存放在二維數(shù)組中, 再使用隨機函數(shù)打亂二維數(shù)組中各個圖形元素的位置, 從而完成游戲數(shù)據(jù)的初始化.

        連連看游戲的核心算法是游戲過程中的圖片連線成功判別及圖片消除算法canClear(int x1,int y1,int x2,int y2), 該算法實現(xiàn)過程為: 從游戲界面的圖形小方塊中選擇具有相同圖案的圖案小方塊, 若它們符合連線消除算法要求, 通過點擊選中圖案就會消失, 實現(xiàn)連連看操作. 連連看游戲運行過程中, 若游戲愛好者選中的兩個圖案小方塊配對成功了, 并且選中的兩個圖案小方塊在中間沒有任何障礙物阻礙的情況下,可以通過直線直接, 或者有一個折點的垂直線段組合連接, 或者有兩個折點的垂直線段組合連接[3], 則這兩個圖案小方塊可以消除, 游戲繼續(xù)進行, 直至界面中所有圖形小方塊都被消除完畢. 可見, 實現(xiàn)連連看操作的核心算法就是要先檢測到具有相同圖案的圖案小方塊, 再檢驗這兩個方塊能否消除. 也就是說兩個圖案小方塊要能真正實現(xiàn)消除, 不僅需要圖片配對成功, 還需要連接成功, 兩個條件缺一不可:

        (1) 圖片配對成功: 選擇的不同位置上的兩個圖案小方塊有完全相同的兩幅圖案.

        (2) 圖片連接成功: 用戶通過鼠標點擊選擇了兩個不同位置的圖案小方塊, 這兩個圖案小方塊在中間沒有障礙物阻礙的情況下, 可以用水平或堅直的直線段連接起來; 或者是連接這兩個圖案小方塊的水平或豎直的直線段組合的折點個數(shù)不超過兩個.

        成功實現(xiàn)圖片配對非常簡單, 只要在二維數(shù)組所對應的八行八列網格中對不同的圖片定義不同的名稱, 檢測名稱相同則表示圖片相同;

        成功實現(xiàn)圖片連接過程: 判斷連線能否成功要看連接兩個相同圖案小方塊的直線組合, 若連接兩個相同圖案小方塊的直線組合為以下三種類型則連線成功[2]:

        (1) 直線連接圖片方式, 如圖3中第一個, 第二個子圖的類型;

        (2) 一個折點的垂直線段組合連接圖片方式[3], 如圖3中第三個的類型;

        (3) 兩個折點的垂直線段組合連接圖片方式[3], 如圖3中第四個, 第五個, 第六個子圖的類型.

        圖3 圖片連接方式圖

        連連看游戲的第三塊主要算法為游戲界面上圖片連線消除后的游戲結束判別算法isVictory( ). 連連看游戲運行后, 游戲界面中所有圖形小方塊的連接都已經完成了之后, 最終需要判斷游戲是否勝利. 判斷的方法為: 程序為每個圖形小方塊設計了消除標志并初始化, 每次被消除后則修改消除標志, 最后檢測地圖網格中的所有圖片的消除標志, 只要檢測到地圖中有一個圖案方塊還沒有被消除, 則證明游戲沒有結束; 若檢測到地圖中每一個圖案方塊都已經被消除, 則游戲結束.

        3 連連看游戲運行及測試

        (1) 系統(tǒng)環(huán)境創(chuàng)建

        在windows7操作系統(tǒng)下安裝JDK7.0, 配置系統(tǒng)環(huán)境變量.

        安裝MyEclipse 10并且安裝相配套的插件.

        (2) 連連看游戲運行及測試

        設計相關的類[4], 設計相應的算法, 數(shù)據(jù)初始化算法, 圖片加載算法, 圖片消除算法, 游戲成功判別算法等等. 完成界面設計, 調試算法,初始化進入游戲界面進行游戲測試. 點擊開始游戲進入游戲初始戶界面, 效果如圖4所示.

        圖4 游戲操作界面圖

        連連看游戲操作簡單, 游戲規(guī)則也簡單, 游戲測試中用戶自行選擇1到9級任意難度進入游戲開始測試, 用戶選擇界面內可以用直線連接并相互匹配的兩個圖片, 點中這兩個圖片實現(xiàn)消除; 用戶選擇界面內可以用不多于兩個折點的垂直線段組合連接的兩個圖片, 點中這兩個圖片實現(xiàn)消除; 用戶點擊刷新隨機改變界面內所有圖片位置重新開始游戲; 用戶點擊游戲提示, 系統(tǒng)提示用戶一組可以消除的圖片實現(xiàn)消除; 用戶點擊系統(tǒng)演示, 電腦自動消除界面內圖形小方塊中所有配對圖片直至游戲結束. 通過用戶測試, 游戲的各項功能皆已實現(xiàn).

        連連看游戲不僅滿足了日常生活中的常用游戲功能需求, 而且具有操作簡單, 界面美觀, 功能齊全, 趣味性強等優(yōu)點, 是一款深受大眾喜愛的經典趣味小游戲.

        [1] James Cohoon, Jack Davidson. Java程序設計[M]. 北京: 清華大學出版社, 2005

        [2] 吳其慶. Java程序設計經典教程[M]. 北京: 冶金工業(yè)出版社, 2005

        [3] 夏先波. Java JDK實例寶典[M]. 北京: 電子工業(yè)出版社, 2007

        [4] Bruce Eckel. Java編程思想[M]. 北京: 機械工業(yè)出版社, 2007

        Design and Implementation of Lianliankan Game

        ZHAO Hai-guo, QU Yang
        (College of Mathematics, Hunan Institute of Science and Technology, Yueyang 414006, China)

        Lianliankan (a matching game) is a kind of classic games with friendly interface, simple operation and strong interest. This paper describes the algorithm design idea and development process of Lianliankan game based on graphical user interface, which has some reference value for developing other games.

        Lianliankan game; Graphical User Interface(GUI); graphic squares

        TP317.6

        A

        1672-5298(2015)03-0039-03

        2015-06-18

        趙海國(1980- ), 女, 湖南邵陽人, 碩士, 湖南理工學院數(shù)學學院講師. 主要研究方向: 計算機應用

        猜你喜歡
        小方塊數(shù)組連線
        索瑪立方體
        JAVA稀疏矩陣算法
        電腦報(2022年13期)2022-04-12 00:32:38
        快樂連線
        快樂語文(2021年27期)2021-11-24 01:29:24
        快樂連線
        快樂語文(2021年11期)2021-07-20 07:41:48
        快樂連線
        快樂語文(2020年36期)2021-01-14 01:10:44
        JAVA玩轉數(shù)學之二維數(shù)組排序
        電腦報(2020年24期)2020-07-15 06:12:41
        快樂連線
        快樂語文(2019年12期)2019-06-12 08:41:56
        小方塊知多少
        列式計算有學問
        尋找勾股數(shù)組的歷程
        久久综合九色综合欧美狠狠| 中文国产乱码在线人妻一区二区 | 亚洲成av人片在线观看无码 | 亚洲伦理第一页中文字幕| 久久久久亚洲精品男人的天堂| 天天躁日日躁狠狠很躁| 午夜毛片午夜女人喷潮视频| 亚洲成人激情在线影院| 国产乱人精品视频av麻豆网站| 女局长白白嫩嫩大屁股| 国产精品丝袜黑色高跟鞋| 最新国产精品精品视频| 在线免费看91免费版.| 国产丶欧美丶日本不卡视频| 亚洲欧美日韩高清专区一区| 人妻丝袜中文字幕久久| 亚洲一区二区三区精品| 午夜性无码专区| 亚洲欧洲精品国产二码| 国产av熟女一区二区三区蜜臀| 亚洲中文无码av永久| 国产成人av性色在线影院色戒| 亚洲女同成av人片在线观看| 亚洲国产一区二区av| 精品伊人久久大线蕉色首页| 97一区二区国产好的精华液| 人妻少妇精品一区二区三区| 国产成人高清在线观看视频| 国产精品无码久久久久久| 亚洲AV秘 片一区二区三| 久久久免费精品国产色夜| 波多野结衣中文字幕一区二区三区| 婷婷五月综合缴情在线视频| 亚洲国产免费公开在线视频 | 失禁大喷潮在线播放| 精品亚洲一区二区99| 一区二区三区日本伦理| 亚洲av片一区二区三区| 91啦视频在线观看| 精品人妻码一区二区三区红楼视频| 国产亚洲精品美女久久久|