史雙全
(吉林省長(zhǎng)春市第一五一中學(xué))
應(yīng)用VBA技術(shù)實(shí)現(xiàn)的象棋比賽評(píng)分系統(tǒng)
史雙全
(吉林省長(zhǎng)春市第一五一中學(xué))
棋類比賽評(píng)分一般要通過(guò)手工對(duì)選手分組,手工計(jì)算選手分?jǐn)?shù)積分,手工排名次,不利于大規(guī)模比賽需要。利用Excel VBA直接調(diào)用Excel內(nèi)置的豐富函數(shù),編寫(xiě)了象棋比賽評(píng)分模板程序。該程序可自動(dòng)快速編排選手對(duì)局,自動(dòng)計(jì)算選手積分及排名。與手工比賽評(píng)分相比,該方法精度較高,極大地提高了工作效率。旨在對(duì)信息技術(shù)的應(yīng)用推廣,使得在當(dāng)今信息技術(shù)應(yīng)用普遍的情況下,能夠把信息技術(shù)充分利用好,做到靈活運(yùn)用。
程序設(shè)計(jì);算法;對(duì)局;評(píng)分
在教育信息技術(shù)時(shí)代下,信息技術(shù)教師作為學(xué)校信息教育的技術(shù)支持者,有責(zé)任做好信息技術(shù)的教育應(yīng)用研究,使信息技術(shù)在教育教學(xué)工作中效能最大化,同時(shí)又從中催生具有教育信息技術(shù)時(shí)代特色的問(wèn)題解決方案和教學(xué)工作新模式。
比爾蓋茨說(shuō)過(guò):VBA已經(jīng)不再是單純的技術(shù),它正快速地朝著一個(gè)標(biāo)準(zhǔn)化的程序開(kāi)發(fā)平臺(tái)的目標(biāo)前進(jìn),就好像現(xiàn)在的Windows、internet角色一樣。VBA是即將興起的、很有前途的編程語(yǔ)言,在Office環(huán)境下用VBA開(kāi)發(fā)應(yīng)用軟件,將成為軟件開(kāi)發(fā)人員和計(jì)算機(jī)應(yīng)用人員首選的方式。
遺憾的是,在眾多的Office辦公軟件應(yīng)用人員當(dāng)中,80%以上的人僅使用軟件極少部分基本功能,真正精彩的潛在部分——VBA編程,沒(méi)有被開(kāi)發(fā)和使用。關(guān)于Office基本操作的書(shū)隨處可見(jiàn),但關(guān)于VBA開(kāi)發(fā)與應(yīng)用的書(shū)很少,偶爾能見(jiàn)到幾本,大多講一些對(duì)象、屬性、方法和語(yǔ)言基礎(chǔ),可供參考的、有實(shí)際應(yīng)用價(jià)值的實(shí)例很難見(jiàn)到。
現(xiàn)如今,每一位計(jì)算機(jī)人,不論是計(jì)算機(jī)專業(yè)人員還是非專業(yè)人員,大概都要從文字處理和電子表格入手,Office系列軟件確實(shí)可以解決我們?nèi)粘9ぷ?、學(xué)習(xí)和生活中的很多問(wèn)題,VBA組件編制程序,進(jìn)行程序設(shè)計(jì),在Office基礎(chǔ)上進(jìn)行二次開(kāi)發(fā),制作出符合我們特定需要的軟件,實(shí)現(xiàn)繁瑣、機(jī)械的日常工作自動(dòng)化,進(jìn)一步提高工作效率,提高軟件的應(yīng)用水平。
象棋淘汰賽選手兩兩對(duì)局,勝者再兩兩對(duì)局,最后勝出者,即為冠軍。此比賽局?jǐn)?shù)少,但不是十分公平。循環(huán)賽每名選手與其他所有對(duì)手均對(duì)局,最后計(jì)算每名選手積分,按積分排名次。此比賽雖然公平,但隨著選手的增多,需要比賽局?jǐn)?shù)呈幾何基數(shù)增多,需要時(shí)間長(zhǎng),根本無(wú)法實(shí)現(xiàn)。此系統(tǒng)的比賽采用積分循環(huán)制,規(guī)則要求如下:
根據(jù)比賽參賽選手,第一局,需要排出比賽對(duì)局名單;兩人只賽一局,對(duì)局后記錄每名選手積分,根據(jù)選手積分成績(jī)排名,再高手對(duì)高手,孬手對(duì)孬手,排出下一輪對(duì)局;繼續(xù)對(duì)局、積分、排名,根據(jù)高對(duì)高,孬對(duì)孬,排下一輪對(duì)局,直到對(duì)局合適輪次,結(jié)束比賽,最后排出總名次。
采用以上規(guī)則,每輪比賽對(duì)局后,按照選手積分排名次,再排下一輪對(duì)局,高手之間幾乎都能對(duì)一局,高手之間名次充分公平;另外,孬手之間也充分對(duì)局,也充分排好了名次。使得比賽時(shí)間不是很長(zhǎng),又能展現(xiàn)選手實(shí)力,拉開(kāi)選手比賽成績(jī),實(shí)現(xiàn)了競(jìng)賽排名的要求。
1.操作數(shù)據(jù)準(zhǔn)備
選手錄入:建立電子表格工作簿,在工作表中,輸入選手序號(hào)、名字。選手人數(shù)錄入:在工作表對(duì)應(yīng)單元格中輸入比賽選手人數(shù)。
2.對(duì)局評(píng)分過(guò)程
(1)首輪對(duì)局分配:第一輪以計(jì)算機(jī)分配對(duì)手。在每名選手第一輪列的對(duì)手列自動(dòng)填充選手序號(hào)(選手序號(hào)首尾對(duì)局);并在先后列自動(dòng)填充先后手(選手序號(hào)小的設(shè)置為先手,執(zhí)紅棋先行)。(2)錄入比賽成績(jī):兩人只賽一局,賽后填寫(xiě)比賽得分,勝方積2分,負(fù)方積0分,和局雙方各積1分。(3)對(duì)局分配:第二輪起,評(píng)分及分配對(duì)手過(guò)程。將選手目前幾輪比賽得分累加,統(tǒng)計(jì)出當(dāng)前選手總積分,填充到總積分列;按總積分列排名;分配對(duì)手,從最高分選手,向下尋找分?jǐn)?shù)最接近,并且未對(duì)過(guò)局的選手,將對(duì)手序號(hào)填充到該輪對(duì)手列,同時(shí)將對(duì)手的對(duì)手列填上此選手;對(duì)比兩選手先后手,后手多的設(shè)置為先手,執(zhí)紅棋先行。(4)比賽過(guò)程:重復(fù)2和3步驟,直到第7輪或第8輪,比賽結(jié)束。(5)排名次:名次按積分降序排列,積分相同的,再按選手對(duì)手積分的和降序排列,最后排出總名次。
通過(guò)以上實(shí)例,可以看到新課標(biāo)指導(dǎo)下對(duì)高中計(jì)算機(jī)老師提出了更多要求,要求他們對(duì)當(dāng)前高中學(xué)生對(duì)計(jì)算機(jī)課程的不同層次,在梳理好Excel VBA技術(shù)知識(shí)的基礎(chǔ)上,進(jìn)行VBA使用程序的研究開(kāi)發(fā),提高工作的信息化和工作效率。在VBA信息技術(shù)應(yīng)用中,發(fā)現(xiàn)Excel的宏錄制、半手工半程序化操作、全程序化操作、二次開(kāi)發(fā)、大量應(yīng)用實(shí)例等對(duì)信息技術(shù)應(yīng)用的價(jià)值。引導(dǎo)學(xué)生將計(jì)算機(jī)技術(shù)運(yùn)用到生活中,對(duì)各類問(wèn)題加以解決,讓使用者看到VBA的應(yīng)用,將對(duì)推進(jìn)和落實(shí)素質(zhì)教育、發(fā)展學(xué)生主體性和創(chuàng)造性、培養(yǎng)學(xué)生創(chuàng)新精神和實(shí)踐能力具有重要意義。
[1]李政.完美體驗(yàn)來(lái)自O(shè)ffice XP[M].機(jī)械工業(yè)出版社,2002.
[2]齊治昌.軟件工程[M].高等教育出版社,1997.
·編輯孫玲娟