好玩的編程游戲
1. 簡單好玩的編程小游戲教程
貪吃蛇,坦克大戰,憤怒的小雞
2. 能不能介紹點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;}
}
3. 網易卡搭編程游戲,逃離伏拉夫,手機怎麼玩
需要自己有內測的資格才能玩。
新手闖關游戲的設計。游戲共分為 7 大關卡,在每一個關卡中,用戶需要根據提示,將正確的編程指令拖拽進右側的界面,七關後即可完成一款飛機游戲的完整創作。學習過程被最大程度得游戲化,完成闖關意味著你將擁有少兒編程入門知識,同時自身邏輯梳理與動手創造能力也將得到有效提升。
獨創的移動端作品試玩功能。網易卡搭編程在研究大量少兒編程作品的操作模式後,首創出了幾款通用型移動端操作界面,整體操作體驗絲毫不亞於電腦端,部分作品的體驗甚至優於滑鼠操作。新手用戶可以進入「情報」中心,親手感受這些優秀作品,領略到編程的獨特魅力。作品共覆蓋操作類、劇情類、休閑類等多個類型,款款不負期待。
4. 除了Codecombat 還有哪些編程游戲可以玩
比如:
1、人力資源機器(human resource machine)
《人力資源機器》這款游戲與大家以往所玩過的其他代碼游戲都有所不同,雖然在分類上他屬於一個益智策略類游戲,但是在玩法上他完全是以一個現實中真實存在的職業技能作為基礎而改編的。在游戲中玩家要作為一個公司的小職員,來完成上司交給你的一些任務,而完成任務的方法就是要編寫一個足以達成目標的程序,並且按照程序中的條件進行活動。本作所採用的編程方式其實是一種相當古老的方法,只是符合一般的計算機邏輯思維,想要用這款游戲來學習專業編程似乎沒什麼卵用,不過沒有編程基礎的人玩起來應該會感到不解和困惑,但是看自己所設定的程序可以按照預想的效果來完美運營的話,那股油然而生的成就感絕對會讓自己的心情HIGH到爆炸。
2、康丁游戲CodinGame
CodinGame是一個游戲平台,游戲每一個練習背後的邏輯,都與一個實際的游戲相連,讓你能夠獲得實時視覺反饋,你完成練習之後也能獲得實際的獎勵。
CoinGame支持23種不同的編程語言,其中的每一個游戲練習都可以選擇自己熟悉的語言。在CodinGame平台,每一個練習都是基於瀏覽器的,會提供一個網路集成開發環境,讓你不刷新網頁就可以實時編譯代碼,並實時看到游戲的變化。目前,CodinGame已經吸引到了23萬用戶注冊。
此前,公司已經從天使投資者募集了50萬美元的資金。它們的競爭對手中包括了同樣是創新型編程練習平台的CodeFights,以及類似Treehosue和Code School這類傳統的編程學習網站。
3、代碼戰 CodeFights
CodeFights是一家將練習編程的過程變為游戲過程的初創公司。目前,該公司已經完成240萬的種子資金,以發展實時社交遊戲——在游戲中,碼農們既可以選擇人機對戰模式,也可以選擇挑戰其它玩家。
CodeFights有JavaScript、Java、C++和Python編程挑戰游戲,用戶們需要完成找出Bug的挑戰任務,勝利者就可以獲得相應的徽章。
4、代碼打獵Code Hunt
代碼打獵(Code Hunt)是Microsoft旗下新出的一款教育游戲,對大家感興趣編碼編碼基於瀏覽器的游戲。它供任何對編程有興趣的人學習代碼。該游戲呈現的方式並不是選擇答案的學習題,而是提供了一個可編輯的類似編碼界面,並在右邊不斷跳出程序的運行結果,測試運行結果是否符合要求。
5. 有沒有適合學編程人玩的游戲
你好,有一款《通天塔之最強大腦》的游戲,是針對小孩子學編程入門而開發的,你可以在網路搜索這個游戲或者在支付寶上搜索通天塔,都可以玩這個游戲,希望這個答案可以幫到你。
6. 在scratch上,可以編程什麼有趣的游戲
憤怒的小鳥,學習其他的就很簡單,通過scratch,擁有創造思考的人,他可以將這個游戲做出來,然後和爸爸媽媽還有身邊的人來分享這個令人興奮的事情。而作為孩子身邊的人,也不斷被孩子的興奮所感染。一個孩子從小就在創意和分享的環境下成長,也將成長為一個快樂孩子想什麼可以通過scratch少兒編程表達出來,比如他腦中想著
7. ST360波波寶編程游戲好玩嗎
這款編程游戲非常好玩,孩子可喜歡了
8. roblox和我的世界那個更好玩
我的世界更好玩。
《我的世界》是由MojangStudios開發,在中國由網易代理的沙盒式建造游戲,游戲於2017年8月8日在中國大陸獨家運營。
游戲創始人為馬庫斯·佩爾松,也稱為notch,其靈感源於《無盡礦工》、《矮人要塞》和《地下城守護者》。玩家可以在游戲中的三維空間里創造和破壞各種各樣的方塊,甚至在多人伺服器與單人世界中體驗不同的游戲模式,在高度的自由中,玩家們也自己創作出了大大小小的玩法,打造精美的建築物,創造物和藝術品。且游戲平台已囊括了移動設備和游戲主機。
馬庫斯·阿列克謝·泊松(1979年6月1日出生 ),男,瑞典公民,住在埃斯賓,七歲時開始接觸計算機編程,他的父親當時已置購了一台Commodore 128家用電腦,並開始訂閱一本有type-in program的電腦雜志。
通過實踐這些程序代碼,阿列克謝八歲時製作出了他的第一個文字冒險游戲。在職業上,他曾參與製作過一些游戲,如《Wurm Online》,直到2009年。他也曾在King網站做過4年以上的游戲開發員。後來他擔任jAlbum的程序編輯員。他也是《Wurm Online》的創始人之一,雖然他已經不再編輯這個游戲了。
9. 在編程scratch上,兒童能編什麼有趣的游戲
大概從兩個方面考慮:
1.有一定的趣味性,對於兒童來說,喜歡是做事的源動力。
2.游戲規則相對比較簡單一些,這也決定了腳本的邏輯結構簡單一些,適合兒童這樣的低年齡段。
有趣的小游戲如:打地鼠、歡樂水族箱、龜兔賽跑之類的。
10. 編程游戲大全 適合孩子玩的編程類的游戲有哪些
點燈機器人啊,我的啟蒙游戲,哈哈。