王晨+丁濛



摘 要: 本系統以亞馬遜棋游戲作為研究對象,在Windows平臺下,運用QT語言編寫代碼實現了一個具有智能、個性化的人機和人人亞馬遜棋博弈系統。該系統的界面設計采用卡通的像素風格,除了具有常規的菜單界面、游戲對戰界面外,還設置了行棋記錄、悔棋位置顯示、棋子運動動畫顯示等界面,實現了用戶可根據自己的愛好調節背景音樂、效果音樂音量大小等功能。實驗表明該系統是可行并有效的。
關鍵詞: 個性化;亞馬遜棋;界面設計;計算機博弈
中圖分類號:TP391
文獻標志碼:A
文章編號:2095-2163(2017)02-0078-03
Abstract:In this system, the Amazon game is the object of study. Under the platform of Windows,the QT language code is used to realize an intelligent and individualized human-computer and person-person Amazon game system. The interface design of the system adopts the cartoon pixel style. Besides the conventional menu interface and game interface, it also sets the interface of row chess record, regret chess position display and chess movement animation display. Users are able to adjust the background music and volume of the effect music. Experiments contend that the system is feasible and effective.
Keywords:individuation;game of Amazon; interface design; computer game
0 引 言
計算機博弈是人工智能一個傳統而重要的研究領域。現今以計算機博弈為代表的人工智能技術在計算機游戲中的應用,極大地提高了游戲的娛樂性,已然成為計算機游戲品級確認的核心保障。計算機博弈系統的界面是系統的外在直觀表現,是博弈軟件系統和玩家交流的門戶語言,所以系統界面設計在整個系統研發中發揮著舉足輕重的關鍵作用。
亞馬遜棋是由阿根廷沃爾特Zamkauskas 于1988年發明的雙人抽象策略游戲,是圈地游戲家族中的一員,同時與國際象棋也形同遠親。亞馬遜棋[1]的棋盤由黑白相間的10*10的方格組成,雙方右下角為白色格子。棋子每方有4個棋子。時下通用的行棋規則為:
1)每個棋子都相當于國際象棋中的皇后,其行棋方法與皇后相同,可以在8個方向(上、下、左、右、左上、左下、右上、右下)上任意行走,但不能穿過阻礙;
2)當輪到一方行棋時,此方只能、而且必須移動4個Amazons中的一個,并在移動完成后,由當前移動的棋子釋放一個障礙,障礙的釋放方法與棋子的移動方法相同(8個方向,但不能穿過障礙),同樣障礙的放置也是由規則內部生成的;
3)當某方完成某次移動后,對方4個棋子均不能再移動時,對方將輸掉比賽;
4)每次開局位于棋盤下方的玩家將執先手行棋;
5)整個比賽中,雙方均不能吃掉對方或己方的棋子或障礙。
亞馬遜棋不僅能增強思維能力,改善記憶力,而且富含哲理,有助于修身養性。亞馬遜棋游戲程序[2-3]的開發使得亞馬遜棋同款游戲得到了高效推廣及流行,也有越來越多的人開始喜愛并投身于這一游戲活動中。但是,其界面設計在直觀視覺上卻顯得單調無趣、且呆板生硬,這樣就使玩家無法盡享棋局中的玄妙與樂趣。
基于此,本文設計開發了一個別樣的個性化亞馬遜棋游戲,目的是讓人們在游戲中享受與電腦激戰的樂趣,緩解身心疲勞,開發才智,從而大幅提升亞馬遜棋的大眾接受度及風靡程度。
1 個性化亞馬遜棋游戲主界面設計
一個優秀的游戲系統應該展現一個令人賞心悅目的游戲界面,同時更要具備人性化特質,讓玩家操作起來倍感流暢且自然。本文亞馬遜棋界面采用卡通生動的像素風格,這樣當玩家打開游戲之后,輕松感覺撲面而來,能夠愜意地融入到這個游戲的氛圍中來。整個界面主要由2個模塊組成,分別是:左側的棋盤模塊、右側的菜單模塊,具體如圖1所示。在此,則將對左、右側模塊的功能設計給出如下闡釋解析。
1.1 棋盤模塊
棋盤模塊(chesswidget)是該游戲的主體模塊。本文棋盤使用QT中QPaintEvent繪圖事件來實現,這樣當玩家執行了某一操作后,系統可以即時改變游戲中的元素。為了讓界面看起來簡約清新并且棋盤劃分清晰,棋盤的背景主要是由3個圖片拼接而成,視覺呈現則如圖2所示。
在960*960像素的界面中,每80*80像素對應著一個位置,在二維數組中正好是12*12,數組中不同的數字代表不同的物件,例如1是紅色棋子,2是藍色棋子,等等……。各種圖片由QPixmap組件來裝載,隨著游戲的進展,圖片也會隨著數組中值的不同而發生改變。為了讓用戶更為直接地感受到棋子狀態的變化,本程序總共用11個不同圖片來表示棋子和障礙,并且使用侵略性更強的紅色代表先手方,用偏沉穩一些的藍色代表后手方,詳情如圖3所示。
另外,考慮到用戶可能會因為邊界不清導致誤操作,本程序在用戶操作棋盤時將鼠標改為黑色方框如圖4所示,與此同時方框上下左右對準的坐標元素會特別加重顯示,設計細節可見于圖5,這樣即可使用戶知道光標的所在位置,實現方法是先在移動事件中獲取當前鼠標位置,通過計算找到上下左右四個字符數字組件,而后將關聯圖片做出指定改變。
1.2 菜單模塊
游戲過程中,用戶可能會想看到自己或對手的行棋記錄,或者重新開始游戲等等,添加這個模塊的目的是讓該游戲系統功能更趨完善,并主要由5個按鈕集結構成,分別為:開始游戲、游戲記錄、悔棋、選項、展開菜單。其中,開始按鈕設計提供了系統狀態的總體控制,也就是:單人游戲、雙人游戲和歡迎界面間的切換均由其實施選擇操縱。
在游戲過程中,如果菜單界面始終前置,勢必會在視覺上對玩家造成影響,所以引入展開菜單按鈕即是旨在當需要時實現菜單隱藏。同時,聲音調節也至關重要,選項按鈕可以用來調節音量的大小,用格子填充的形式可以使調節過程顯現生動視覺效果,用QMediaPlayer中的setmedia函數可以開發生成這一功能。在細節上,為了使用戶感受到按鈕是“活”的,當鼠標移動到按鈕上時,按鈕組件的圖片會發生改變,點擊之后又會有不同變換,這是通過QT中的MouseMoveEvent()來支持獲得的,系統會接收光標的位置,當位置到達按鈕范圍內時,通過邏輯選擇啟動函數。
2 個性化亞馬遜棋游戲子界面設計
為了讓用戶更多地融入并享受游戲過程,一些重點細節上的功能研發是必不可少的,為此本系統加入了記錄模塊和提示信息模塊。詳情論述闡析如下。
2.1 記錄模塊設計
棋類游戲功能運行的控制關鍵就是記錄,用戶可以看到自己和對手的行棋記錄,在這個窗口中將會顯示出從游戲開始以來所有的行棋步驟。記錄方式是根據橫向坐標A-J,縱向坐標1-10來設計展開的。這些記錄的來源是一個三維數組,三維數組用來存儲行棋步,行棋記錄處理即如圖6所示。
2.2 提示信息模塊設計
考慮到玩家想看到更詳細的行棋記錄,本系統加入了提示信息模塊。基于亞馬遜棋的特殊性,棋子移動會有一些重復的位置,只有障礙的位置是不變的,因而本系統在設計給出的提示信息模塊中就可以看到所有之前施放過的障礙,再通過點擊其中的某一個障礙,玩家就會看到曾經施放此障礙的完整過程,這種可視化的方式明顯便于玩家觀察行棋記錄。
除上面論及的功能之外,信息模塊還提供一些行棋過程中的提示信息,顯示棋子下一步可移動位置:當光標點擊或者指定至可以移動的棋子時,在棋盤可以顯示出其能夠移動到的位置,效果展示如圖7所示。在激活這個功能之后,光標在這些位置上移動時將會顯示出路徑,其風格設計模式則如圖8所示,這樣可以方便玩家觀察能移動到的位置,實現方法是通過調用規則算法來篩選這些一步能走到且中間無障礙的點。如果悔棋的位置不能在界面上形成標識,就可能給玩家制造現實繁瑣,所以模塊的另一個功能:顯示悔棋的點。在鼠標移動到悔棋按鈕之上時,顯示可悔棋的點。若在雙人游戲中,顯示的是上一步棋(包括初始點、落棋點、落障礙點);若在單人游戲中,顯示的就是雙方上一步的位置。單雙人視景影像的不同主要是考慮到單人游戲只悔一步的話是沒有意義的。
3 結束語
亞馬遜棋計算機博弈系統的研究還在不斷發展中,本文給出一種個性化亞馬遜棋博弈游戲系統的設計思想,同時提供一些獨特的功能設計,進而開發論述了系統中重點模塊的設計與實現方法。亞馬遜棋博弈程序的研究,不但會給計算機博弈帶來有益推動,甚至在一定程度必將給整個人工智能領域構迼、并開啟新的進程及方向。
參考文獻:
[1]Technical Committee of Computer Games, Chinese Association for Artificial Intelligence. University Computer Games Championship & National Computer Games Tournament[EB/OL].[2016-11-21].http://www.caaigames.net/.
[2] 王靜文,吳曉藝. 全國大學生計算機博弈大賽培訓教程[M]. 北京:清華大學出版社,2013:1-161.
[3] 郭琴琴,李淑琴,包華. 亞馬遜棋機器博弈系統中評估函數的研究[J]. 計算機工程與應用,2012,48(34):50-54,87.