日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言程序设计俄罗斯方块PPT,俄罗斯方块游戏:C语言程序设计初步感受

發布時間:2023/12/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言程序设计俄罗斯方块PPT,俄罗斯方块游戏:C语言程序设计初步感受 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言課程設以一節課,老師提供了一個C語言的俄羅斯方塊游戲讓我們感受,本學期C語言課程,主要是各種語句的練習,這次是用以前的知識來感受一個實際的系統。

首先安裝c-free,然后打開老師所發給我們的小程序。

界面很簡單,沒想到C語言還能做這么有意思的東西,真是沒有想到。

分析一下程序,感覺比較太復雜的,但就是本學期學習的簡單語句的組合,運用起來如此神奇。

1、首先是在屏幕上顯示的語句printf

2、運用for語句建立窗口

for(i=2;i<2*Frame_width-2;i+=2)

{

gotoxy(hOut,FrameX+i,FrameY);

printf("═"); ? ? ? ? //打印上橫框

}

for(i=2;i<2*Frame_width-2;i+=2)

{

gotoxy(hOut,FrameX+i,FrameY+Frame_height);

printf("═"); ? ? ? ? //打印下橫框

a[FrameX+i][FrameY+Frame_height]=2; ? ?//記住下橫框有圖案

}

for(i=1;i

{

gotoxy(hOut,FrameX,FrameY+i);

printf("║"); ? ? ? ? //打印左豎框

a[FrameX][FrameY+i]=2; ? ? ? //記住左豎框有圖案

}

for(i=1;i

{

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY+i);

printf("║"); ? ? ? ? //打印右豎框

a[FrameX+2*Frame_width-2][FrameY+i]=2; ? //記住右豎框有圖案

}

3、制作俄羅斯方塊并將其進行旋轉

void make_tetris(struct Tetris *tetris)

{

a[tetris->x][tetris->y]=b[0]; ? ?//中心方塊位置的圖形狀態:1-有,0-無

switch(tetris->flag) ? ? ?//共6大類,19種類型

{

case 1: ? ? ? ? //田字方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x+2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 2: ? ? ? ? //直線方塊:----

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y]=b[2];

a[tetris->x+4][tetris->y]=b[3];

break;

}

case 3: ? ? ? ? //直線方塊: |

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y-2]=b[2];

a[tetris->x][tetris->y+1]=b[3];

break;

}

case 4: ? ? ? ? //T字方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y]=b[2];

a[tetris->x][tetris->y+1]=b[3];

break;

}

case 5: ? ? ? ? //T字順時針轉90度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x-2][tetris->y]=b[3];

break;

}

case 6: ? ? ? ? //T字順時針轉180度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x-2][tetris->y]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 7: ? ? ? ? //T字順時針轉270度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 8: ? ? ? ? //Z字方塊

{

a[tetris->x][tetris->y+1]=b[1];

a[tetris->x-2][tetris->y]=b[2];

a[tetris->x+2][tetris->y+1]=b[3];

break;

}

case 9: ? ? ? ? //Z字順時針轉90度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x-2][tetris->y]=b[2];

a[tetris->x-2][tetris->y+1]=b[3];

break;

}

case 10: ? ? ? ?//Z字順時針轉180度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x-2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 11: ? ? ? ?//Z字順時針轉270度方塊

{

a[tetris->x][tetris->y+1]=b[1];

a[tetris->x+2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 12: ? ? ? ?//7字方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x-2][tetris->y-1]=b[3];

break;

}

case 13: ? ? ? ?//7字順時針轉90度方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x-2][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 14: ? ? ? ?//7字順時針轉180度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y+1]=b[3];

break;

}

case 15: ? ? ? ?//7字順時針轉270度方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 16: ? ? ? ?//倒7字方塊

{

a[tetris->x][tetris->y+1]=b[1];

a[tetris->x][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y-1]=b[3];

break;

}

case 17: ? ? ? ?//倒7字順指針轉90度方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x-2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 18: ? ? ? ?//倒7字順時針轉180度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x-2][tetris->y+1]=b[3];

break;

}

case 19: ? ? ? ?//倒7字順時針轉270度方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

}

4、判斷是否滿行并刪除滿行的俄羅斯方塊

void del_full(HANDLE hOut,struct Tetris *tetris)

{ ? ? ? //當某行有Frame_width-2個方塊時,則滿行

int k,del_count=0; ?//分別用于記錄某行方塊的個數和刪除方塊的行數的變量

for(j=FrameY+Frame_height-1;j>=FrameY+1;j--)

{

k=0;

for(i=FrameX+2;i

{

if(a[i][j]==1) //豎坐標依次從下往上,橫坐標依次由左至右判斷是否滿行

{

k++; ?//記錄此行方塊的個數

if(k==Frame_width-2)

{

for(k=FrameX+2;k

{ ?//刪除滿行的方塊

a[k][j]=0;

gotoxy(hOut,k,j);

printf(" ?");

Sleep(1);

}

for(k=j-1;k>FrameY;k--)

{ ?//如果刪除行以上的位置有方塊,則先清除,再將方塊下移一個位置

for(i=FrameX+2;i

{

if(a[i][k]==1)

{

a[i][k]=0;

gotoxy(hOut,i,k);

printf(" ?");

a[i][k+1]=1;

gotoxy(hOut,i,k+1);

printf("□");

}

}

}

j++; ? //方塊下移后,重新判斷刪除行是否滿行

del_count++; //記錄刪除方塊的行數

}

}

}

}

tetris->score+=100*del_count; //每刪除一行,得100分

if( del_count>0 && ( tetris->score%1000==0 || tetris->score/1000>tetris->level-1 ) )

{ ? ? ? ?//如果得1000分即累計刪除10行,速度加快20ms并升一級

tetris->speed-=20;

tetris->level++;

}

}

5體會

1、C語言游戲程序可以看到,C語言是我們第一門編程語言,從對計算機沒有任何編程能力的菜鳥,到現在能讀懂C語言的程序,感覺自己在慢慢進步。

2、計算機應用系統,就是不斷接收用戶的輸入,然后根據相應的邏輯,顯示相應的內容的過程。

3、按照這個思路,我可以把程序修改成一個打飛機的游戲,控制飛機左右一定,就是我的飛機能不僅僅在下面跑,還可以到處跑,這個只要把我的飛機限制在21行的限制取消就可以了。

總結

以上是生活随笔為你收集整理的c语言程序设计俄罗斯方块PPT,俄罗斯方块游戏:C语言程序设计初步感受的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久国产免费看 | 国产无码久久精品 | 欧美日韩中文在线视频 | 国产精品成人一区二区 | 天天干网址 | xxxx日韩 | www天堂av| 国产精品欧美久久久久天天影视 | 老鸭窝视频在线观看 | 亚洲成人国产精品 | 肉色超薄丝袜脚交一区二区图片 | 可以免费看的av网站 | 国产奶水涨喷在线播放 | 神马午夜在线观看 | 日韩在线不卡av | 床戏高潮做进去大尺度视频 | 国产男男gay体育生白袜 | 97超碰人人在线 | 五月天激情视频在线观看 | 熟女俱乐部一区二区 | 亚洲av成人片色在线观看高潮 | 麻豆精品久久久久久久99蜜桃 | 女优色图 | 91理论片午午伦夜理片久久 | 国产成人三级在线观看视频 | 韩日一级片 | 成人免费视频国产在线观看 | av一区二区在线观看 | 欧美专区综合 | 国产成人啪精品午夜在线观看 | 国偷自产av一区二区三区麻豆 | www伊人网 | 夜夜天堂 | 亚洲精品影视 | 中文乱码人妻一区二区三区视频 | 1级黄色大片 | 18av视频 | 99re在线精品视频 | 五月天婷婷网站 | 麻豆影视在线免费观看 | 黑人一区二区三区四区五区 | 特级黄色一级片 | 探花国产精品一区二区 | 欧美激情精品久久久久 | 国产成人黄色av | 日韩欧美一区二区三区 | 欧美日韩精品网站 | 大尺度做爰床戏呻吟舒畅 | 鸥美一级片 | 91久色视频 | 国产21区| 日韩中文字幕在线看 | 超碰666 | 美女扒开腿让人桶爽 | 国产精品三级电影 | 日韩网| 2021国产在线视频 | 乌克兰av在线 | 女人囗交吞精囗述 | 精品人妻无码专区视频 | 亚洲精品国产成人 | 欧美亚洲日本国产 | 一区二区三区四区不卡 | 免费日韩 | 久久55| 一区二区三区精彩视频 | 少妇视频在线播放 | 狠狠久久久 | 日本特级黄色片 | 污网站在线免费看 | 天啪| 青青草视频网站 | www天天操 | 中国毛片在线观看 | 黄色av影院 | 成人久久久久久久 | 88国产精品视频一区二区三区 | 很黄的性视频 | 日韩一卡二卡 | 不卡av免费| 男人天堂avav | 欧美偷拍一区二区三区 | 美女洗澡无遮挡 | 中文字幕丰满人伦在线 | 毛片自拍 | 一边摸一边抽搐一进一出视频 | 黄色小说视频 | av电影一区二区三区 | 国产一级视频在线播放 | 污污视频免费看 | 91黄免费 | 国产喷水福利在线视频 | 日本人妻一区 | 国产精品视频久久久久 | 有码一区 | 黄色片网站在线 | wwwxx在线观看 | 中文字幕伦理 | 黄色天堂|