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

        ?

        基于單片機的棋盤設計

        2021-02-09 02:35:47王天睿
        電子產品世界 2021年2期
        關鍵詞:單片機

        王天睿

        摘 要:本文主要探討了我國傳統的象棋對弈與單片機技術相結合的方法,通過軟件編程技術、電子技術與單片機應用技術的結合,可以更加方便有效的提升象棋對弈的樂趣和效率。

        本文摒棄了諸多傳統象棋的弊端,減輕了下棋人員的負擔,增加了下棋的趣味性,實現自動采集對局信息發(fā)送到采集服務器進行處理的功能,具體包括語音提示,計著子數,自動計時,判斷行棋是否符合規(guī)則等功能。

        本系統是基于嵌入式單片機技術,利用相關光電檢測等技術,自主實現棋盤的裁判功能,具有價格便宜,性價比高,制作簡單,易于實現功能擴展等優(yōu)點。重點對棋子編碼及程序邏輯控制方面進行了探討。

        關鍵詞:中國象棋;單片機;智能系統;程序編碼

        0 引言

        研究的目的和意義體現在這些方面:將信息化技術引入到中國象棋這項運動中來,促進其參與品味的提升,在一定程度上解放棋手和裁判,使得中國象棋這項運動變得更加簡單,進一步拓寬中國象棋運動的視野,吸引更多的人參與到此項運動中來。

        主要工作是如何在保持棋手對壘慣性思維的基礎上,將先進的軟硬件技術應用到象棋這一項傳統運動及項目中來,利用信息技術完成記錄、裁決等操作,充分發(fā)揮傳感器、單片機等設備,以及C語言編程技術等電子信息專業(yè)的所學知識來完成計時、聲音提示、判斷行棋規(guī)則等重要功能。

        通過改變老式象棋諸多不便,提高比賽的品位和檔次以及減輕棋手負擔,提高對局質量,實現自動采集對局信息發(fā)送到采集服務器進行處理的功能,能夠自動判斷棋手下棋是否符合規(guī)則,做出判斷,并且自動記錄棋手步數。具體包括自動計時,語音報警,自動判斷規(guī)則等功能。

        中國象棋的每個棋子擺放的位置均為橫縱交叉點上,而本次論文設計引用了文獻[1-2]中的傳感器技術,為每個交叉點上均采用一個光電傳感器來接收棋子的移動或者變更信號,根據每個棋子的初始位置判斷棋子種類,根據棋子的運動軌跡判斷每個棋子是否符合行棋規(guī)則。弈棋交替進行,直到某一方的將或者帥被對方吃掉為止。

        比賽時,雙方輪流倒計時,即一方棋子落地開始為另一方倒計時,另一方的思考時間不能超過倒計時的時長。行棋前,智能棋盤會根據棋子所處的位置及其類型,對所有的棋子展開編碼處理,任何棋手完成一步行棋后,棋盤都會再次進行掃描棋子的位置碼和種類碼并及時更新,直到本局對壘結束。

        本文主要探討棋盤的軟件設計。

        1 棋盤棋子編碼

        為了使棋盤設計更加人性化,更加方便選手完成比賽,也為了使棋盤更加的人性化,將棋盤及棋子根據其位置進行了編碼,中國的象棋棋盤如圖1所示,有橫9,縱10,共計90個格,交叉點為90個。紅黑雙方交替行棋,每人輪流走一步,可走棋、可吃棋,將帥吃掉為贏。

        1.1 棋盤坐標編碼

        為了清楚知道下棋過程中,每個棋子行走的位置,先將棋盤的每個格進行編碼,本著通俗易懂,易于理解的原則,將棋盤編碼。

        中國象棋中共有7種棋子,紅黑雙方棋子對稱,這樣將棋子按照種類進行編碼,如表1所示,這樣編碼的好處就是,因為紅黑雙方棋子初始狀態(tài)完全一樣,只需判斷正負符號就可以判斷處棋子是哪一方的,0即為無棋子,空格。

        1.2 棋子個體編碼

        編碼完棋盤、定義完棋子種類,則需要將棋盤坐標與棋子個體進行一一對應,先將棋子個體進行編碼,如表2所示,注意“0”為無棋子,其中車、馬、炮、士、象(相)雙方均為兩個,故占用兩個編碼,兵(卒)雙方各占用五個。

        1.3 棋盤索引數組

        棋盤索引數組是將棋子種類編碼與棋盤坐標編碼有機地結合在一起,能夠完成根據棋手走的每步棋子進行調用修改,并儲存到單片機程序當中去,這里的數組代表的是棋子的位置以及移動的位置,數組的編碼即表示棋子的實際位置。

        這里引用的為一維數組,此數組簡單方便,運算較少、方便調用,并且比較直觀。中國象棋的初始局面下,棋盤索引數組如下所示:

        Coored為棋子在數組中的坐標,數組Chessman*ary [10][9]為相應棋盤所在的位置,pos為空間位移,alive是棋子存活,mesh為每個棋子指向的指針,name是名字;其他除了chessman指針以外的部分為空格null。

        3)規(guī)則設定繪制

        在使用時,為了正確的選取棋子,讓棋子能夠按照規(guī)則正確的行走,調取了如下函數:

        ①RayGetPickRay(int,int);//獲得選取射線;

        ②void InitChessman();//初始化所有棋子,以及坐標,

        ③bool IsMovingOk(int,int);//是否能行走到某一個點上;

        ④bool GetPlanePickPoint(D3DXVECTOR3,D3DXVECTOR3,Ray);//通過拾取射線與棋盤,從而得到拾取點;

        ⑤bool PickChessman(Ray);//是否拾取棋子;

        2 下棋子程序設計

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

        2.1 帥行棋設計

        帥的行棋規(guī)則實現方法與前面車和馬類似。首先是否符合行棋規(guī)則,行棋范圍為九宮格內部,帥每步只能走一步,可上可下可左可右。然后判斷走棋還是吃棋,中間出現不符合行棋規(guī)則的地方則報警,如圖2所示。

        帥與將行棋規(guī)則一樣編程原理如圖3所示。

        2.2 象行棋規(guī)則

        象的行棋規(guī)則與士和馬類似,象不能過河,存在蹩象眼的情況,象行走田字,即象只能夠跨格走斜線,象只能走到田字格對角線三個位置上,而不能走到其他位置[4-5]。當棋手走象時,步驟如下。

        1)根據是否僅有一個子動作判斷調用走棋程序還是吃棋程序。

        2)若僅有一個子動作則調用走棋程序。

        3)再根據行棋規(guī)則判斷是否符合象的行棋規(guī)則,判斷方法為橫縱坐標中橫和縱向分別移動兩格,如不符合則報警。

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

        5)若有兩個棋子位置發(fā)生改變,則判定調用吃棋程序,當棋手吃完棋后,再根據行棋規(guī)則判斷是否符合,如若不符合則自動報警。

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

        7)同時要注意根據事先設定的程序,吃棋時需要先拿起自己的子再去拿對方的子。

        if(qizi[(fromY+toY)/2][(fromX+toX)/2]!=0){

        return false;//象眼處有棋子

        }

        2.3 兵行棋規(guī)則

        兵的行棋規(guī)則比較簡單,與帥類似,每次只能走一步。同時也要判斷行棋還是吃棋。行走范圍不同:過河之前只能直走,而過河之后可以走到任意一格。過河之前只能向前走,過河之后可以向左右前三個方向行走,不過不可回頭。

        兵與卒行棋規(guī)則相同,不再累述。

        3 結語

        本次智能棋盤設計,可在硬件上選用較為常見的單片機進行配置,并且性能穩(wěn)定,操作簡單,方便,整體電路搭配較為完善。

        由于篇幅的限制筆者并沒有給出所有棋子的編譯程序和邏輯圖,僅列出了帥士相三種棋子的行棋程序,本論文作為一項智能系統的研究的理論與嘗試,想投入實際的應用還有一些技術難點。隨著軟件設計技術,微電子技術,和相關技術的發(fā)展。此課題還會不斷完善,不斷改進,最終實現功能上的不斷更新。

        參考文獻:

        [1] 孫傳友,等.感測技術與系統設計[M].北京:科學出版社,2004.

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

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

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

        [5] BARRY B B. The Intel Microprocessors.6th ed.2005.

        猜你喜歡
        單片機
        基于單片機的SPWM控制逆變器的設計與實現
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的多功能智能插排
        電子制作(2019年11期)2019-07-04 00:34:48
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        小議PLC與單片機之間的串行通信及應用
        電子制作(2018年12期)2018-08-01 00:48:04
        MSP430單片機在仿真中要注意的幾點問題
        電子制作(2017年9期)2017-04-17 03:00:53
        基于單片機的平衡控制系統設計
        電子制作(2017年19期)2017-02-02 07:08:27
        基于單片機的三維LED點陣設計
        電子制作(2016年21期)2016-05-17 03:52:51
        Microchip推出兩個全新PIC單片機系列
        基于Proteus的單片機控制系統的仿真設計
        亚洲tv精品一区二区三区| 欧美日本国产亚洲网站免费一区二区| 视频福利一区二区三区| 人妻丰满熟妇av一区二区| 一区二区三区精品偷拍av| 国产另类av一区二区三区| 亚洲精品久久区二区三区蜜桃臀| 亚洲av片无码久久五月| 国产欧美一区二区精品久久久| 久久久国产精品免费a片3d| 国产精品免费久久久久影院仙踪林 | 国产高清a| 精品熟妇av一区二区三区四区| 大香蕉国产av一区二区三区| 精品人妻伦一二三区久久| 毛片大全真人在线| 中文AV怡红院| 国产丝袜长腿在线看片网站| 国产成人综合美国十次| 狼人香蕉香蕉在线28 - 百度| 亚洲一区精品无码色成人| av鲁丝一区鲁丝二区| 国产精品欧美亚洲韩国日本| 少妇人妻在线伊人春色| 一区二区三区蜜桃av| 亚洲av无码一区二区三区天堂古代 | 国产精品麻豆aⅴ人妻| 国产婷婷丁香五月麻豆 | 久久日韩精品一区二区| 亚洲av永久无码精品网址| 国产精品成人一区二区三区| 亚洲AV秘 片一区二区三| 日韩中文字幕一区在线| 日本最新一区二区三区在线视频| 观看在线人视频| 黄又色又污又爽又高潮动态图| 亚洲tv精品一区二区三区| 日本高清一区二区三区视频 | 久久一本日韩精品中文字幕屁孩| 日日摸天天摸97狠狠婷婷| 蜜臀av免费一区二区三区|