關於C語言大作業的一些提示和一些C語言的庫函式

2021-09-22 20:06:32 字數 2837 閱讀 2386

1、俄羅斯方塊的基本方塊由以下7種組成(也可以自行增加種類),可使用乙個三維的陣列來表示這七種基礎方塊。

庫是c/c++中的日期和時間標頭檔案。用於需要時間方面的函式。

用於生成隨機數。

srand函式隨機數發生器的初始化函式,

使用的時候用rand()%i函式獲得0~i-1之間的隨機數,其中i為整數

一般初始化**如下:

#include

"time.h"

/*初始化隨機數的發生器*/

srand

(time(0

));/*輸出隨機數,比如輸出0-99之間的隨機數 */

printf

("%d\n"

,rand()

%100

);

在俄羅斯方塊大作業中,隨機數可以用來隨機輸出乙個基礎的方塊。3、#include 「windows.h」 --------------windows程式設計介紹

控制代碼: handle

控制代碼是整個windows程式設計的基礎。乙個控制代碼是指使用的乙個唯一的整數值,即乙個4位元組(64位程式中為8位元組)長的數值,來標識應用程式中的不同物件和同類中的不同的例項,諸如,乙個視窗,按鈕,圖示,滾動條,輸出裝置,控制項或者檔案等。應用程式能夠通過控制代碼訪問相應的物件的資訊,但是控制代碼不是指標,程式不能利用控制代碼來直接閱讀檔案中的資訊。如果控制代碼不在i/o檔案中,它是毫無用處的。 控制代碼是windows用來標誌應用程式中建立的或是使用的唯一整數,windows大量使用了控制代碼來標識物件。因此在windows程式設計中,控制代碼通常通過getstdhandle函式初始化。

getstdhandle函式是乙個windows api函式。它用於從乙個特定的標準裝置(標準輸入、標準輸出或標準錯誤)中取得乙個控制代碼(用來標識不同裝置的數值)。可以巢狀使用。

在俄羅斯方塊問題中,控制代碼用於設定游標的位置。

(1) coord 變數是windows api定義的一種結構,表示乙個字元在控制台螢幕上的座標。其定義為:

typedef

struct _coord coord;

(2) setconsolecursorposition(g_houtput, cd);用於控制游標的位置

(3) setconsoletextattribute(g_houtput, word wattributes); 用於控制輸出字型的顏色,

(4)console_cursor_info cursor_info 用於控制游標的可見度和厚度

以下函式可用於幫助設定游標的位置以及初始化控制代碼:

#include

"windows.h"

handle g_houtput =

getstdhandle

(std_output_handle)

;// 初始化控制代碼

setconsoletextattribute

(hout,foreground_red|foreground_green)

;// 控制輸出的顏色

void

setcursor0

(coord cd)

void

setcursor

(int x,

int y)

;setcursor0

(cd)

;}

通過setcursor函式可以控制游標的位置,從而設計遊戲的窗體以及輸出的得分、等級等

示例**如下:

#include

#include

intmain()

;int i;

hout =

getstdhandle

(std_output_handle)

;setconsoletextattribute

(hout,foreground_red|foreground_green)

;//控制輸出的顏色

for(i=

0;i<

20;i++

)return0;

}

4、控制方塊下降的速度

俄羅斯方塊問題實現方塊下降的方法通常是將之前的方塊清除,並在下方一格生成相同的方塊。通過time.h的clock()函式來控制方塊停留的時間。

5、通過鍵盤控制方塊移動和旋轉

getasynckeystate(int nvirtkey):確定使用者當前是否按下了鍵盤上的乙個鍵的函式。如果按下,則返回乙個true值

getasynckeystate(vk_up):通過鍵盤的「上」鍵控制,如果按下「上」鍵,則返回值最高位為1

getasynckeystate(vk_down):通過鍵盤的「下」鍵控制,如果按下「下」鍵,則返回值最高位為1

getasynckeystate(vk_left):通過鍵盤的「左」鍵控制,如果按下「左」鍵,則返回值最高位為1

getasynckeystate(vk_right):通過鍵盤的「右」鍵控制,如果按下「右」鍵,則返回值最高位為1

getasynckeystate(vk_space):通過鍵盤的「空格」鍵控制,如果按下「空格」鍵,則返回值最高位為1

if

(getasynckeystate

(vk_up)

)// 當按下鍵盤上「上」鍵時,getasynckeystate(vk_up)==1 ,執行下一步操作

一些關於C語言的總結

看到一哥們寫的筆記,感覺不錯就拿過來了。本想加到網摘裡邊,可搗騰了半天就沒有發現加網摘的鏈結,最後還是寫到自己的部落格中吧!總結1 char ch 12345 char ch 12345 char ch puts printf s char ch 必須有單引號 scanf n a gets a 空格...

關於C語言的一些總結

最近看了一些書籍,總結一下程式設計師容易忽略的程式設計細節吧,對面試還是考試有幫助的,不斷更新中。1.sizeof 想必大家都知道這個關鍵字吧,不是函式哦,凡是在c c 編輯器了有和其它關鍵字有相同顏色的單詞都是關鍵字,這是乙個計算型別或者變數在記憶體中的佔位大小,當是型別時如sizeof int ...

10 關於acm的一些錯誤提示

1.acceptted,簡稱ac 指寫的 沒錯誤,順利通過 2.presentation error 提交錯誤 首先可以肯定的是,你的思路沒有錯,輸出結果也與標準輸出結果非!常!接!近!出現這個錯誤最可能的原因是,在輸出結果的後面,多了或少了沒什麼意義的空格,tab,換行符等等。所以,請先認真檢查程...