導航:首頁 > 觀俄羅斯 > 如何控制俄羅斯方塊

如何控制俄羅斯方塊

發布時間:2022-09-01 03:53:28

① 如何實現俄羅斯方塊的自動控制

rtyery

② 誰能介紹一些打俄羅斯方塊的技巧

玩俄羅斯方塊技巧

要玩好俄羅斯方塊很難...

操作說明

游戲界面上的按鈕以滑鼠操作
鍵盤 [ 左、右 ] 用來控制落下磚塊的左右移動
鍵盤 [ 下 ] 用來控制磚塊加速下落
鍵盤 [ 上 ] 用來控制磚塊變形
鍵盤 [ 空格 ] 用來控制磚塊直接落到底
鍵盤 [1-6 (大鍵盤) ] 用來對指定座位的玩家使用道具(玩家座位號在玩家信息欄有顯示)
鍵盤 [s] 用來切換道具,將所有道具依次往右移動一格,最右邊的道具移動到最左邊

(以上的鍵位設置是游戲默認的設置,您也可以按自己的習慣隨時更改。)

道具說明:

道具分為紅色(攻擊)和藍色(防禦)兩種

紅色:
加一層 ,在被使用者的游戲池中從底部起增加一層方塊。
加兩層 ,在被使用者的游戲池中從底部起增加兩層方塊。
加三層 ,在被使用者的游戲池中從底部起增加三層方塊。
加速 , 使被使用者的方塊下落速度加快 20 秒。

藍色:
減一層 ,在被使用者的游戲池中從底部起減一層方塊。
減兩層 ,在被使用者的游戲池中從底部起減兩層方塊。
減三層 ,在被使用者的游戲池中從底部起減三層方塊。
減速 , 使被使用者的方塊下落速度減慢 20 秒。
全消 , 把被使用者的游戲池清空。

現在講解技巧...

1對1..... 首先要的是速度....利用空格鍵使方塊直接落下...玩的不熟的玩家要熟悉一下....

我們先是消掉一兩行...然後道具就會出來....然後繼續越快越好....得到了道具馬上用(紅色對別人用,藍色對自己用)...

我們狂陰別人..別人的游戲池越來越高...而我們的游戲池還是那麼低..哈哈...就著樣..有道具就用他...反正他沒有什麼道具..

先用道具的那個人勝率是80%...但主要的是速度...看準就放..

多人混戰.... 這個來說...比較難打...我們先是多行一起消(3行以上)....那樣其他人的游戲池就會上升....這樣一直多行消下去...他們的游戲池就越來越高....你就慢慢的來也能贏..但如果有人像你一樣....多行一起消...那就看看道具條....一定有很多道具..那就狂加他咯...反正紅的是他..藍的是自己...哈...那又贏了....隊戰也一樣.....

積分規則(等級)

失敗方按照游戲隊伍數目和失敗玩家的名次,扣分如下:
兩個玩家: - 12 (第二名)
三個玩家: - 6 (第二名) , - 12 (第三名)
四個玩家: - 6 (第二名) , - 6 (第三名) , - 12 (第四名)
五個玩家: - 6 (第二名), - 8 (第三名), - 10 (第四名), - 12 (第五名)
六個玩家: - 6 (第二名), - 8 (第三名), - 10 (第四名), - 12 (第五名), - 12 (第六名)

玩家按照積分劃分為以下等級:
學徒=0
雇傭工人=25
泥土工人=50
砌牆工人=150
建築隊長=300
建築師傅=500
建築工頭=700
建築工頭★=900
制圖工程師=1100
制圖工程師★=1400
見習工程師=1700
見習工程師★=2100
助理工程師=2500
助理工程師★=3100
工程師=3500
工程師★=4100
建築藝術家=4700
建築藝術家★=5500
房屋設計師=6200
房屋設計師★=7200
高級設計師=8200
高級設計師★=9200
名譽設計師=10000
名譽設計師★=11000
設計總監=15000
設計總監★=20000
皇家建築師匠=50000
神匠=100000
巧奪天工=500000
鬼斧神工=1000000

③ 用VC寫俄羅斯方塊時如何實現圖形的控制啊

VC++也有相應的函數
主要就是繪圖類
CDC類
就是其中的關鍵
主要是處理畫圖和圖象處理的工作
建議使用
視圖/文檔
的界面來操作
比較方便
可以響應鍵盤
滑鼠消息
以及畫圖等等

④ QQ火拚俄羅斯方塊鍵位設置

【鍵盤及游戲設置】

想要打好方塊,鍵盤太爛肯定是不行的。選擇鍵盤的首要條件就是手感舒適,按鍵
輕松,彈性好。接下來是鍵盤的傳輸速度(每秒位元組數),一般新點的都在1500以上,
沒有必要強求太高,除非你喜歡打十速。

鍵位的設置,沒得商量,肯定要雙手分工!單手是絕對打不過雙手的(要是對方奇
菜無比那當我沒說過),現在就向大家推薦以下的設置,也就是我的設置:

〖推薦·游戲設置〗
左移 :← 右移 :→
丟下 :空格
下落 :↓
旋轉:E
方向 :逆時針
(根據各人習慣而定,但90%的方塊類游戲都是逆時針)

這套設置的好處是雙手指頭各司其職,右手食指和無名指負責左右移動,中指負責
降(聯眾的定義不好,我將丟下改為落,將下落改為降),左手食指負責旋轉,大拇指
負責落,食指和大拇指分別能輕松按到F2、Y和N(敲擊回車效果和N相同),使一局
游戲里到頭來幾乎用不著滑鼠。

〖推薦·關於提高游戲速度〗
不少朋友老是抱怨自己的速度慢,「太卡」,這可能跟機器太爛有關系,但80%是因為一些沒有意義的事情引起的。當你開著下載程序、聊著QQ、
聽著歌曲去玩方塊時,沒有理由使你不卡。尤其是在QQ接到系統消息時,你百分之百會卡!所以建議關閉不必要的程序,QQ隱身,此外強烈建議關閉游戲設置中的「聲音效果」和「方塊消失的漸變效果」!前者直接導致跟歌曲和QQ沖突,而後者嚴重壓抑你沖鋒和防守時的速度!

〖開局要旨〗

(一)平均、平緩,避免一開始就造大山。
(二)秉承「能低不高,能平不立,能靠不壓」的基本原則。
(三)在造盆地時注意造成兩格或四格。
(四)盡量不在邊上留坑,絕不在邊上留洞,將洞開向主攻方向。

⑤ 怎麼用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講 作者:趙欣勝,亢慧娟,劉晟宏 科學出版社出版

⑥ 俄羅斯方塊的游戲規則

游戲規則:完整的橫條會隨即消失。

由小方塊組成的不同形狀的板塊陸續從屏幕上方落下來,玩家通過調整板塊的位置和方向,使它們在屏幕底部拼出完整的一條或幾條。這些完整的橫條會隨即消失,給新落下來的板塊騰出空間,與此同時,玩家得到分數獎勵。沒有被消除掉的方塊不斷堆積起來,一旦堆到屏幕頂端,玩家便告輸,游戲結束。

名字起源

俄羅斯方塊自然是俄羅斯人發明的。這人叫阿列克謝·帕基特諾夫(Алексей Пажитнов 英文:Alexey Patnov)。

俄羅斯方塊原名是俄語Тетрис(英語是Tetris),這個名字來源於希臘語tetra,意思是「四」,而游戲的作者最喜歡網球(tennis)。於是,他把兩個詞tetra和tennis合而為一,命名為Tetris,這也就是俄羅斯方塊名字的由來。

⑦ 用c++怎麼樣才能實現對俄羅斯方塊自動下落的控制

#define ELUOSIWIDGET_H
#include <QtGui/QWidget>
#include <QPainter>
#include <QPaintEvent>
#include <QKeyEvent>
#include <string.h>
#include <time.h>
#define REC_SIZE 25 //方塊大小
#define SCENE_W 16 //場景列數
#define SCENE_H 10 //場景行數
enum direction{UP,DOWN,LEFT,RIGHT,SPACE};
typedef struct {
int pos_x; //方塊x坐標
int pos_y; //方塊y坐標

⑧ C++編俄羅斯方塊:怎樣用鍵盤控制上下翻轉

這個是沒有專門的函數來控制俄羅斯方塊的翻轉的,
一般來講,是通過如下的方式來實現俄羅斯方塊的翻轉:
首先,用3維數組來存放七種基本方塊圖形:
例如:
int BOX[7][4][4]={
{
{1,1,1,1}, // ----型
{0,0,0,0},
{0,0,0,0},
{0,0,0,0}
},
{
{1,1,1,0}, // ┌--型
{1,0,0,0},
{0,0,0,0},
{0,0,0,0}
},
{
{1,1,1,0}, // --┐型
{0,0,1,0},
{0,0,0,0},
{0,0,0,0}
},
{
{1,1,1,0}, // -┬-型
{0,1,0,0},
{0,0,0,0},
{0,0,0,0}
},
{
{1,1,0,0}, // -T_型
{0,1,1,0},
{0,0,0,0},
{0,0,0,0}
},
{
{0,1,1,0}, // _T-型
{1,1,0,0},
{0,0,0,0},
{0,0,0,0}
},
{
{1,1,0,0}, // 田型
{1,1,0,0},
{0,0,0,0},
{0,0,0,0}
}
};

如果希望實現用鍵盤控制翻轉,需要做兩件事情:
1.接收並響應鍵盤按鍵事件
2.在進行按鍵事件處理時,進行翻轉

由於1比較簡單,就不多說了。
對於2,其實有兩種方法實現:
1.進行矩陣的轉置處理(也就是右轉90度),按一次鍵,轉置一次
2.將19種變換圖形也用3維數組來存放,通過數組元素的下標訪問找到旋轉後的形狀
例如:
L型:
{
{1,0,0,0}, // L型
{1,0,0,0},
{1,1,0,0},
{0,0,0,0}
},

{
{1,1,1,0}, // ┌--型
{1,0,0,0},
{0,0,0,0},
{0,0,0,0}
},

{
{1,1,0,0}, // ┐型
{0,1,0,0},
{0,1,0,0},
{0,0,0,0}
},

{
{0,0,1,0}, // --┘型
{1,1,1,0},
{0,0,0,0},
{0,0,0,0}
},

為了方便讀取,減少程序中演算法上的開銷(比如進行4*4矩陣的轉置),
我建議你採取將19種變換圖形也用3維數組來存放的方式

⑨ 用鏈表怎麼實現俄羅斯方塊

1、考慮怎麼存儲俄羅斯方塊
俄羅斯方塊的形狀一共有19種類型,如果拿數組來表示的話,可能會比較會浪費空間(網上有很多實現代碼)

考慮到每種方塊形狀的范圍是4 *4的小方塊,用 字模點陣的方式來存儲,即設置一個4行4列的數組,元素置1即代表這個位置有小
方塊,元素置0即代表這個位置無小方塊,這個整個的4*4的數組組成俄羅斯方塊的形狀。
1000
1000
1100
0000
上述4*4來表示L形狀的方塊。
4*4 =16 bit 正好為short類型,所以每一個方塊可以用一個short類型的數據來表示。我們把俄羅斯方塊點陣的數位存在rockArray中,我們可以事先把這19種方塊的字模點陣自己轉化成十六進制,然後在rockArray數組的初始化時賦值進去。
但是這種方式擴展性不好,每當有一種新方塊時需要改動,
所以可以寫一個配置文件來表示19種方塊。(RockShape.ini)
@###@###@@######1234

從配置文件中讀取方塊的類型的代碼在(Init.h的ReadRock函數中)在下面3中解釋下代碼如何實現
2如何畫出方塊
可以使用EasyX庫來畫出簡單的圖形,
EasyX庫是在VC下實現TC的簡單繪圖功能的一個庫,這個庫很容易學會(直接 網路EasyX庫,裡面有詳細的教程)
那麼如何畫出方塊,方塊已經存儲到一個short類型中了
從short中讀取出,可以用一個掩碼mask = 1來與short的每個bit位相與,結果為1,則畫出一個小方塊;
函數聲明:
void DisplayRock(int rockIdx, RockLocation_t* LocatePtr, bool displayed)1

參數1:表示在數組中的下標,取出short類型的方塊表示數據
參數2:表示當前坐標,即畫出方塊的左上角的坐標x,y
參數3:true表示畫出該方塊,false 表示擦除該方塊。
//方塊在圖形窗口中的位置(即定位4*4大塊的左上角坐標) typedef struct LOCATE
{ int left; int top;
} RockLocation_t;123456

3如何實現同一種類型方塊的翻轉,
在按『↑』時應該翻轉同一種類型的方塊,
比如下面的橫桿和豎桿
@###@###@###@###@@@@############****1234567891011

typedef struct ROCK
{ //用來表示方塊的形狀(每一個位元組是8位,用每4位表示方塊中的一行)
unsigned short rockShapeBits; int nextRockIndex; //下一個方塊,在數組中的下標 } RockType;123456

定義一個RockType類型的數組來存儲19種方塊
RockType RockArray[19] = { (0, 0) };
當我們按「↑」時,把傳入畫方塊函數DrawRock中的rockIndex變為當前方塊結構體中的nextRockIndex即可。
簡單解釋下ReadRock函數的實現:當讀取到空行的時候表示 一種方塊已經讀取完畢,當讀取到**** 行時 表示同一種類型的方塊讀取完畢,具體看代碼實現,代碼中具體的注釋
4、主要游戲實現的邏輯
貼一個預覽圖吧

註:上述預覽圖的游戲控制區和游戲顯示區在Draw.h的DrawGameWindow()函數實現的
(1)在初始位置畫出方塊,在預覽區畫出下一次的方塊
(2)方塊有兩種行為:響應鍵盤命令UserHitKeyBoard(),自由下落
如果敲擊鍵盤了(w ,a ,s ,d, )空格表示暫停,如果在規定時間內沒有敲擊鍵盤的話,方塊自由下落一個單位
if (kbhit()) //如果敲擊鍵盤了 就處理按鍵
{
userHit = getch();
UserHitKeyBoard(userHit, &curRockIndex, &curRockLocation);
} //沒有 就自動下移一個單位 :不能用else,因為可能按鍵不是上下左右
DWORD newtime = GetTickCount(); if (newtime - oldtime >= (unsigned int)(300) && moveAbled == TRUE)
{
oldtime = newtime;
DisplayRock(curRockIndex, &curRockLocation, false);
curRockLocation.top += ROCK_SQUARE_WIDTH; //下落一格
}1234567891011121314

(3)當方塊落地(即不能下移了)時,判斷是否滿行,如果滿行則消除,然後再判斷游戲是否結束,游戲結束的話,直接退出遊戲
判斷滿行:FullLine()函數,從最底下的一行開始判斷,直到遇到一行空行,
while (count != xROCK_SQUARE_NUM ) //遇到空行 14
{
linefull = true; count = 0; for (int i = 1; i <= xROCK_SQUARE_NUM; ++i)
{ if (game_board[idx][i] == 0)
{
linefull = false; count++;
}
} if (linefull) //滿行,消除當前行,更新分數
{
DelCurLine(idx);//消除滿行
game_socres += 3;
UpdateSocres(game_socres);
idx++;//因為下面要減1
}
idx--;
}

(4)消除滿行
將要刪除的滿行擦除:即將方塊化成與背景色相同的,該代碼為黑色
然後將上面的一行向下移,移一行刪除一行,直到遇到空行
具體看代碼的具體實現 game.h
void DelCurLine(int rowIdx)
(4)判斷方塊是否能移動
在game.h中實現
bool MoveAble(int rockIndex, RockLocation_t* currentLocatePtr, int f_direction)1

**比較當前位置的坐標(左上角)開始,能否放下rockIndex的方塊。
註:f_direction為」↑」的話,則傳入的rockIndex為下一個方塊**
如果不能移動的話,給游戲game_board設置標記表示該位置被佔有
//全局變數-游戲板的狀態描述(即表示當前界面哪些位置有方塊) //0表示沒有,1表示有(多加了兩行和兩列,形成一個圍牆,便於判斷方塊是否能夠移動) int game_board[yROCK_SQUARE_NUM + 2][xROCK_SQUARE_NUM + 2] = { 0 };123

實現過程遇到的一些問題
(1)在快速下落的時候,可能方塊會掉出圍牆的范圍內,
快速下落是使方塊每次下落2個單位距離。
在判斷不能下落時,使當前坐標的top即y減去一個單位的距離
(2)遇到多行滿行時消除不了,
在判斷滿行時,循環找出滿行,找出一個滿行,就消除一行,然後繼續判斷是否滿行,直到遇到空行
具體源代碼的實現:【C語言】俄羅斯方塊的源代碼
也可以直接在GitHub下載:【C語言】俄羅斯方塊的源代碼
註:可能還在存在一些問題,歡迎各位大神來改正
版權聲明:本文為wenqiang1208原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/wenqiang1208/article/details/71244843

⑩ 玩俄羅斯方塊怎麼使鍵盤快速移動啊

一提到俄羅斯方塊,許多人不由想起黑白手掌機和紅白機上的方塊游戲。把不斷下落的七種不同形狀方塊左右移動、旋轉、落塊,最後壘成一層消除掉;落塊的速度隨著消掉的層數和級別越來越快,非常刺激和具有挑戰性。也許有些朋友會不屑一顧,發出「Easy,太Easy的游戲了!當年我還是打方塊的高手呢。」諸如此類的話。且慢!《E塊冒險》雖然是一款以俄羅斯方塊為主題的休閑游戲,但它是網路對戰類型的,你的對手將不再是呆板遲緩、智能低下的機器。看到那些俄羅斯方塊高手,有如「下雨」般的落塊(頂級選手每秒落3塊以上),道具魔法紛飛,幾乎不用任何思考的時間,也許你的驕傲將無影無蹤,剩下的只有欽佩和感嘆了。 那麼,高手是如何達到這樣一種境界的呢?這個問題想必是許多俄羅斯方塊愛好者心中共同的疑惑。除了熱愛和大量的練習外,一些基本的修改和設置是必不可少的,下面就給大家介紹一下吧。 修改控制鍵位 均勻分布操作 一般新手玩俄羅斯方塊游戲都喜歡用默認鍵位,即右手操作←、→方向鍵控制方塊的左右移動,↑鍵控制方塊旋轉,↓鍵加速方塊下落,左手操作空格鍵使方塊直接落到底。這種默認鍵位如果僅僅是作為人機對戰娛樂是可以的,但用在網路對戰中就要吃虧。因為右手承擔了大部分的操作,一隻手要按3個鍵,而左手按一個鍵又相對空閑,這樣操作強度分布非常不均勻,右手很累,落塊速度也提不上去。實際上新手不是不想修改默認鍵位,更多的是不知道還可以改和怎麼改,等發現需要修改的時候已經習慣了常用鍵位,想改已經非常困難了。如果你想水平更上一層樓,甚至成為「會當凌絕頂」一代方塊高手的話,修改控制鍵位是必須要做的事了。 《E塊冒險》中提供了非常靈活的鍵位修改功能,在「游戲設置」的「游戲操作」下「鍵盤設置」中修改,足足有15項之多,想怎麼改就怎麼改。 科學的操作方法是每隻手控制兩個鍵,一隻手負責直接落底和旋轉,另一隻手負責左右移動。游戲中還可以使用道具和對指定座位號的對手攻擊,所以鍵位盡量設置在中間的字母鍵上比較方便。 設置方法可根據習慣因人而異,這里給出一種常見的鍵位設置供參考:右手J鍵左移,L鍵右移,K鍵加速下落;左手鍵D旋轉,F鍵群發道具,空格鍵落底。還有稍微復雜些帶指定座位使用道具的設置,需要經過一番練習才能熟練掌握:右手J鍵左移,L鍵右移,K鍵快速下落,U鍵攻5號,I 鍵攻6號,O鍵攻7號,P鍵攻8號;左手D鍵順時針旋轉,F鍵逆時針旋轉,S鍵群發道具,空格鍵直接落底,Q鍵給自己加血、W鍵攻2號、E鍵攻3號、G鍵攻4號。注意使用道具時鍵位對應座位號的選手隨你的位置有所不同,例如你是1~4號位,那麼1~4號其他位置上就是你的同伴,5~8號定義的鍵位是要攻擊對手,反之亦然。 這樣設置左、右手分工在團隊戰或混戰中操作就會更加靈活從容,也不容易累,更中重要的是熟練以後速度能提升不少。開始的時候有些不習慣,一般堅持3天就能恢復以前的水平,後面就會明顯感覺提高了一個檔次。 巧用「超級鍵盤」 速度再加倍 當適應新設置練習了一段時間後,會不會感覺速度提高很多呢?不過,你可能又要覺得鍵盤跟不上思維了。恭喜恭喜,你的方塊水平又上了個新台階。當通過大量的練習水平達到一定程度後,各種方塊擺法會形成一種無意識的條件反射,用高手們的話說「不知道為什麼這么擺,完全憑感覺」。這時鍵盤速度就成了新的「攔路虎」,限制了水平發揮,現在可以考慮換個速度快的鍵盤了。 手指按下鍵帽後會有一個響應和延遲時間,如果縮短鍵盤的響應間隔時間,也就是加快反應速度,是不是操作起來更靈敏,更快速呢?現在俄羅斯方塊愛好者中流行一種修改鍵盤電阻的阻值使鍵盤加速的方法。不過這種修改需要具備一定的電子知識,選擇鍵盤也有學問,而且硬體修改後鍵盤速度過快,沒有較長的適應過程根本控制不了,平時打字都很困難,游戲中也經常出現按一下落好幾塊的情況。所以,這種高速鍵盤適合水平已經很高的時候選用。 對於普通玩家而言,加速鍵盤需要一步步的適應。《E塊冒險》提供了「超級鍵盤」的功能,可以使鍵盤速度隨著水平提高逐步調整到所需的速率,省去硬體修改鍵盤的麻煩。 建議新手使用「超級鍵盤」時,最開始用2200檔,然後再2800、3500、4000……5400逐步提高。適應鍵盤不要操之過急,最好每次感覺鍵盤慢了再提高一檔。 相信通過以上的修改和一段時間的練習,研究速度和擺法的配合,你的驕傲感會重新找回。

滿意請採納

閱讀全文

與如何控制俄羅斯方塊相關的資料

熱點內容
金華義烏國際商貿城雨傘在哪個區 瀏覽:773
俄羅斯如何打通飛地立陶宛 瀏覽:1147
韓國如何應對流感 瀏覽:932
在德國愛他美白金版賣多少錢 瀏覽:969
澳大利亞養羊業為什麼發達 瀏覽:1408
如何進入法國高等學府 瀏覽:1485
巴西龜喂火腿吃什麼 瀏覽:1417
巴西土地面積多少萬平方千米 瀏覽:1277
巴西龜中耳炎初期要用什麼葯 瀏覽:1241
國際為什麼鋅片如此短缺 瀏覽:1645
巴西是用什麼規格的電源 瀏覽:1468
在中國賣的法國名牌有什麼 瀏覽:1369
在菲律賓投資可用什麼樣的居留條件 瀏覽:1280
德國被分裂為哪些國家 瀏覽:890
澳大利亞跟團簽證要什麼材料 瀏覽:1223
德國大鵝節多少錢 瀏覽:885
去菲律賓過關時會盤問什麼 瀏覽:1208
澳大利亞女王為什麼是元首 瀏覽:1039
有什麼免費的韓國小說軟體 瀏覽:768
申請德國學校如何找中介 瀏覽:673