資源簡介
我的C語言作業;程序運行需配置好SDL;
代碼片段和文件信息
#include?“SDL/SDL.h“
#include?
#include?
#include?
SDL_Surface?*?screen;
SDL_Surface?*?background;
//定義一個結構體數組,用于記錄圖片指針,以釋放內存空間;
SDL_Surface?*?shiFang[4];
//定義一個記錄坐標的數組。
SDL_Rect?zuoBiao;
//定義一個指針數組,每一個指向一個方塊;
SDL_Surface?*?fangKuai;
//定義一個變量接收事件;
SDL_Event?e;
//定義一個bool變量,是其永遠假,為了使事件接收變成死循環;
bool?Quit?=?false;
//定義一個隨機數,用來決定下一個出什么;
int?suiJiShu;
//用來讓方塊下落;
int?k?=?1;
//用來確定是否此層該消;
int?floor?=?0;
//用來記錄消層時的起始層;
int?firstFloor?=?0;
//定義一個變量,用來記錄所需消掉的層數;
int?floors?=?0;
//定義4個變量,用來記錄原來的位置;
int?x1x2x3x4;
//定義四個變量,用于四個方塊的逐漸下落;
int?y1?=?0y2?=?0y3?=?0y4?=?0;
//定義一個變量用于判斷四個方塊中靠邊的那個;
int?temp1?=?0;
//定義一個整型二維數組,用于記錄它們的在前一次刷新時它們下一個數的情況,以便用于方塊下落時和左右移時的邊界判斷;
int?panDuan[4][3]?=?{
?????????????????{000}
?????????????????{000}
?{000}
?{000}
????????????????????};???????????????????
//定義一個臨時變量用于選擇動作;
int?temp;
//定義一個二維數組,用于邊界檢測;
int?check[5][13];
//定義一個int型接收邊界判斷的值;
int?check1;
//定義一個13*24的二維數組,來操作游戲區;每一個數對應一個坐標;
int?youXiQu[26][13]?=?{
???????????????????{0000000000000}
???????????????????{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{0000000000000}
???{1111111111111}
???{1111111111111}
??????????????????};
/*
**?功能:根據數組中的數字顯示圖片;
**?參數:無;
**?返回值:無;
*/
void?showPictures()
{
????//此句是核心,用于顯示圖片;
for(int?i?=?0?;i?24;i++)
{
for(int?j?=?0;j?13;j++)
{
if(youXiQu[i][j]?==?1)
{
//坐標與數組關系:x?=?140+20*j;y=i*20;
//T方塊軸的位置;
fangKuai?=?SDL_LoadBMP(“fangKuai.bmp“);
fangKuai?=?SDL_DisplayFormat(fangKuai);
zuoBiao.x?=?140?+?20*j;
zuoBiao.y?=?i?*?20;
SDL_BlitSurface(fangKuaiNULLscreen&zuoBiao);
//向屏幕發送完后將內存釋放;
????????????SDL_FreeSurface(fangKuai);
}
}
}
SDL_Flip(screen);
SDL_Delay(100);
}
/*
**?功能:判斷游戲結束;
**?參數:無;
**?返回值:無;
*/
void?gameOv()
{
????for(int?m?=?0;m?1;m++)
{
for(int?k?=?0;k?13;k++)
{
????if(youXiQu[m][k]?==?1)
{
????//T方塊軸的位置;
fangKuai?=?SDL_LoadBMP(“gameOver.bmp“);
fangKuai?=?SDL_DisplayFormat(fangKuai);
zuoBiao.x?=?80;
zuoBiao.y?=?23;
SDL_BlitSurface(fa
- 上一篇:詳細vc++寫的俄羅斯方塊
- 下一篇:C++多態性實驗報告
評論
共有 條評論