国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Socket的藏族七方棋的設(shè)計(jì)與實(shí)現(xiàn)

2018-10-25 11:06公保杰安見才讓
計(jì)算機(jī)時(shí)代 2018年9期

公保杰 安見才讓

摘 要: 七方棋是藏區(qū)廣為流傳的傳統(tǒng)棋類游戲,是藏族文化寶庫中一顆璀璨的明珠。隨著信息時(shí)代到來,許多傳統(tǒng)游戲被引入到網(wǎng)絡(luò)中,成為人們主要的娛樂方式。采用C#開發(fā)了具有網(wǎng)絡(luò)對(duì)弈功能的藏族七方棋游戲軟件,該軟件具有網(wǎng)絡(luò)對(duì)弈、網(wǎng)絡(luò)聊天、悔棋、觀戰(zhàn)、保存棋局等功能。經(jīng)過局域網(wǎng)測(cè)試,對(duì)弈規(guī)則準(zhǔn)確,軟件運(yùn)行穩(wěn)定,基本滿足對(duì)弈要求。網(wǎng)絡(luò)對(duì)弈的實(shí)現(xiàn)對(duì)藏棋的普及,發(fā)展和傳承和具有積極意義。

關(guān)鍵詞: 藏棋; 方棋; 七方棋; 棋類游戲

中圖分類號(hào):TP319 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2018)09-28-03

Abstract: Tibetan seven-square chess is a popular Tibetan traditional board game, it is a shining pearl in the treasure-house of Tibetan culture. With the rapid development of computer and the Internet, many traditional games were introduced into the network, and become the main form of entertainment. In this paper, c# is used to develop the software of Tibetan seven-square chess network game, the software has the functions of single-player game, network game, network chat, back moves, watching and so on. The implementation of Internet version of the Tibetan seven-square chess is of positive significance to the popularization, development and inheritance of Tibetan chess.

Key words: Tibetan chess; square chess; seven-square chess; board game

0 引言

藏族七方棋具有藏族獨(dú)特的內(nèi)涵和民族文化特征,深受藏族人民的喜愛。隨著計(jì)算機(jī)網(wǎng)絡(luò)時(shí)代的到來,各種游戲以新形式呈現(xiàn)在大眾的視線,極大提高了用戶的體驗(yàn),但藏棋的信息化、網(wǎng)絡(luò)化形式緩慢,雖然有部分文獻(xiàn)探討了藏棋的計(jì)算機(jī)應(yīng)用研究,但具有網(wǎng)絡(luò)對(duì)弈功能的寥寥無幾,藏族七方棋更是幾近于無[1]。本文通過實(shí)地考察,研究了藏族七方棋的歷史與對(duì)弈規(guī)則,并開發(fā)了藏族七方棋網(wǎng)絡(luò)對(duì)弈軟件,通過大量測(cè)試軟件能夠正常運(yùn)行,但是在通信可靠性和用戶體驗(yàn)方面有待進(jìn)一步提高。

1 國內(nèi)方棋棋種的介紹

方棋在我國有幾百年的歷史,它幾乎遍布西部各省,它雖規(guī)則簡(jiǎn)單,但形式變化很快,攻守雙方的實(shí)力總在變化之中。所以經(jīng)常下棋的人經(jīng)驗(yàn)多,就容易獲勝,實(shí)屬易學(xué)難精的優(yōu)秀棋種[2]。國內(nèi)方棋主要分布在青海、寧夏、新疆等,但棋型和規(guī)則上大有不同。棋盤主要以14*14、7*8、7*7為主流[3],如圖1所示。

藏族七方棋是流傳于藏區(qū)的對(duì)弈棋類,其對(duì)弈規(guī)則與上述地區(qū)的方棋有所差異,是藏族先輩們對(duì)西北地區(qū)方棋的改良,繼承了方棋行棋規(guī)則的核心,同時(shí)融入了藏民族的其他棋種的不同行棋特點(diǎn)和本民族的文化習(xí)俗,是藏民族文化開放、智慧的展現(xiàn)[4]。

2 藏族七方棋對(duì)弈規(guī)則

棋盤以7*7縱橫線組成,共四十九個(gè)棋點(diǎn)。先手方25枚棋子,后手方24枚,以兩色區(qū)分?jǐn)澄?。?duì)弈過程分為布局、開局、戰(zhàn)斗三個(gè)階段。

2.1 布局

布局開始時(shí)黑棋先下一子,然后白棋下一子,對(duì)弈雙方依次將己子放入空棋點(diǎn),棋子只能放置在線與線的交叉點(diǎn)上,將手上的棋子放完才開始行子。布棋開始時(shí)雙方盡可能成方,成方就是相鄰四子圍成正方形[6],與此同時(shí)也要阻止對(duì)方成方布局。

2.2 開局

雙方布局完成之后,雙方根據(jù)布局過程中成方或成槍的個(gè)數(shù)按以下情況提取一定數(shù)量的棋子。

⑴ 若在布棋結(jié)束后,雙方均未成方,則由白方先提取一子,然后由黑方提取一子,之后轉(zhuǎn)入戰(zhàn)斗階段。

⑵ 若兩家均布棋成方,則由先成方家先行提子,并按成方數(shù)量決定相應(yīng)提子數(shù)。

⑶ 若只一家成方,則由成方家按成方數(shù)提取棋子,未成方家提取一子。

2.3 戰(zhàn)斗

布局和開局完成之后,便進(jìn)入戰(zhàn)斗階段,開始移動(dòng)己棋,戰(zhàn)斗階段包括以下三種方式。

移子:棋子向緊鄰的空交叉點(diǎn)移動(dòng)一格。移子過程中只要形成方(四枚棋子組成一個(gè)緊鄰相連的小正方形)就可按形成方的個(gè)數(shù)任意提取對(duì)方的棋子,移子時(shí)最多能形成兩個(gè)方。當(dāng)移子過程中形成槍(七枚棋子以縱、橫方向連成直線)時(shí),則可提取對(duì)方任意兩個(gè)棋子。

跳子:有單跳和連跳兩種方式,當(dāng)己方棋子的緊鄰交叉點(diǎn)上有一個(gè)對(duì)方的棋子,而且與對(duì)方棋子緊鄰的點(diǎn)是空交叉點(diǎn)時(shí)就可以跳過對(duì)方的這個(gè)棋子并把它吃掉。跳子過程中當(dāng)滿足連續(xù)跳子條件時(shí),可以連跳并吃掉己方行走路線上所有對(duì)方棋子。連跳時(shí)沿路線跳過的個(gè)數(shù)可按己方形式的優(yōu)劣而定,也可以不跳。跳子完成后如果形成方或槍則按上述規(guī)則進(jìn)行提子操作。

飛子:當(dāng)一方棋子個(gè)數(shù)等于或小于七枚棋子時(shí),棋子不受一步一格的限制,可以隨意落在空棋位處。飛子時(shí)形成方或槍則按上述規(guī)則進(jìn)行提子操作。

戰(zhàn)斗階段是對(duì)弈雙方大顯棋力的階段,每一步都是在移子和跳子的過程中,看誰成方的速度快、成方多,獲勝的機(jī)會(huì)就越大。特別是形成褡褳陣、槍陣等贏棋陣型時(shí)對(duì)棋局的輸贏影響很大。如圖2所示。戰(zhàn)斗階段當(dāng)一方棋子數(shù)少于等于7時(shí),多子方未形成兩個(gè)“褡褳”陣型或贏棋陣型,多子方負(fù),少子方贏。在對(duì)弈中一方棋子數(shù)達(dá)到3時(shí),多子方勝,少子方負(fù)。

3 Socket網(wǎng)絡(luò)通信及傳輸格式

網(wǎng)絡(luò)對(duì)弈時(shí)數(shù)據(jù)的通信和傳輸格式是前期開發(fā)的重要工作,本軟件采Socket進(jìn)行網(wǎng)絡(luò)通信,Socket是TCP/IP網(wǎng)絡(luò)環(huán)境里進(jìn)行開發(fā)的最為通用的API[5]。

3.1 網(wǎng)絡(luò)通信過程

采用Socket對(duì)本軟件開發(fā)時(shí),服務(wù)器端和客戶端使用Socket的方法略有不同。服務(wù)器端Socket的主要任務(wù)是端口的綁定、建立TCP連接、對(duì)端口的監(jiān)聽,接受來自客戶端的連接請(qǐng)求并建立連接、收發(fā)數(shù)據(jù)等。而客戶端則向服務(wù)器端提出請(qǐng)求,服務(wù)器端接受請(qǐng)求后就可以進(jìn)行數(shù)據(jù)的收發(fā)。

3.2 數(shù)據(jù)傳輸格式

在兩人對(duì)弈過程中,通過Socket進(jìn)行通信時(shí),雙方接受和發(fā)送數(shù)據(jù)時(shí)應(yīng)該規(guī)定好統(tǒng)一的傳輸格式,本軟件規(guī)定的傳輸格式是:“操作符”+“房間號(hào)”+“角色號(hào)”+“內(nèi)容”。

4 軟件的設(shè)計(jì)與實(shí)現(xiàn)

根據(jù)藏族七方棋的規(guī)則及網(wǎng)絡(luò)對(duì)弈的需求分析,軟件的總體設(shè)計(jì)包括客戶端和服務(wù)器端。服務(wù)器端主要任務(wù)是對(duì)弈的客戶端的連接及收發(fā)數(shù)據(jù),并在游戲開始之前設(shè)置客戶端環(huán)境參數(shù),比如:房間數(shù)和人數(shù)的設(shè)定??蛻舳藙t主要負(fù)責(zé)棋盤、棋子的繪制及棋子操作,并和服務(wù)器端進(jìn)行實(shí)時(shí)數(shù)據(jù)通信。如圖3所示。

4.1 棋盤表示

七方棋的棋盤設(shè)計(jì)采用C#中的GDI進(jìn)行繪圖,并定義m_Board[7,7]的二維數(shù)組表示棋盤中的棋子的狀態(tài)。同時(shí)m_Board[7,7]數(shù)組指向表示棋子類型和位置等相關(guān)信息的Chess結(jié)構(gòu)體。

Public struct Chess

{

int Empty=0, //空子

int Black=1, //黑子

int White=2, //白子

int posX 棋子的橫坐標(biāo)

int posY 棋子的縱坐標(biāo)

}

4.2 棋子的繪制

棋子的繪制是由Graphics完成的。以黑棋為例,先利用Rectangle()確定棋子的大小,然后用FillEllipse()方法填充一個(gè)實(shí)心圓。代碼如下:

rect.X=Convert.ToInt32(margin_left+i*gap-chessSize);

rect.Y=Convert.ToInt32(margin_top+j*gap-chessSize);

rect.Width=Convert.ToInt32(chessSize*2);

rect.Height=Convert.ToInt32(chessSize*2);

g.FillEllipse(Brushes.Black, rect);

5 軟件測(cè)試

軟件在局域網(wǎng)環(huán)境下進(jìn)行了大量測(cè)試,在測(cè)試中,雖然剛開始出現(xiàn)了一些問題,比如:網(wǎng)絡(luò)延遲、角色不同步、規(guī)則之間的沖突等問題,但經(jīng)過不斷的修改和調(diào)試,該軟件已滿足網(wǎng)絡(luò)對(duì)弈的要求,實(shí)現(xiàn)規(guī)則正確。如圖4所示。

6 結(jié)束語

隨著信息技術(shù)飛速發(fā)展,許多藏族民間游戲未跟上時(shí)代的步伐,逐漸被后人遺忘,所以藏族棋類游戲的信息化和網(wǎng)絡(luò)化,對(duì)藏棋文化的傳承和保護(hù)起到至關(guān)重要的作用。本軟件是基于網(wǎng)絡(luò)的對(duì)弈軟件,用戶通過網(wǎng)絡(luò)可以遠(yuǎn)程進(jìn)行對(duì)弈,提高了用戶體驗(yàn)。軟件對(duì)新手提供了藏族方棋下棋規(guī)則和觀戰(zhàn)模式,方便新手快速入門。通過測(cè)試軟件運(yùn)行穩(wěn)定,下棋規(guī)則準(zhǔn)確,達(dá)到了預(yù)期的效果。下一步工作就是對(duì)軟件進(jìn)一步完善的同時(shí)根據(jù)對(duì)弈后保存的棋譜開展藏族方棋人機(jī)博弈方面的研究,讓藏族棋類游戲以全新的形象展現(xiàn)在大眾面前。

參考文獻(xiàn)(References):

[1] GENG Dui. On the discovery of Tibetan Chess (Mimang)and related traditional Tibetan chesses[J]. Journal of Tibetuniversity: Chinese edition,2003.18(3):44-48

[2] LIU Qiang. The status and promotion value oftraditionalTibetan chess[J].Contemporary sports technology,2012.2(27):83-84

[3] LI Xiali,WU Licheng,LI Yongji.Tibetan JIU computergame research based on chess form[J].CAAI Transactions on Intelligent Systems,2018.

[4] 劉強(qiáng).藏棋“久棋”源考[J].西藏研究,2017.12(6):105-109

[5] 仁增多杰,安見才讓.“褡褳”藏棋的設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦(理論版),2014.8:106-107

[6] 郭曉倡,郭江平.遠(yuǎn)程圍棋對(duì)弈軟件的設(shè)計(jì)與開發(fā)[J].電腦編程技巧與維護(hù),2010:26-28

河东区| 茌平县| 福州市| 尚志市| 翼城县| 曲靖市| 洞口县| 萨嘎县| 五常市| 南江县| 大兴区| 延寿县| 许昌县| 岑溪市| 德格县| 博客| 双鸭山市| 陕西省| 莎车县| 祁连县| 桃园市| 边坝县| 高台县| 日喀则市| 潮安县| 旬邑县| 庐江县| 札达县| 上虞市| 定日县| 柘荣县| 榆林市| 通化市| 江安县| 榆树市| 郴州市| 五家渠市| 邯郸市| 镇安县| 四会市| 习水县|