新聞中心

EEPW首頁 > 設計應用 > 智能棋盤的研究與設計

智能棋盤的研究與設計

作者:王天睿 時間:2019-01-29 來源:電子產(chǎn)品世界 收藏

作者 王天睿(遼寧軌道交通職業(yè)學院,遼寧 沈陽 110023)

本文引用地址:http://m.butianyuan.cn/article/201901/397272.htm

  摘要:本文主要介紹了在不改變棋手弈棋習慣的前提下,將我國傳統(tǒng)智力娛樂項目與電子技術、應用技術、軟件編程技術等相結合,實現(xiàn)信息記錄、規(guī)則裁決的智能化和自動化。智能棋盤是以技術為依托,合理配備選型,將多個模塊整合到一起,運用高科技手段實現(xiàn)棋手弈棋的完全智能化。

  智能棋盤系統(tǒng)將改變老式象棋諸多弊端,提高比賽的品味和檔次,同時減輕棋手負擔,提高對局質(zhì)量,實現(xiàn)自動采集對局信息發(fā)送到采集服務器進行處理的功能。具體包括自動計時、計著子數(shù)、語音提示、判斷行棋是否符合規(guī)則等功能。

  該系統(tǒng)是以為核心,利用光電檢測技術,具有性能可靠、價格低廉、易于功能擴展等功能,可用于競技比賽,家庭娛樂。

  關鍵詞;單片機;;

  0 引言

  此文以現(xiàn)代傳統(tǒng)的為背景,為實現(xiàn)中國象棋弈棋的智能化、自動化,主要研究了一種以中國象棋為依托來實現(xiàn)智能棋盤的軟硬件設計。

  在行棋的過程中,利用光電管進行持續(xù)的掃描,根據(jù)每個棋子種類碼進行判斷,根據(jù)每個棋子位置碼進行定位,并且了解棋手按照交替的方式進行行棋,從而確定棋子的移動方式的。為了確定棋子的移動是否違規(guī),筆者為每一類棋子專門設定了程序。在比賽尚未開始時,就要設置好雙方的行棋規(guī)定用時,如果在行棋的過程中起手規(guī)定時間到,就會被判定為違規(guī),本棋盤規(guī)定當棋手落子后,對方必須在100 s內(nèi)完成行棋(總步數(shù)不超過99步)。這樣就不用棋手每次走完棋進行人工按壓計時(計時器),采用自動化的技術來計算子數(shù),替換到人工崗位,具有全自動功能,極大的節(jié)約了比賽時的人工成本。

  軟件設計主要為行棋程序設計,行棋程序主要由計著子數(shù)程序、計時器程序、吃棋程序、走棋程序、各棋子行棋規(guī)則判斷程序等組成。

  軟件設計部分要在棋局開始前完成初始化設置,以及棋盤各類棋子的編碼設置。開始按鍵按下后,由主程序不斷檢測8255所得到的棋盤各位置的變化,根據(jù)不同的棋子的變化,轉(zhuǎn)去執(zhí)行相應的棋子走子或吃子等相關子程序。

  行棋程序中包含行棋規(guī)則是:①紅先黑后;②棋子落定后,不得悔棋;③吃棋拿棋后,不得悔棋。

  吃棋時,棋手應該先拿起己方棋子,然后再拿起想要吃的棋子,再將自己的棋子放在被吃棋子的位置上。如“炮”吃“卒”,應該先拿起自己的“炮”,然后去拿起對方的“卒”,最后將自己的“炮”放在對方原來的“卒”的位置上。

  在三條規(guī)則之中,第三條規(guī)則可以進行二選一,為了滿足用戶使用的需要本程序設定為先拿起自己的棋子去覆蓋敵方棋子。

  當一方拿起自己的棋子,落在無棋子的位置上時,即為走棋;調(diào)用走棋程序,同時要調(diào)用棋子行棋規(guī)則判斷程序,判斷是否違規(guī);如違規(guī)即報警;如無違規(guī)則記錄該棋子的位置編碼。當一方拿起自己的棋子,再拿起對方的棋子,并將自己的棋子落在該新位置上時,即為吃棋;調(diào)用吃棋程序,同時要調(diào)用棋子行棋規(guī)則判斷程序,判斷是否違規(guī);如違規(guī)即報警;如無違規(guī)則記錄該棋子的新位置編碼。

  棋子的類型編碼是始終不變的,位置編碼是隨著行棋的進行而變化的。在開始鍵按下后,不斷檢測棋盤數(shù)據(jù)并與初始值進行比較,直至有變化,即表示有棋子移動。由移動的位置碼可知是什么棋子在移動。

  軟件設計流程圖如圖1所示。

  1 棋盤各點的檢測掃描程序

  此程序的功能是對棋盤初始值的檢測,以及對各棋子位置變化的記錄是整個軟件設計部分的核心,本部分程序如能順利完成,其他的軟件部分也能迎刃而解。棋子的類型編碼是實現(xiàn)設定好的,而位置編碼是隨著行棋的進行而不斷刷新的。在開始鍵按下后,不斷檢測棋盤數(shù)據(jù)并與初始值進行比較,當棋子位置編碼發(fā)生變化時,即說明有棋手行棋。由移動的位置碼可知是什么棋子在移動。

  2 8279鍵盤顯示驅(qū)動程序

  在鍵盤顯示模塊中,共有8個數(shù)碼管,前四個與后四個各分為一組,前兩位顯示紅方棋手的每步行棋剩余時間,三、四位顯示紅方棋手的著子數(shù),五、六位顯示黑方棋手每步行棋剩余時間,七、八位顯示黑方棋手的著子數(shù)。這樣就減輕了裁判員的負擔,實現(xiàn)自動判斷、計時的功能。該部分程序主要完成對走棋剩余時間的顯示,以及走子數(shù)的顯示。

  3 下棋子程序設計

  當棋手開始下棋時,下棋使用的程序共分為:走棋程序、吃棋程序、行棋規(guī)則。三種程序同時調(diào)用。下面以我方走馬和走車分別為例進行說明。

  3.1 馬行棋設計

  例如,馬的行棋規(guī)則為可走日,行走范圍為全棋盤。如圖2,可以向23456789中八個方向走,落地位置有對方子時可以直接吃掉,而不可向1處走,為蹩馬腿。

  當棋手走馬時,流程圖如圖3所示。具體地,需要考慮如下情況:

 ?、俑鶕?jù)是否僅有一個子動作判斷調(diào)用走棋程序還是吃棋程序;

 ?、谌魞H有一個子動作則調(diào)用走棋程序;

 ?、墼俑鶕?jù)行棋規(guī)則判斷是否符合馬的行棋規(guī)則,判斷方法為橫縱坐標中有一項移動兩格另一個移動一格,如不符合則報警;

  ④如果沒有犯規(guī)記錄則自動將馬的程序編碼及移動位置進行儲存;

 ?、萑粲袃蓚€棋子位置發(fā)生改變,則判定調(diào)用吃棋程序,當棋手吃完棋后,再根據(jù)行棋規(guī)則判斷是否符合,如若不符合則自動報警;

 ?、奕绻麤]有犯規(guī)記錄則自動將馬的程序編碼及移動位置進行儲存;

 ?、咄瑫r要注意根據(jù)事先設定的程序,吃棋時需要先拿起自己的子再去拿對方的子。

  具體判定過程為,先根據(jù)馬的位置編碼判定動作的子為馬。然后根據(jù)行棋規(guī)則調(diào)用馬的行棋規(guī)則,只能走日,即縱坐標移動2,橫坐標移動1;或橫坐標移動2縱坐標移動為1,如果不符合馬的行棋規(guī)則則報警,如果符合則判定是否存在蹩馬腿現(xiàn)象,存在則報警,如果不存在則繼續(xù);最后判定此步為吃棋還是行棋,結束。

  3.2 車行棋規(guī)則

  車走棋時設計程序同理:車的行棋規(guī)則較為簡單,只能直走,可以橫向直走也可以縱向直走前后左右均可走,中間遇到對方子可以直接吃掉,前后左右為對方子可以直接吃掉。

 ?、偈紫扰卸ㄜ嚍榭v向行走還是橫向行走,如果為縱向行走則記錄下縱向行走的位置編碼進行儲存;

 ?、谌缓笤龠M行判定是行棋還是吃棋,若僅有車一子進行移動則為行棋,調(diào)用行棋程序;

 ?、廴粜衅褰Y束位置還有其他子被替代則為吃棋,調(diào)用吃棋程序;

 ?、苋绻霈F(xiàn)橫縱坐標都變化、或者都不變化、或其他位置子消失等不符合行棋規(guī)則情況出現(xiàn)時則報警。

  3.3 炮行棋規(guī)則

  炮的行棋規(guī)則較為特殊,走棋時可以直行,縱橫方向皆可。吃棋時中間必須隔一個子;炮可向四個方向移動,也可以吃隔子吃子。這樣程序設計時需考慮以下步驟:

  ①先判斷是走棋還是吃棋,判斷橫縱坐標是否只有其中一個有變化;

  ②然后判斷目標位置是否有子,如果有子則調(diào)用吃棋程序,如果沒有子則調(diào)用走棋程序;

 ?、蹖⒆咂宓呐谧鴺撕湍繕宋恢玫淖右源a形式儲存;

  ④不符合行棋規(guī)則的報警。

  4 結論

  本次智能棋盤設計,在硬件選用上較為合理,各個芯片均選用市面上經(jīng)常見到的常用芯片,并且性能穩(wěn)定,操作簡單,方便,整體電路搭配較為完善。

  本次設計題目已經(jīng)實現(xiàn)的功能有:

  ①行棋違規(guī)自動報警。

 ?、谧詣佑洃浿訑?shù)。

 ?、埏@示走棋剩余時間等。

  由于篇幅的限制筆者刪除了棋盤與棋子編碼,僅列出了車馬炮三種棋子的行棋程序,本課題作為一項的研究的理論與嘗試,與實際應用還有一段差距。隨著微電子技術,軟件設計技術和傳感器技術的發(fā)展。此項目也將會有更大的發(fā)展空間,和更多的功能完善。

  參考文獻

  [1]徐愛鈞.智能化測量控制儀表原理與設計[M].北京:北京航空航天大學出版社.

  [2]孫傳友,等.感測技術與系統(tǒng)設計.北京:科學出版社, 2004.

  [3]戴梅萼,史嘉權.微型計算機技術及應用(4版).北京:清華大學出版社,2001.

  [4]馬群生,溫冬嬋,等.微型計算機技術.北京:清華大學出版社,2006.

  [5]秦維佳,侯春光,等.C/C++程序設計教程.北京:機械工業(yè)出版社,2007.

  [6]浦昭邦.光電測試技術.北京:機械工業(yè)出版,2004.

  [7]馬忠梅,等.單片機的C語言應用程序設計.北京:北京航空航天大學出版社,2007.

  [8]向紅.51系列單片機應用與實踐教程.北京:北京航空航天大學出版社,2008.

  [9]PCI Special Interest Group. PCI Local Bus Specification,1999.

  [10]Barry B B.The Intel Microprocessors: 6th ed,2005.

本文來源于科技期刊《電子產(chǎn)品世界》2019年第2期第52頁,歡迎您寫論文時引用,并注明出處



評論


相關推薦

技術專區(qū)

關閉