1. 冰球大作戰編程貓如和製作
1、打開編程貓軟體,我們首先需要創建一個英雄,在素材庫中找到一個英雄添加進來,然後給這個英雄添加另外的造型,我們進行操作的時候需要切換不同的造型,做成動畫的效果。
.png
2、然後設置按下開始鍵的時候顯示普通造型,按下q鍵的時候切換成攻擊的造型,注意這兩個造型要是同一個人物的。松開q就切換成普通的造型。
.png
3、設置按鍵awsd分別控制角色上下左右移動,需要使用的模塊如圖所示,注意這里需要設置禁止旋轉,如果不禁止旋轉,當人物向上移動時會轉換一個角度不適合我們的使用規則。
.png
.png
4、設置一個變數,將變數名稱定義為血量,這是游戲基本都會使用的一個產量,因為當變數值達到一定值之後游戲結束。我們可以給兩個角色都定義變數。
.png
5、設置血量的變化規則,當人物碰到對方的武器時血量降低,這里降低的值自己設定,然後重復執行,直到血量為0的時候結束程序。
.png
6、給我們另外一個英雄設置程序,要求血量為零時,逐漸消失,並且說一聲啊,然後停止程序運行。到此,我們這個小的戰斗英雄就完成了。
.png
以上介紹的內容就是關於編程貓做游戲的具體方法,不知道大家學會了沒有,如果你也遇到了這樣的問題的話可以按照小編的方法自己嘗試一下,希望可以幫助大家解決問題,謝謝!!!想要了解更多的軟體教程請關注Win10鏡像官網~~~
相關資源:編程貓訓練師V2.0.2免費安裝版-其它代碼類資源-CSDN文庫
文章知識點與官方知識檔案匹配
C技能樹首頁概覽
113618人正在系統學習中
打開CSDNAPP,看更多技術內容
編程貓創作工具:新版Kitten新體驗_ba_wang_mao的博客_編程貓k...
1、多屏幕放到了左上角,人直觀上先從左上角開始閱讀,把多屏幕放到左上角也是做一個總體的邏輯構成。這對變成作品的總體把握和構思更直觀。2、角色從下方移動到了舞台區的右側,形成了舞台-角色-腳本的布局。我覺得這樣的布局更適合...
繼續訪問
編程貓編程平台的使用介紹_ba_wang_mao的博客
編程貓是由深圳點貓科技有限公司自主研發的國內知名青少年編程教育平台,通過圖形化編程,可以創作出遊戲、軟體、動畫、故事等。編程貓編程平台的使用介紹_cnds123的專欄-CSDN博客
繼續訪問
編程貓介紹
編程貓-有趣的編程貓教育,學編程貓就像搭積木一樣簡單!專為零基礎學生打造,像玩游戲般學習,了解演算法,懂得創作,解決實際問題!
編程貓編程平台的使用介紹
編程貓(青少年編程教育平台)編程貓是由深圳點貓科技有限公司自主研發的國內知名青少年編程教育平台,通過圖形化編程,可以創作出遊戲、軟體、動畫、故事等。編程貓官網地址:https://pan..com/s/1pFB2oF7BQND5teu4Crw6ew
繼續訪問
干貨!自己的程序利用編程貓第三方登錄獲取用戶token
利用編程貓的第三方登錄獲取用戶信息,對接自己程序。
繼續訪問
【教程】如何將自己的編程貓作品在MAC或LINUX上製作成獨立應用程序
幫助編程貓用戶解決編程貓作品在MAC或LINUX上製作成獨立應用程序
繼續訪問
python語言入門編程貓-編程貓推出海龜編程器,打造Python教育產品矩陣
原標題:編程貓推出海龜編程器,打造Python教育產品矩陣芥末堆8月18日訊今日,編程貓推出Python教育產品矩陣,其中包括海龜編程器、游戲化教學產品「代碼競技場」、教材、師資培訓和未來教室等產品。海龜編輯器是基於Python語言,面向初高中學生,能夠實現積木編程和代碼編程轉化,以及編寫代碼語言。「代碼競技場」是採用游戲化教學的方式,用戶通過代碼編寫完成闖關任務。(「代碼競技場」游戲界面)...
繼續訪問
cocoscreator3d3.0《懶貓跑酷》實戰開發教程
分包載入發布時
繼續訪問
軟體工程作業二(貪心貓游戲C語言設計
第一步:創建角色首先,我們打開我們的編程軟體,可以tc20或者tc30等,我這里就用win-tc作為演示。我們新建一個文件,先將其保存,並命名為game.c然後然我們通過簡單的編程來顯示我們的主角,這里我們以一個笑臉字元來代表主角。#includemain(){printf("%c",2);getch();}大家看到,我們這里調用stdio.h,這個
繼續訪問
編程貓海龜編輯器附使用教程
Python是一門簡單易學且功能強大的編程語言,擁有高效的高級數據結構,能夠用簡單而又高效的方式進行面向對象編程,而小編此次帶來的是編程貓海龜編輯器2,這是由編程貓專為少兒所開發的一款Python編輯器,擴展功能非常強大,且支持硬體編程,可以一鍵安裝第三方庫,主要通過搭積木的方式讓孩子們來學習Python,可充分提高他們的學習興趣。在這里,學生們可以利用簡單的操作來創造故事、動畫、游戲、音樂和藝術,並通過圖形化編程,引導學生了解、掌握編程語言中的循環、判斷等多種基礎結構,另外,該軟體外觀設計不僅活潑可愛,而
繼續訪問
scratch(圖形化編程工具)做一個塔防游戲!軍事迷可以來體驗一下哦!
老規矩,先來分享一波我的永久會員,少兒編程案例源碼+競賽真題題庫為您打造全訪問的資料庫:我們先看一下開頭動效,這個也很值得學習哦!本次分享的案例稍微有點難,適合想進階的小夥伴們參考研究。接...
繼續訪問
熱門推薦微軟Win10自帶代碼編輯器《CodeWriter》使用方法、介紹和常見問題
今天剛剛安裝完win10發現,原來自帶一款代碼編輯器《CodeWriter》,使用了一下發現,這個軟體非常好用,界面簡潔,常用的功能基本都有,感覺再也不用第三方代碼編輯器了。一、CodeWriter介紹《CodeWriter》是一款免費的文本和代碼編輯器應用程序,具有主動語法高亮顯示,可以在編輯文檔時更新,並支持超過20種文件類型。選項卡式文檔界面允許在打開的文檔之
繼續訪問
02編程貓之小貓酷跑我設計
本篇文章主要體驗「事件」、「動作」、「外觀」指令組一些常見指令的作用。首先先看下「事件」、「動作」、「外觀」指令組都有哪些指令:「事件」指令組:當開始被點擊、當角色被點擊(選中角色時可用)、當在手機中向上滑動、當按下指定鍵、當滿足指定條件、停止指定腳本、停止運行整個游戲、重啟、當收到廣播、發送廣播、發送廣播並等待、當屏幕切換到[背景]、切換屏幕[背景]、切換到指定屏幕、設置屏幕切換特效為、當作為克隆體啟動時、克隆、刪除自己。「動作」指令組:移動、旋轉、圍繞指定對象旋轉、抖動、碰到邊緣就反彈..
繼續訪問
Python011:Python大作業之移動的小火車動畫(四)代碼實現
0.注意:該項目使用的庫和資源說明如下:pygame2.0.1(SDL2.0.14,Python3.6.6)另外還添加了一個字體如下圖:1.MyLuckyTrain.
繼續訪問
編程貓怎麼做3d游戲
2. 求各種C語言編程小游戲,越多越好,多了會有加分
C語言數字記憶小游戲,望採納
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<time.h>
#defineTURE1
#defineFALSE0
voidmain()
{
charanother_name='Y';
charanother_game='Y';
intcorrect='TRUE';
intcounter=0;
intsequence_length=0;
inti=0;
longintseed=0;
intnumber=0;
longintnow=0;
longtime_taken=0;
intclock_per_sec;
printf(" ---------------------------------記憶小游戲-------------------------------------------- ");
printf("請牢記屏幕上出現的沒一個數字,並在規定時間內輸入您記下的數字。 ");
printf("回車開始游戲。 ");
scanf("%c",&another_game);
do
{
correct='TRUE';
counter=0;
sequence_length=2;
time_taken=clock();
while(correct)
{
sequence_length+=(counter++%3==0);
seed=time(NULL);
now=clock();
srand((int)seed);
for(i=0;i<=sequence_length;i++)
printf("%d",rand()%10);
for(;clock()-now<clock_per_sec;);
printf(" ");
for(i=0;i<=sequence_length;i++)
printf("");
if(counter==1)
printf(" 輸入您記住的數字,以空格隔開。 ");
else
printf(" ");
srand((int)seed);
for(i=0;i<=sequence_length;i++)
{
scanf("%d",&number);
if(number!=rand()%10)
{
correct=FALSE;
break;
}
}
printf("%s ",correct?"正確!":"錯誤!");
}
time_taken=(clock()-time_taken)/clock_per_sec;
printf(" 您的成績是:%d",--counter*100/time_taken);
fflush(stdin);
printf(" 是否繼續游戲?(Y/N)? ");
scanf("%c",&another_game);
}
while(another_game=='y'||another_game=='Y');
}
3. C語言編程:剪刀石頭布的小游戲
#include <iostream>
using namespace std;
#include <ctime>
#include <cstdlib>
int cchuquan()
{
int t;
srand(time(0)); //seed
t = rand() % 3+ 1; // random number 1-3
if(t==1)
{
cout<<"電腦出的為剪刀!"<<endl;
}
else if(t==2)
{
cout<<"電腦出的為石頭!"<<endl;
}
else
{
cout<<"電腦出的為布!"<<endl;
}
return t;
}
int iswin(int n,int m)
{
if(n==m)
{
return 0;
}
else if(n==1&&m==2)
{
return -1;
}
else if(n==1&&m==3)
{
return 1;
}
else if(n==2&&m==1)
{
return 1;
}
else if(n==2&&m==3)
{
return -1;
}
else if(n==3&&m==1)
{
return -1;
}
else
{
return 1;
}
}
int main()
{
const int jian=1;
const int shitou=2;
const int bu=3;
cout<<"請輸入你要選擇的局數(必須為奇數且大於1):";
int n;
cin>>n;
int win=0,shu=0;
for(int i=0;i<n;++i)
{
cout<<"請出拳: 1:為剪刀;2:為石頭;3:為布"<<endl;
int flag;
cin>>flag;
if(flag==1)
{
cout<<"你出的為剪刀!"<<endl;
}
else if(flag==2)
{
cout<<"你出的為石頭!"<<endl;
}
else
{
cout<<"你出的為布!"<<endl;
}
int cf=cchuquan();
if(iswin(flag,cf)==1)
{
++win;
}
else if(iswin(flag,cf)==-1)
{
++shu;
}
}
if(win-shu>0)
{
cout<<"恭喜你獲勝!"<<endl;
}
else
{
cout<<"非常遺憾!你失敗了!"<<endl;
}
return 0;
}
c++寫的 呵呵 你可以參考
4. 僅用c語言能編出哪些小游戲
可以編寫狼追兔子游戲,擲骰子游戲,24點游戲,井字棋游戲,農夫過河游戲,掃雷小游戲,人機猜數游戲,三色球游戲, 推箱子游戲,坦克大戰游戲,貪吃蛇游戲等。
5. 在編程scratch上,兒童能編什麼有趣的游戲
大概從兩個方面考慮:
1.有一定的趣味性,對於兒童來說,喜歡是做事的源動力。
2.游戲規則相對比較簡單一些,這也決定了腳本的邏輯結構簡單一些,適合兒童這樣的低年齡段。
有趣的小游戲如:打地鼠、歡樂水族箱、龜兔賽跑之類的。
6. 有沒有適合學編程人玩的游戲
你好,有一款《通天塔之最強大腦》的游戲,是針對小孩子學編程入門而開發的,你可以在網路搜索這個游戲或者在支付寶上搜索通天塔,都可以玩這個游戲,希望這個答案可以幫到你。
7. 能不能介紹點C語言編程的小游戲,例如貪吃蛇,。。好玩點的。要有代碼,謝謝了
可以學寫「俄羅斯方塊」代碼:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <windows.h>
#define ZL 4 //坐標增量, 不使游戲窗口靠邊
#define W 36 //游戲窗口的寬度
#define H 20 //游戲窗口的高度
int i,j,Ta,Tb,Tc; // Ta,Tb,Tc用於記住和轉換方塊變數的值
int a[60][60]={0}; //標記游戲屏幕各坐標點:0,1,2分別為空、方塊、邊框
int b[4]; //標記4個"口"方塊:1有,0無,類似開關
int x,y, level,score,speed; //方塊中心位置的x,y坐標,游戲等級、得分和游戲速度
int flag,next; //當前要操作的方塊類型序號,下一個方塊類型序號
void gtxy(int m, int n); //以下聲明要用到的自編函數
void setColor(unsigned short p, unsigned short q); //設定顯示顏色
void gflag( ); //獲得下一方塊類型的序號
void csh( ); //初始化界面
void start( ); //開始部分
void prfk ( ); //列印方塊
void clfk( ); //清除方塊
void mkfk( ); //製作方塊
void keyD( ); //按鍵操作
int ifmov( ); //判斷能否移動
void clHA( ); //清除滿行的方塊
void clNEXT( ); //清除邊框外的NEXT方塊
int main( )
{ csh( );
while(1)
{ start( );
while(1)
{ setColor(5, 0);
prfk( ); Sleep(speed); clfk( );
Tb=x;Tc=flag; //臨存當前x坐標和序號,以備撤銷操作
keyD( );
y++; //方塊向下移動
if (ifmov( )==0) { y--; setColor(2, 0);prfk( ); clHA( ); break;} //不可動時的操作
}
for(i=y-2;i<y+2;i++){ if (i==ZL) { j=0; } } //方塊觸到框頂
if (j==0) { system("cls");gtxy(10,10); setColor(6, 0);
printf("游戲結束!"); getch(); break; }
clNEXT( );
}
return 0;
}
void gtxy(int m, int n) //控制游標移動
{COORD pos; //定義變數
pos.X = m; //橫坐標
pos.Y = n; //縱坐標
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); //獲得顯示器句柄
}
void setColor(unsigned short ForeColor = 7, unsigned short BackGroundColor = 0)
{ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle, ForeColor + BackGroundColor * 0x10);
}
void csh( ) //初始化界面
{gtxy(ZL+W/2-5,ZL-2); setColor(10, 0); printf("俄羅斯方塊"); //列印游戲名稱
gtxy(ZL+W+3,ZL+7); setColor(5, 0);printf("******* NEXT:"); //列印菜單信息
gtxy(ZL+W+3,ZL+13); setColor(5, 0);printf("************");
gtxy(ZL+W+3,ZL+15); setColor(9, 0);printf("Esc :退出遊戲");
gtxy(ZL+W+3,ZL+17); setColor(9, 0);printf("↑鍵:變體");
gtxy(ZL+W+3,ZL+19); setColor(9, 0);printf("空格:暫停游戲");
gtxy(ZL,ZL); setColor(2, 0); printf("╔"); gtxy(ZL+W-2,ZL); printf("╗"); //列印框角
gtxy(ZL,ZL+H); printf("╚"); gtxy(ZL+W-2,ZL+H); printf("╝");
a[ZL][ZL+H]=2; a[ZL+W-2][ZL+H]=2; //記住有圖案
for(i=2;i<W-2;i+=2) {gtxy(ZL+i,ZL); printf("═"); } //列印上橫框
for(i=2;i<W-2;i+=2) {gtxy(ZL+i,ZL+H); printf("═"); a[ZL+i][ZL+H]=2; } //列印下橫框有圖案
for(i=1;i<H;i++) { gtxy(ZL,ZL+i); printf("║"); a[ZL][ZL+i]=2; } //列印左豎框記住有圖案
for(i=1;i<H;i++) {gtxy(ZL+W-2,ZL+i); printf("║"); a[ZL+W-2][ZL+i]=2; } //列印右豎框有圖案
CONSOLE_CURSOR_INFO cursor_info={1,0}; //以下是隱藏游標的設置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
level=1; score=0; speed=400;
gflag( ); flag=next; //獲得一個當前方塊序號
}
void gflag( ) //獲得下一個方塊類型的序號
{ srand((unsigned)time(NULL)); next = rand()%19+1; }
void start( ) //開始部分
{ gflag( ); Ta=flag; flag=next; //保存當前方塊序號,將下一方塊序號臨時操作
x=ZL+W+6; y=ZL+10; setColor(5, 0); prfk( ); //給x,y賦值,在框外列印出下一方塊
flag=Ta; x=ZL+W/2; y=ZL-1; //取回當前方塊序號,並給x,y賦值
}
void prfk ( ) //列印俄羅斯方塊
{ for(i=0;i<4;i++) {b[i]=1; } //數組b[4]每個元素的值都為1
mkfk ( ); //製作俄羅斯方塊
for( i= x-2; i<=x+4; i+=2 ) //列印方塊
{ for(j=y-2;j<= y+1;j++) { if( a[i][j]==1 && j>ZL ){ gtxy(i,j); printf("□"); } } }
gtxy(ZL+W+3,ZL+1); setColor(9, 0); printf("level : %d",level); //以下列印菜單信息
gtxy(ZL+W+3,ZL+3); setColor(9, 0); printf("score : %d",score);
gtxy(ZL+W+3,ZL+5); setColor(9, 0); printf("speed : %d",speed);
}
void clfk( ) //清除俄羅斯方塊
{ for(i=0;i<4;i++) { b[i]=0; } //數組b[4]每個元素的值都為0
mkfk ( ); //製作俄羅斯方塊
for( i=x-2; i<=x+4; i+=2 ) //清除方塊
{ for(j=y-2;j<=y+1;j++){ if( a[i][j]==0 && j>ZL ){ gtxy(i,j); printf(" "); } } }
}
void mkfk( ) //製作俄羅斯方塊
{ a[x][ y]=b[0]; //方塊中心位置狀態: 1-有,0-無
switch(flag) //共6大類,19種小類型
{ case 1: { a[x][y-1]=b[1]; a[x+2][y-1]=b[2]; a[x+2][y]=b[3]; break; } //田字方塊
case 2: { a[x-2][y]=b[1]; a[x+2][y]=b[2]; a[x+4][y]=b[3]; break; } //直線方塊:----
case 3: { a[x][y-1]=b[1]; a[x][y-2]=b[2]; a[x][y+1]=b[3]; break; } //直線方塊: |
case 4: { a[x-2][y]=b[1]; a[x+2][y]=b[2]; a[x][y+1]=b[3]; break; } //T字方塊
case 5: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y]=b[3]; break; } //T字順時針轉90度
case 6: { a[x][y-1]=b[1]; a[x-2][y]=b[2]; a[x+2][y]=b[3]; break; } //T字順轉180度
case 7: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x+2][y]=b[3]; break; } //T字順轉270度
case 8: { a[x][y+1]=b[1]; a[x-2][y]=b[2]; a[x+2][y+1]=b[3]; break; } //Z字方塊
case 9: { a[x][y-1]=b[1]; a[x-2][y]=b[2]; a[x-2][y+1]=b[3]; break; } //Z字順轉90度
case 10: { a[x][y-1]=b[1]; a[x-2][y-1]=b[2]; a[x+2][y]=b[3]; break; } //Z字順轉180度
case 11: { a[x][y+1]=b[1]; a[x+2][y-1]=b[2]; a[x+2][ y]=b[3]; break; } //Z字順轉270度
case 12: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y-1]=b[3]; break; } //7字方塊
case 13: {a[x-2][y]=b[1]; a[x+2][y-1]=b[2]; a[x+2][y]=b[3]; break; } //7字順轉90度
case 14: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x+2][y+1]=b[3]; break; } //7字順轉180度
case 15: { a[x-2][y]=b[1]; a[x-2][y+1]=b[2]; a[x+2][y]=b[3]; break; } //7字順轉270度
case 16: { a[x][y+1]=b[1]; a[x][y-1]=b[2]; a[x+2][y-1]=b[3]; break; } //倒7字方塊
case 17: { a[x-2][y]=b[1]; a[x+2][y+1]=b[2]; a[x+2][y]=b[3]; break; } //倒7字順轉90度
case 18: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y+1]=b[3]; break; } //倒7字順轉180度
case 19: { a[x-2][y]=b[1]; a[x-2][y-1]=b[2]; a[x+2][y]=b[3]; break; } //倒7字順轉270度
}
}
void keyD( ) //按鍵操作
{ if (kbhit( ))
{ int key;
key=getch();
if (key==224)
{ key=getch();
if (key==75) { x-=2; } //按下左方向鍵,中心橫坐標減2
if (key==77) { x+=2; } //按下右方向鍵,中心橫坐標加2
if (key==72) //按下向上方向鍵,方塊變體
{ if (flag>=2 && flag<=3 ) { flag++; flag%=2; flag+=2; }
if ( flag>=4 && flag<=7 ) { flag++; flag%=4; flag+=4; }
if (flag>=8 && flag<=11 ) { flag++; flag%=4; flag+=8; }
if (flag>=12 && flag<=15 ) { flag++; flag%=4; flag+=12; }
if ( flag>=16 && flag<=19 ) { flag++; flag%=4; flag+=16; } }
}
if (key==32) //按空格鍵,暫停
{ setColor(5, 0);prfk( ); while(1) { if (getch( )==32) { clfk( );break;} } } //再按空格鍵,繼續游戲
if (ifmov( )==0) { x=Tb; flag=Tc; } //如果不可動,撤銷上面操作
else { setColor(5, 0); prfk( ); Sleep(speed); clfk( ); Tb=x;Tc=flag;} //如果可動,執行操作
}
}
int ifmov( ) //判斷能否移動
{ if (a[x][y]!=0) { return 0; } //方塊中心處有圖案返回0,不可移動
else{ if ( (flag==1 && ( a[x][ y-1]==0 && a[x+2][y-1]==0 && a[x+2][y]==0 ) ) || //田字方塊
(flag==2 && ( a[x-2][y]==0 && a[x+2][y]==0 && a[x+4][y]==0 ) ) || //以下為其它方塊
(flag==3 && ( a[x][y-1]==0 && a[x][y-2]==0 && a[x][y+1]==0 ) ) ||
(flag==4 && ( a[x-2][y]==0 && a[x+2][y]==0 && a[x][y+1]==0 ) ) ||
(flag==5 && ( a[x][y-1]==0 && a[x][y+1]==0 && a[x-2][y]==0 ) ) ||
(flag==6 && ( a[x][ y-1]==0 && a[x-2][y]==0 && a[x+2][y]==0 ) ) ||
(flag==7 && ( a[x][y-1]==0 && a[x][y+1]==0 && a[x+2][y]==0 ) ) ||
(flag==8 && ( a[x][y+1]==0 && a[x-2][y]==0 && a[x+2][y+1]==0 ) ) ||
(flag==9 && ( a[x][y-1]==0 && a[x-2][y]==0 && a[x-2][y+1]==0 ) ) ||
(flag==10 && ( a[x][y-1]==0 && a[x-2][y-1]==0 && a[x+2][y]==0 ) ) ||
(flag==11 && ( a[x][y+1]==0 && a[x+2][y-1]==0 && a[x+2][y]==0 ) ) ||
(flag==12 && ( a[x][y-1]==0 && a[x][y+1]==0 && a[x-2][y-1]==0 ) ) ||
( flag==13 && ( a[x-2][y]==0 && a[x+2][y-1]==0 && a[x+2][y]==0 ) ) ||
( flag==14 && ( a[x][y-1]==0 && a[x][y+1]==0 && a[x+2][y+1]==0 ) ) ||
(flag==15 && ( a[x-2][y]==0 && a[x-2][y+1]==0 && a[x+2][y]==0 ) ) ||
(flag==16 && ( a[x][y+1]==0 && a[x][y-1]==0 && a[x+2][y-1]==0 ) ) ||
( flag==17 && ( a[x-2][y]==0 && a[x+2][y+1]==0 && a[x+2][y]==0 ) ) ||
(flag==18 && ( a[x][y-1]==0 &&a[x][y+1]==0 && a[x-2][y+1]==0 ) ) ||
(flag==19 && ( a[x-2][y]==0 && a[x-2][y-1]==0 && a[x+2][y]==0 ) ) ) { return 1; }
}
return 0; //其它情況返回0
}
void clNEXT( ) //清除邊框外的NEXT方塊
{ flag = next; x=ZL+W+6; y=ZL+10; clfk( ); }
void clHA( ) //清除滿行的方塊
{ int k, Hang=0; //k是某行方塊個數, Hang是刪除的方塊行數
for(j=ZL+H-1;j>=ZL+1;j--) //當某行有W/2-2個方塊時,則為滿行
{ k=0; for(i=ZL+2;i<ZL+W-2;i+=2)
{ if (a[i][j]==1) //豎坐標從下往上,橫坐標由左至右依次判斷是否滿行
{ k++; //下面將操作刪除行
if (k==W/2-2) { for(k=ZL+2;k<ZL+W-2;k+=2) { a[k][j]=0; gtxy(k,j); printf(" "); Sleep(1); }
for(k=j-1;k>ZL;k--)
{ for(i=ZL+2;i<ZL+W-2;i+=2) //已刪行數的上面有方塊,先清除再全部下移一行
{ if(a[i][k]==1) { a[i][k]=0; gtxy(i,k); printf(" ");a[i][k+1]=1; gtxy(i,k+1);
setColor(2, 0); printf("□"); } }
}
j++; //方塊下移後,重新判斷刪除行是否滿行
Hang++; //記錄刪除方塊的行數
}
}
}
}
score+=100*Hang; //每刪除一行,得100分
if ( Hang>0 && (score%500==0 || score/500> level-1 ) ) //滿500分速度加快,升一級
{ speed-=20; level++; if(speed<200)speed+=20;}
}