五子棋游戲?qū)嶒?yàn)報(bào)告_第1頁(yè)
五子棋游戲?qū)嶒?yàn)報(bào)告_第2頁(yè)
五子棋游戲?qū)嶒?yàn)報(bào)告_第3頁(yè)
五子棋游戲?qū)嶒?yàn)報(bào)告_第4頁(yè)
五子棋游戲?qū)嶒?yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、五子棋游戲?qū)嶒?yàn)報(bào)告課程名稱 計(jì)算機(jī)程序設(shè)計(jì)(VB)學(xué) 號(hào) 姓 名 班 級(jí) 提交時(shí)間 五子棋軟件設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?通過五子棋軟件設(shè)計(jì)或者自擬題目設(shè)計(jì),鞏固本課程所學(xué)的各個(gè)章節(jié)重點(diǎn)知識(shí),自擬題目的同學(xué)需盡早向教師提出自己的想法及設(shè)計(jì)方案。2通過開發(fā)一個(gè)較大的系統(tǒng),增強(qiáng)軟件開發(fā)能力。3通過調(diào)試系統(tǒng),增強(qiáng)邏輯思維能力。二、實(shí)驗(yàn)內(nèi)容1基本要求:(1)輸入兩個(gè)對(duì)手名字,然后進(jìn)入游戲界面。(2)用鼠標(biāo)點(diǎn)擊的方式在棋盤上擺放棋子,黑白交替。(棋盤15*15)(3)可以悔棋。(4)五子連在一起的時(shí)候能判斷勝利,并且顯示出勝利者的名字。(5)能夠?qū)⑵寰值慕Y(jié)果保存,保存該棋局結(jié)束的狀態(tài)、對(duì)手名字、 棋局名字(棋局名

2、字在保存時(shí)由用戶在相應(yīng)的界面下添入)(此功能要求用數(shù)據(jù)庫(kù)和文件兩種技術(shù)實(shí)現(xiàn))。(6)棋局能夠恢復(fù),即重新打開,打開后出現(xiàn)棋局結(jié)束的狀態(tài)、對(duì)手名字(此功能要求用數(shù)據(jù)庫(kù)和文件兩種技術(shù)實(shí)現(xiàn))。2其它要求:(1)界面友好、漂亮。(2)程序盡可能無bug。(3)程序健壯性強(qiáng),基本上達(dá)到無論用戶如何操作,軟件都不出錯(cuò),都有相應(yīng)的處理方法。3設(shè)計(jì)步驟(1)首先做界面界面包括幾個(gè)窗體,窗體上有相應(yīng)的控件。因?yàn)樾枰嬈灞P,所以必須有圖形容器,這里用picturebox框第一個(gè)窗體是登陸界面,因?yàn)橥婕倚彰枰诔绦蛑胁粩嘧儞Q,因此需要將玩家名定義成兩個(gè)變量,又因?yàn)檫@兩個(gè)變量在幾個(gè)窗體中都用到,所以在模塊中定義為全

3、局變量當(dāng)五子棋主界面啟動(dòng)之后,首先系統(tǒng)要自動(dòng)繪制棋盤。思路:用直線繪制棋盤-直線是由點(diǎn)繪制的-每個(gè)點(diǎn)都有坐標(biāo)-改變坐標(biāo)系為用戶坐標(biāo)系用戶坐標(biāo)系的定義要在窗體啟動(dòng)時(shí)實(shí)現(xiàn)。(2)坐標(biāo)系的兩個(gè)頂點(diǎn)坐標(biāo)的確定?考慮到五子棋15*15,確定棋盤坐標(biāo)系頂點(diǎn)為(-8, 8),(8, -8)(3)棋子的繪制與存儲(chǔ)棋子的繪制用實(shí)心圓模式,顏色為黑色及白色兩種。棋子在內(nèi)存中的存儲(chǔ)方式:因?yàn)楸硎靖鱾€(gè)棋子的數(shù)據(jù)類型都相同,所以考慮用數(shù)組存儲(chǔ),因?yàn)槠灞P是二維的,因此棋子用二維數(shù)組a存儲(chǔ)。a(i,j)表示用戶坐標(biāo)(i,j)的棋子狀態(tài),0表示此處無棋子,1表示此處為黑子,2表示此處為白子,下棋初始時(shí),棋盤所有位置的初始狀態(tài)

4、都為0(4)下棋子的步驟鼠標(biāo)點(diǎn)擊棋盤交叉點(diǎn)附近的位置,系統(tǒng)應(yīng)實(shí)現(xiàn)自動(dòng)識(shí)別鼠標(biāo)點(diǎn)擊位置附近的交叉點(diǎn)解決方法:坐標(biāo)系的變換已經(jīng)將棋盤交叉點(diǎn)坐標(biāo)整數(shù)化,因此系統(tǒng)所需要實(shí)現(xiàn)的功能即是將鼠標(biāo)所點(diǎn)擊的位置坐標(biāo)化為整數(shù)即可,例如將(6.2, -5.3)變成(6, -5)。在交叉點(diǎn)上交替下黑白棋子。解決方法:定義一個(gè)邏輯數(shù)據(jù)類型變量blackwhite,該變量的值為真時(shí)下黑子,為假時(shí)下白子,每下一個(gè)棋子,該變量的值都要取反(NOT)。判斷贏棋每次下子時(shí)都必須進(jìn)行贏棋判斷,判斷的依據(jù)是5個(gè)子按照橫線、豎線或斜線連成一行。解決方法:2層循環(huán)。當(dāng)有一方勝利時(shí),棋局結(jié)束,此時(shí)在棋盤上繼續(xù)點(diǎn)擊,將不再下棋。解決方法:設(shè)

5、置一個(gè)邏輯變量wuziqi,其值為真時(shí)說明棋局沒有結(jié)束,可以在棋盤上放棋子,該值為假時(shí),說明該棋局結(jié)束,不能放棋子。(6)五子棋保存棋局思路:保存棋局的功能即把內(nèi)存中與棋局相關(guān)的數(shù)據(jù)(棋局名稱、棋子位置、棋子顏色、棋局狀態(tài)(即棋局是否結(jié)束)存入外存中,以便以后能夠恢復(fù)棋局。保存的實(shí)現(xiàn)用兩種技術(shù)實(shí)現(xiàn):文件和數(shù)據(jù)庫(kù)。采用數(shù)據(jù)庫(kù)技術(shù)實(shí)現(xiàn)棋局保存:數(shù)據(jù)庫(kù)設(shè)計(jì):數(shù)據(jù)表字段:棋局名、x坐標(biāo)、y坐標(biāo)、該點(diǎn)狀態(tài)值、下棋狀態(tài)。每條記錄表示棋盤上一個(gè)存儲(chǔ)的點(diǎn)的信息。 要實(shí)現(xiàn)用數(shù)據(jù)庫(kù)保存數(shù)據(jù),就必須使程序連接到數(shù)據(jù)庫(kù)上,這里用的是data控件,通過在程序中對(duì)data控件屬性的設(shè)置來連接數(shù)據(jù)庫(kù)、數(shù)據(jù)表。首先判斷如果輸

6、入的棋局名和當(dāng)前記錄的棋局名相等,說明表中有輸入棋局名對(duì)應(yīng)的棋局信息,將其刪除,判斷過程是將用戶輸入的棋局名(字符串)從記錄集(即表)的棋局字段頂端至下逐一比較在表的最后,也就是最后一條記錄后加上新保存棋局的各條記錄因?yàn)槠灞P上空點(diǎn)居多,大部分點(diǎn)的信息為0,因此只需保存有棋子的點(diǎn)的信息用文件技術(shù)進(jìn)行棋局保存,思路相同。(7)五子棋恢復(fù)棋局思路:首先從數(shù)據(jù)庫(kù)文件中找到要恢復(fù)棋局的數(shù)據(jù)(即曾經(jīng)保存的數(shù)據(jù)),然后把這些數(shù)據(jù)賦值給內(nèi)存中相應(yīng)的數(shù)組或者變量中,按照這些數(shù)據(jù)重新繪制棋盤和棋子,即完成了對(duì)棋局的恢復(fù)。窗體啟動(dòng)事件應(yīng)該完成的事情:組合框中應(yīng)該顯示曾經(jīng)保存的棋局名。因?yàn)槊看伪4嫫寰謺r(shí),都是將棋局所

7、有棋子的記錄添加在表的最后,因此表中關(guān)于棋局名的記錄只能是類似于aaabbbbccccc的形式,而不可能是abbcacc的形式,根據(jù)這個(gè)特點(diǎn)編程序取出表中不同的棋局名。具體算法:用一個(gè)字符串變量strfile初始值為空,從表的頂端向下依次移動(dòng)記錄指針,如果當(dāng)前記錄的棋局名字段和strfile不相等,說明進(jìn)入另一個(gè)棋局的記錄中,將該棋局記錄的棋局名賦值給strfile,并加入到組合框中,一直到表中最后一個(gè)記錄因?yàn)橐獜臄?shù)據(jù)庫(kù)中取出相關(guān)數(shù)據(jù)到a數(shù)組中,因此要將a數(shù)組所有數(shù)據(jù)清零。要建立一個(gè)data控件,與數(shù)據(jù)庫(kù)連接起來,而后識(shí)別棋局(即表中的棋局名字段與在列表框中選擇的棋局名比較),將數(shù)據(jù)庫(kù)該棋局中

8、所有信息都賦值給a數(shù)組及相關(guān)變量。剛才僅僅是數(shù)據(jù)的恢復(fù),即將數(shù)據(jù)庫(kù)中已經(jīng)保存過的數(shù)據(jù)恢復(fù)到內(nèi)存中,下一步應(yīng)該根據(jù)內(nèi)存中的數(shù)據(jù)重新繪制棋盤以及棋子。重新繪制棋盤是獨(dú)立的一塊功能,因此考慮用全局子過程來實(shí)現(xiàn),該子過程定義在模塊中。思路如下:清屏繪制棋盤根據(jù)a數(shù)組中的每一項(xiàng)的兩個(gè)下標(biāo)來決定繪制棋子的位置,根據(jù)每一項(xiàng)的值是1還是2來決定在該位置繪制何顏色的棋子。決定該黑白方走的blackwhite變量當(dāng)時(shí)沒有保存,可以采用在數(shù)據(jù)庫(kù)中保存的方式來解決,本例中解決方法是通過數(shù)黑白棋子個(gè)數(shù)來決定恢復(fù)棋局后該誰(shuí)走的。因此設(shè)置了一個(gè)變量做計(jì)數(shù)器,每走一步棋計(jì)數(shù)器的值加一。用文件技術(shù)實(shí)現(xiàn)棋局恢復(fù),思路相同。(8)

9、悔棋悔一步棋:用幾個(gè)變量來表示關(guān)于一步棋的幾個(gè)信息,每次下子都將該子的信息賦值給那幾個(gè)變量,悔一步棋即將那幾個(gè)變量所表示的點(diǎn)的a數(shù)組信息清零。而后調(diào)用paint()過程重畫。以上是教師帶著學(xué)生完成的軟件功能。遺留問題:保存棋手姓名和棋局名并在恢復(fù)棋局的時(shí)候顯示。(需要同學(xué)們自己完成)思路:在數(shù)據(jù)表中多建立兩個(gè)字段,分別表示兩個(gè)棋手姓名,同其它數(shù)據(jù)的保存類似。三、設(shè)計(jì)日期十二月四、完成日期十二月五、實(shí)驗(yàn)體會(huì)其實(shí),一開始學(xué)習(xí)vb我就對(duì)它不抱有一定的熱情,可能是因?yàn)橐玫接?jì)算機(jī)以及編程問題,當(dāng)時(shí)一想到有代碼,就會(huì)無比的苦惱,但是為了讓這門課順利通過,我還是懷著一顆必須要學(xué)的心情。起初,我對(duì)待這門新課

10、程和其他課程一樣,保持著必須認(rèn)真聽講的決心。但是由于理論課太過枯燥,沒學(xué)幾次,我就敗下陣來,開始有一節(jié)沒一節(jié)的聽,但是心里還是存有愧疚,就得自己不該這樣懶惰,所以總是坐在前邊幾排座位上,逼著自己一定要學(xué)些什么,這總歸要比坐在后邊效果要好一些。在學(xué)了這半學(xué)期vb之后,我同樣有了一些體會(huì),雖然不會(huì)比創(chuàng)新程序的同學(xué)深刻,但是也讓我相信了,起碼在老師他自己的課堂上,他講的要點(diǎn)都是對(duì)的。1、一定要認(rèn)真聽講做筆記,這是提高效率最快的方法,就像老師說的。有了上機(jī)課,我才能真正懂得聽課的重要性,其實(shí)有些課件雖然老師為了學(xué)生能夠及時(shí)的進(jìn)行自我復(fù)習(xí)傳上去一些,但有些東西終歸是老師上課講的,而并沒有寫入課件的。所以

11、,當(dāng)真正自己寫的時(shí)候,一遍一遍的被程序提示出錯(cuò),內(nèi)心其實(shí)很著急,因?yàn)槔蠋熤挥幸粋€(gè),而且也不會(huì)圍著你團(tuán)團(tuán)轉(zhuǎn),所以這時(shí)候,請(qǐng)教同學(xué)是唯一的方法,但是這唯一的方法也不是時(shí)時(shí)都能發(fā)揮作用,同學(xué)也有不會(huì),還是需要老師。其實(shí)我知道,大部分的問題都是上課老師已經(jīng)講過的,只是自己沒聽?;蛘呤且恢虢?,經(jīng)常寫丟一些重要程序,導(dǎo)致程序一直無法運(yùn)行。比如我經(jīng)常把退出子過程exit sub弄丟,自己當(dāng)時(shí)沒覺得它很重要,雖然老師講過如果沒有這個(gè),后邊的程序會(huì)很麻煩。當(dāng)時(shí),我也只是那么一聽,沒在意,后來編程黑白子豎方向贏棋時(shí)沒把它加上,之后麻煩就出現(xiàn)了,我的黑白子一直都沒法完成豎方向贏棋總是有一個(gè)方向沒法判斷,起初老師告

12、訴我看看是否有算法上的錯(cuò)誤,但是,我找了一節(jié)多課(我承認(rèn)我這個(gè)人太固執(zhí),必須要知道為什么錯(cuò)了,才會(huì)做下一步),我覺得我的算法一定沒問題,但是不明白為什么錯(cuò),后來在讀別人的程序時(shí),才發(fā)現(xiàn)是我的exit sub沒寫,造成的,只有退出我上一個(gè)的子過程,這個(gè)過程才能正常運(yùn)行。所以可見沒聽老師的話,是多么可怕,尤其還是在我也沒聽他講課的前提下根本不懂代碼意思,亂刪改造成的后果。所以,不管是在哪里,學(xué)知識(shí)是對(duì)任何事情在打基礎(chǔ)。做每一步都要問一句問什么,凡是都有原因。2、學(xué)會(huì)獨(dú)立思考,多問自己為什么,求幫助是下策在最初的的上機(jī)試驗(yàn)里,我總會(huì)問老師一些我自己可以解決的問題,自己不愿動(dòng)腦想,希望以最快捷的方式,

13、獲得最佳的結(jié)果。但是,往往會(huì)被老師教育一下,因?yàn)樵谄渲?,有一半是拼寫錯(cuò)誤,而自己沒注意,另一半是寫程序時(shí)不夠完整(認(rèn)真說起來是根本沒怎么想,只是將課上抄錄下來的不完整筆記,憑借自己的主觀意愿,編寫的程序,不問為什么)。其實(shí)后來想一想,確實(shí)是自己的問題,既耽誤自己時(shí)間,也耽誤老師時(shí)間。這些程序老師只是給一個(gè)思路,教你如何編寫程序,但是完整的需要自己來做,這些都需要弄清思路,才會(huì)懂得我需要什么,從而編寫出什么,這樣犯錯(cuò)幾率才會(huì)大大減少。這也是鍛煉自己思路邏輯性的時(shí)候,也是老師讓我們學(xué)的地方。只是當(dāng)時(shí)沒有聽進(jìn)去。就像老師說的,只有這樣才能將程序融為自己的,真正有能力去編自己想要邊的程序。3、任何新鮮

14、的事物都需要一個(gè)熟悉的過程,凡是要趁熱打鐵,效率才會(huì)高。其實(shí),這也是老師經(jīng)常說的,可我們總是在做錯(cuò)事之后,才會(huì)想起來,原來某某某說的話是多么的對(duì),但是總是忽略它事前的作用。我確實(shí)每次上完課,筆記連翻都不翻,到真正上機(jī)的時(shí)候才會(huì)開始琢磨這個(gè)程序的意思,所以每一次的上機(jī),我的速度都是比別人慢好多,而且尤其是筆記也沒有記得很全的時(shí)候(也沒有及時(shí)的補(bǔ)),上機(jī)時(shí)間都不夠我完成上次所講的程序的。所以會(huì)很后悔,沒有好好聽講,沒有好好記筆記、補(bǔ)筆記,造成了效率低下的局面。所以,凡事都要趁熱打鐵,才會(huì)盡快吸收。4、任何事情都不是一氣呵成,事先的計(jì)劃會(huì)是你事半功倍,而實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),程序亦是如此。 這是

15、我這兩天在研究程序?yàn)槭裁催@么寫的原因時(shí),才開始領(lǐng)悟到的。這一點(diǎn)老師也有可能說過。我在拋開老師所編寫的五子棋的程序下,想通過自己的思考,把五子棋的思路捋順,所以開始自己畫結(jié)構(gòu)圖(真正開始有這種想法的是在我看到老師給我們展示的他的往屆同學(xué)做貪吃蛇的心得中,才發(fā)覺重要性)。一開始我花了一個(gè)很短的一段時(shí)間,畫出一個(gè)我自認(rèn)為很滿意思路圖,但是當(dāng)我在重新用一些數(shù)去實(shí)驗(yàn),當(dāng)我再對(duì)比我寫的圖與老師編寫的程序有何不同的時(shí)候,就會(huì)發(fā)現(xiàn),有很多漏洞。比如,我想到了有下棋,但沒有想到下棋前要清屏,防止程序之前有任何痕跡,防止出錯(cuò);還有我想到了下棋之后要判斷贏棋,但是當(dāng)我到贏棋的那一步思路,我才想到,要判斷贏棋,就必須

16、有五個(gè)相同顏色的子連一起,那么在這之前我就要加上關(guān)于數(shù)組的賦值,來代表每一種顏色的棋子,從而構(gòu)造if條件語(yǔ)句,完成應(yīng)其目的等等。其實(shí)這些都不是我一開始做程序就想到的,只有當(dāng)按照計(jì)劃實(shí)施的過程中,才能驗(yàn)證思路的正確性,才能知道自己的思路與邏輯缺陷在哪里,從而彌補(bǔ)不足。這也是將自己的邏輯思維進(jìn)一步完善的過程,也是老師想讓我們得到的東西。 所以,通過這次的課程,我能體會(huì)到老師的良苦用心,也感謝老師一直不厭倦的一遍遍教我們,一遍遍告訴我們不愿意聽的忠言。我會(huì)將我從這里學(xué)到的態(tài)度,以及做事的思維方式,運(yùn)用到其他事情上,哪怕是一點(diǎn)點(diǎn),也會(huì)讓我的效率比以往更有提高。六、全部界面和代碼Form 1Privat

17、e Sub Command1_Click()If Trim(Text1.Text) = Or Trim(Text2.Text) = ThenMsgBox 請(qǐng)輸入玩家姓名!End IfIf Trim(Text1.Text) = Trim(Text2.Text) ThenMsgBox 不能輸入相同姓名!Exit SubEnd Ifb = Text1.Textw = Text2.TextForm2.ShowUnload MeEnd SubForm 2Dim m As IntegerDim n As IntegerDim i As IntegerDim j As IntegerPrivate Sub

18、Form_Load()Form2.Picture1.Scale (-8, 8)-(8, -8)End SubPrivate Sub 開始游戲_Click()Picture1.ClsFor i = -7 To 7Picture1.Line (-7, i)-(7, i), QBColor(0)Picture1.Line (i, -7)-(i, 7), QBColor(0)NextFor i = -11 To 11For j = -11 To 11a(i, j) = 0NextNextLabel1.Caption = 該黑方 + b + 走blackwhite = Truewuziqi = True

19、End SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)m = CInt(X)n = CInt(Y)If CInt(X) = -7 And CInt(X) = 7 And CInt(Y) = -7 And wuziqi = True ThenPicture1.FillStyle = 0If blackwhite = True And a(m, n) = 0 ThenPicture1.FillColor = QBColor(0)Picture1.Circ

20、le (m, n), 0.3, QBColor(0)a(m, n) = 1Label1.Caption = 該白方 + w + 走blackwhite = FalseEnd IfIf blackwhite = False And a(m, n) = 0 ThenPicture1.FillColor = QBColor(15)Picture1.Circle (m, n), 0.3, QBColor(15)a(m, n) = 2Label1.Caption = 該黑方 + b + 走blackwhite = TrueEnd IfFor i = m - 4 To mIf a(i, n) = 1 An

21、d a(i + 1, n) = 1 And a(i + 2, n) = 1 And a(i + 3, n) = 1 And a(i + 4, n) = 1 Then MsgBox 黑方勝利! wuziqi = False Exit Sub End IfIf a(i, n) = 2 And a(i + 1, n) = 2 And a(i + 2, n) = 2 And a(i + 3, n) = 2 And a(i + 4, n) = 2 Then MsgBox 白方勝利! wuziqi = False Exit Sub End If NextFor j = n - 4 To nIf a(m,

22、j) = 1 And a(m, j + 1) = 1 And a(m, j + 2) = 1 And a(m, j + 3) = 1 And a(m, j + 4) = 1 Then MsgBox 黑方勝利! wuziqi = False Exit Sub End IfIf a(m, j) = 2 And a(m, j + 1) = 2 And a(m, j + 2) = 2 And a(m, j + 3) = 2 And a(m, j + 4) = 2 Then MsgBox 白方勝利! wuziqi = False Exit Sub End If NextFor i = 4 To 0 St

23、ep -1If a(m - i, n + i) = 1 And a(m - i + 1, n + i - 1) = 1 And a(m - i + 2, n + i - 2) = 1 And a(m - i + 3, n + i - 3) = 1 And a(m - i + 4, n + i - 4) = 1 ThenMsgBox 黑方勝利!wuziqi = FalseExit SubEnd IfIf a(m - i, n + i) = 2 And a(m - i + 1, n + i - 1) = 2 And a(m - i + 2, n + i - 2) = 2 And a(m - i +

24、 3, n + i - 3) = 2 And a(m - i + 4, n + i - 4) = 2 ThenMsgBox 白方勝利!wuziqi = FalseExit SubEnd IfNextFor i = 4 To 0 Step -1If a(m + i, n + i) = 1 And a(m + i - 1, n + i - 1) = 1 And a(m + i - 2, n + i - 2) = 1 And a(m + i - 3, n + i - 3) = 1 And a(m + i - 4, n + i - 4) = 1 ThenMsgBox 黑方勝利!wuziqi = Fal

25、seExit SubEnd IfIf a(m + i, n + i) = 2 And a(m + i - 1, n + i - 1) = 2 And a(m + i - 2, n + i - 2) = 2 And a(m + i - 3, n + i - 3) = 2 And a(m + i - 4, n + i - 4) = 2 ThenMsgBox 白方勝利!wuziqi = FalseExit SubEnd IfNextEnd IfEnd SubPrivate Sub 保存棋局_Click()Form3.ShowEnd SubPrivate Sub 打開已保存棋局_Click()Form

26、4.ShowEnd SubPrivate Sub 悔棋_Click()If wuziqi = True Thena(m, n) = 0Call paintEnd IfEnd SubPrivate Sub 保存棋局文件_Click()CommonDialog1.Filter = *.wzq/*.wzqCommonDialog1.Action = 2Open CommonDialog1.FileName For Output As #1Print #1, wuziqiFor i = -7 To 7For j = -7 To 7If a(i, j) 0 ThenPrint #1, iPrint #1

27、, jPrint #1, a(i, j)Print #1, bPrint #1, wEnd IfNextNextClose #1End SubPrivate Sub 打開棋局文件_Click()For i = -7 To 7For j = -7 To 7a(i, j) = 0NextNextCommonDialog1.Filter = *.wzq/*.wzqCommonDialog1.Action = 1Open CommonDialog1.FileName For Input As #1Line Input #1, strwzqwuziqi = CBool(strwzq)Do While N

28、ot EOF(1)Line Input #1, striLine Input #1, strjLine Input #1, straLine Input #1, strbLine Input #1, strwa(Val(stri), Val(strj) = Val(stra)LoopClose #1Call paintEnd SubForm 3Dim recount As IntegerPrivate Sub Command1_Click()With Data1.DatabaseName = App.Path + 五子棋棋庫(kù).mdb.RecordSource = 五子棋棋庫(kù).RefreshIf

29、 Trim(Text1.Text) = ThenMsgBox 棋局名不能為空Exit SubEnd IfIf .Recordset.RecordCount 0 Then.Recordset.MoveLastrecount = .Recordset.RecordCount.Recordset.MoveFirstFor i = 1 To recountIf .Recordset.Fields(棋局名) = Text1.Text Then.Recordset.DeleteEnd IfIf Not .Recordset.EOF Then.Recordset.MoveNextEnd IfNextEnd

30、IfFor i = -7 To 7For j = -7 To 7If a(i, j) 0 Then.Recordset.AddNew.Recordset.Fields(棋局名) = Text1.Text.Recordset.Fields(執(zhí)黑棋者) = b.Recordset.Fields(執(zhí)白棋者) = w.Recordset.Fields(X坐標(biāo)) = i.Recordset.Fields(Y坐標(biāo)) = j.Recordset.Fields(該點(diǎn)狀態(tài)值) = a(i, j).Recordset.Fields(下棋狀態(tài)) = wuziqi.Recordset.UpdateEnd IfNextNextUnload MeEnd WithEnd SubForm 4Dim recount As IntegerPrivate Sub Form_Load()Combo1.Text = 請(qǐng)選擇所要打開的棋局strfile = With Data1.DatabaseName = App.Path +

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論