導航:首頁 > 源碼編譯 > 拼圖小游戲源碼

拼圖小游戲源碼

發布時間:2023-02-24 05:08:57

⑴ 請問能給咱發一個用flash cs3或以上版本製作拼圖小游戲成品嗎希望有源代碼的,跪求啊!!

應該有吧 但是不是無--償的 哦

⑵ 誰有能在vc++6.0上運行的c語言小游戲代碼

最基礎的貪吃蛇的代碼

#include<stdio.h>
#include<windows.h>//基本型態定義。支援型態定義函數。使用者界面函數 圖形裝置界面函數。
#include<conio.h> //用戶通過按鍵盤產生的對應操作 (控制台)
#include<stdlib.h>
#include<time.h> //日期和時間頭文件
#define LEN 30
#define WID 25
int Snake[LEN][WID] = {0}; //數組的元素代表蛇的各個部位
char Sna_Hea_Dir = 'a';//記錄蛇頭的移動方向
int Sna_Hea_X, Sna_Hea_Y;//記錄蛇頭的位置
int Snake_Len = 3;//記錄蛇的長度
clock_t Now_Time;//記錄當前時間,以便自動移動
int Wait_Time ;//記錄自動移動的時間間隔
int Eat_Apple = 1;//吃到蘋果表示為1
int Level ;
int All_Score = -1;
int Apple_Num = -1;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //獲取標准輸出的句柄 <windows.h>
//句柄 :標志應用程序中的不同對象和同類對象中的不同的實例 方便操控,
void gotoxy(int x, int y)//設置游標位置
{
COORD pos = {x,y}; //定義一個字元在控制台屏幕上的坐標POS

SetConsoleCursorPosition(hConsole, pos); //定位游標位置的函數<windows.h>

}

void Hide_Cursor()//隱藏游標 固定函數
{
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(hConsole, &cursor_info);
}

void SetColor(int color)//設置顏色
{
SetConsoleTextAttribute(hConsole, color);
//是API設置字體顏色和背景色的函數 格式:SetConsoleTextAttribute(句柄,顏色);
}

void Print_Snake()//列印蛇頭和蛇的脖子和蛇尾
{
int iy, ix, color;
for(iy = 0; iy < WID; ++iy)
for(ix = 0; ix < LEN; ++ix)
{

if(Snake[ix][iy] == 1)//蛇頭
{
SetColor(0xf); //oxf代表分配的內存地址 setcolor:34行自定義設置顏色的函數
gotoxy(ix*2, iy);
printf("※");
}
if(Snake[ix][iy] == 2)//蛇的脖子
{
color = rand()%15 + 1; //rand()函數是產生隨機數的一個隨機函數。C語言里還有 srand()函數等。
//頭文件:stdlib.h
if(color == 14)
color -= rand() % 13 + 1; //變色
SetColor(color);
gotoxy(ix*2, iy);
printf("■");
}
if(Snake[ix][iy] == Snake_Len)
{
gotoxy(ix*2, iy);
SetColor(0xe);
printf("≈");
}
}
}

void Clear_Snake()//擦除貪吃蛇
{
int iy, ix;
for(iy = 0; iy < WID; ++iy)
for(ix = 0; ix < LEN; ++ix)
{
gotoxy(ix*2, iy);
if(Snake[ix][iy] == Snake_Len)
printf(" ");
}
}

void Rand_Apple()//隨機產生蘋果
{
int ix, iy;

do
{
ix = rand() % LEN;
iy = rand() % WID;
}while(Snake[ix][iy]);

Snake[ix][iy] = -1;
gotoxy(ix*2, iy);
printf("⊙");
Eat_Apple = 0;
}

void Game_Over()//蛇死掉了
{
gotoxy(30, 10);
printf("Game Over");
Sleep(3000);
system("pause > nul");
exit(0);
}

void Move_Snake()//讓蛇動起來
{
int ix, iy;

for(ix = 0; ix < LEN; ++ix)//先標記蛇頭
for(iy = 0; iy < WID; ++iy)
if(Snake[ix][iy] == 1)
{
switch(Sna_Hea_Dir)//根據新的蛇頭方向標志蛇頭
{
case 'w':
if(iy == 0)
Game_Over();
else
Sna_Hea_Y = iy - 1;
Sna_Hea_X = ix;

break;
case 's':
if(iy == (WID -1))
Game_Over();
else
Sna_Hea_Y = iy + 1;
Sna_Hea_X = ix;

break;
case 'a':
if(ix == 0)
Game_Over();
else
Sna_Hea_X = ix - 1;
Sna_Hea_Y = iy;

break;
case 'd':
if(ix == (LEN - 1))
Game_Over();
else
Sna_Hea_X = ix + 1;
Sna_Hea_Y = iy;

break;
default:
break;
}
}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1&&Snake[Sna_Hea_X][Sna_Hea_Y]!=0&&Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)
Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y] < 0)//吃到蘋果
{
++Snake_Len;
Eat_Apple = 1;
}
for(ix = 0; ix < LEN; ++ix)//處理蛇尾
for(iy = 0; iy < WID; ++iy)
{
if(Snake[ix][iy] > 0)
{
if(Snake[ix][iy] != Snake_Len)
Snake[ix][iy] += 1;
else
Snake[ix][iy] = 0;
}
}

Snake[Sna_Hea_X][Sna_Hea_Y] = 1;//處理蛇頭
}

void Get_Input()//控制蛇的移動方向
{
if(kbhit())
{
switch(getch())
{
case 87:

Sna_Hea_Dir = 'w';
break;
case 83:

Sna_Hea_Dir = 's';
break;
case 65:

Sna_Hea_Dir = 'a';
break;
case 68:

Sna_Hea_Dir = 'd';
break;
default:
break;
}
}

if(clock() - Now_Time >= Wait_Time)//蛇到時間自動行走
{
Clear_Snake();
Move_Snake();
Print_Snake();
Now_Time = clock();
}
}

void Init()//初始化
{
system("title 貪吃毛毛蛇");
system("mode con: cols=80 lines=25");
Hide_Cursor();

gotoxy(61, 4);
printf("You Score:");
gotoxy(61, 6);
printf("You Level:");
gotoxy(61, 8);
printf("The Lenght:");
gotoxy(61, 10);
printf("The Speed:");
gotoxy(61, 12);
printf("Apple Num:");

int i;
for(i = 0; i < Snake_Len; ++i)//生成蛇
Snake[10+i][15] = i+1;

int iy, ix;//列印蛇
for(iy = 0; iy < WID; ++iy)
for(ix = 0; ix < LEN; ++ix)
{
if(Snake[ix][iy])
{
SetColor(Snake[ix][iy]);
gotoxy(ix*2, iy);
printf("■");
}
}
}

void Pri_News()//列印信息
{
SetColor(0xe);
gotoxy(73,4);
All_Score += Level;
printf("%3d", All_Score);
gotoxy(73, 6);
printf("%3d", Level);
gotoxy(73, 8);
printf("%3d",Snake_Len);
gotoxy(73, 10);
printf("0.%3ds", Wait_Time/10);
gotoxy(73, 12);
printf("%d", Apple_Num);
}

void Lev_Sys()//等級系統
{
if(((Apple_Num-1) / 10) == Level)
{
++Level;
if(Wait_Time > 50)
Wait_Time -= 50;
else
if(Wait_Time > 10)
Wait_Time -= 10;
else
Wait_Time -= 1;
}
}

int main(void)
{
Init();
srand((unsigned)time(NULL));//設置隨機數的種子
Now_Time = clock();
int speed1=1000,speed2,a;
printf("\n");
printf("請輸入你想要的速度\n");
scanf("%d",&speed2);
Level=1;
Wait_Time=speed1-speed2;
printf("請輸入你想要的蘋果數\n");
scanf("%d",&a);

while(a--)
Rand_Apple();
while(1)
{
if(Eat_Apple)
{
++Apple_Num;
Rand_Apple();
Lev_Sys();
Pri_News();
}
Get_Input();
Sleep(10);
}
return 0;
}

⑶ 用C++編寫的小游戲源代碼

五子棋的代碼:

#include<iostream>

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

usingnamespacestd;

constintN=15;//15*15的棋盤

constcharChessBoardflag='';//棋盤標志

constcharflag1='o';//玩家1或電腦的棋子標志

constcharflag2='X';//玩家2的棋子標志

typedefstructCoordinate//坐標類

{

intx;//代錶行

inty;//代表列

}Coordinate;

classGoBang//五子棋類

{

public:

GoBang()//初始化

{

InitChessBoard();

}

voidPlay()//下棋

{

CoordinatePos1;//玩家1或電腦

CoordinatePos2;//玩家2

intn=0;

while(1)

{

intmode=ChoiceMode();

while(1)

{

if(mode==1)//電腦vs玩家

{

ComputerChess(Pos1,flag1);//電腦下棋

if(GetVictory(Pos1,0,flag1)==1)//0表示電腦,真表示獲勝

break;

PlayChess(Pos2,2,flag2);//玩家2下棋

if(GetVictory(Pos2,2,flag2))//2表示玩家2

break;

}

else//玩家1vs玩家2

{

PlayChess(Pos1,1,flag1);//玩家1下棋

if(GetVictory(Pos1,1,flag1))//1表示玩家1

break;

PlayChess(Pos2,2,flag2);//玩家2下棋

if(GetVictory(Pos2,2,flag2))//2表示玩家2

break;

}

}

cout<<"***再來一局***"<<endl;

cout<<"yorn:";

charc='y';

cin>>c;

if(c=='n')

break;

}

}

protected:

intChoiceMode()//選擇模式

{

inti=0;

system("cls");//系統調用,清屏

InitChessBoard();//重新初始化棋盤

cout<<"***0、退出1、電腦vs玩家2、玩家vs玩家***"<<endl;

while(1)

{

cout<<"請選擇:";

cin>>i;

if(i==0)//選擇0退出

exit(1);

if(i==1||i==2)

returni;

cout<<"輸入不合法"<<endl;

}

}

voidInitChessBoard()//初始化棋盤

{

for(inti=0;i<N+1;++i)

{

for(intj=0;j<N+1;++j)

{

_ChessBoard[i][j]=ChessBoardflag;

}

}

}

voidPrintChessBoard()//列印棋盤,這個函數可以自己調整

{

system("cls");//系統調用,清空屏幕

for(inti=0;i<N+1;++i)

{

for(intj=0;j<N+1;++j)

{

if(i==0)//列印列數字

{

if(j!=0)

printf("%d",j);

else

printf("");

}

elseif(j==0)//列印行數字

printf("%2d",i);

else

{

if(i<N+1)

{

printf("%c|",_ChessBoard[i][j]);

}

}

}

cout<<endl;

cout<<"";

for(intm=0;m<N;m++)

{

printf("--|");

}

cout<<endl;

}

}

voidPlayChess(Coordinate&pos,intplayer,intflag)//玩家下棋

{

PrintChessBoard();//列印棋盤

while(1)

{

printf("玩家%d輸入坐標:",player);

cin>>pos.x>>pos.y;

if(JudgeValue(pos)==1)//坐標合法

break;

cout<<"坐標不合法,重新輸入"<<endl;

}

_ChessBoard[pos.x][pos.y]=flag;

}

voidComputerChess(Coordinate&pos,charflag)//電腦下棋

{

PrintChessBoard();//列印棋盤

intx=0;

inty=0;

while(1)

{

x=(rand()%N)+1;//產生1~N的隨機數

srand((unsignedint)time(NULL));

y=(rand()%N)+1;//產生1~N的隨機數

srand((unsignedint)time(NULL));

if(_ChessBoard[x][y]==ChessBoardflag)//如果這個位置是空的,也就是沒有棋子

break;

}

pos.x=x;

pos.y=y;

_ChessBoard[pos.x][pos.y]=flag;

}

intJudgeValue(constCoordinate&pos)//判斷輸入坐標是不是合法

{

if(pos.x>0&&pos.x<=N&&pos.y>0&&pos.y<=N)

{

if(_ChessBoard[pos.x][pos.y]==ChessBoardflag)

{

return1;//合法

}

}

return0;//非法

}

intJudgeVictory(Coordinatepos,charflag)//判斷有沒有人勝負(底層判斷)

{

intbegin=0;

intend=0;

intbegin1=0;

intend1=0;

//判斷行是否滿足條件

(pos.y-4)>0?begin=(pos.y-4):begin=1;

(pos.y+4)>N?end=N:end=(pos.y+4);

for(inti=pos.x,j=begin;j+4<=end;j++)

{

if(_ChessBoard[i][j]==flag&&_ChessBoard[i][j+1]==flag&&

_ChessBoard[i][j+2]==flag&&_ChessBoard[i][j+3]==flag&&

_ChessBoard[i][j+4]==flag)

return1;

}

//判斷列是否滿足條件

(pos.x-4)>0?begin=(pos.x-4):begin=1;

(pos.x+4)>N?end=N:end=(pos.x+4);

for(intj=pos.y,i=begin;i+4<=end;i++)

{

if(_ChessBoard[i][j]==flag&&_ChessBoard[i+1][j]==flag&&

_ChessBoard[i+2][j]==flag&&_ChessBoard[i+3][j]==flag&&

_ChessBoard[i+4][j]==flag)

return1;

}

intlen=0;

//判斷主對角線是否滿足條件

pos.x>pos.y?len=pos.y-1:len=pos.x-1;

if(len>4)

len=4;

begin=pos.x-len;//橫坐標的起始位置

begin1=pos.y-len;//縱坐標的起始位置

pos.x>pos.y?len=(N-pos.x):len=(N-pos.y);

if(len>4)

len=4;

end=pos.x+len;//橫坐標的結束位置

end1=pos.y+len;//縱坐標的結束位置

for(inti=begin,j=begin1;(i+4<=end)&&(j+4<=end1);++i,++j)

{

if(_ChessBoard[i][j]==flag&&_ChessBoard[i+1][j+1]==flag&&

_ChessBoard[i+2][j+2]==flag&&_ChessBoard[i+3][j+3]==flag&&

_ChessBoard[i+4][j+4]==flag)

return1;

}

//判斷副對角線是否滿足條件

(pos.x-1)>(N-pos.y)?len=(N-pos.y):len=pos.x-1;

if(len>4)

len=4;

begin=pos.x-len;//橫坐標的起始位置

begin1=pos.y+len;//縱坐標的起始位置

(N-pos.x)>(pos.y-1)?len=(pos.y-1):len=(N-pos.x);

if(len>4)

len=4;

end=pos.x+len;//橫坐標的結束位置

end1=pos.y-len;//縱坐標的結束位置

for(inti=begin,j=begin1;(i+4<=end)&&(j-4>=end1);++i,--j)

{

if(_ChessBoard[i][j]==flag&&_ChessBoard[i+1][j-1]==flag&&

_ChessBoard[i+2][j-2]==flag&&_ChessBoard[i+3][j-3]==flag&&

_ChessBoard[i+4][j-4]==flag)

return1;

}

for(inti=1;i<N+1;++i)//棋盤有沒有下滿

{

for(intj=1;j<N+1;++j)

{

if(_ChessBoard[i][j]==ChessBoardflag)

return0;//0表示棋盤沒滿

}

}

return-1;//和棋

}

boolGetVictory(Coordinate&pos,intplayer,intflag)//對JudgeVictory的一層封裝,得到具體那個玩家獲勝

{

intn=JudgeVictory(pos,flag);//判斷有沒有人獲勝

if(n!=0)//有人獲勝,0表示沒有人獲勝

{

PrintChessBoard();

if(n==1)//有玩家贏棋

{

if(player==0)//0表示電腦獲勝,1表示玩家1,2表示玩家2

printf("***電腦獲勝*** ");

else

printf("***恭喜玩家%d獲勝*** ",player);

}

else

printf("***雙方和棋*** ");

returntrue;//已經有人獲勝

}

returnfalse;//沒有人獲勝

}

private:

char_ChessBoard[N+1][N+1];

};

(3)拼圖小游戲源碼擴展閱讀:

設計思路

1、進行問題分析與設計,計劃實現的功能為,開局選擇人機或雙人對戰,確定之後比賽開始。

2、比賽結束後初始化棋盤,詢問是否繼續比賽或退出,後續可加入復盤、悔棋等功能。

3、整個過程中,涉及到了棋子和棋盤兩種對象,同時要加上人機對弈時的AI對象,即涉及到三個對象。

⑷ 用 ADOBE FLASH CS4 AS3編寫小游戲(拼圖、連連看、找茬等),會的朋友幫我做下,源代碼和FLASH文件

去天地會論壇找一下吧,應該會找到你想要的。

⑸ 誰能用vb.net做一個拼圖小游戲

去源碼網找個,我一般都去SIna上下個。

⑹ 求C語言小游戲源程序

新手要方便寫代碼,可以收藏下面幾個自編函數:

  1. gtxy (6, 3) //游標定位於窗口的第6列,第3行處(准備輸出,行與列都是從0算起)

  2. Color (4, 0) //設置為紅字配黑底 如 Color (10, 0)則是淡綠字配黑底

  3. yinc (1,0) //隱藏游標(第二個參數設為0就隱藏,沒有游標閃爍,yinc代表隱藏)

  4. kou(80,25) //設定窗口緩沖區大小為80列,25行

    下面幾個是庫函數,不需自己編寫,只要用#include包含就可以使用。

  5. SetConsoleTitle("俄羅斯方塊"); //設置窗口左上角標題欄處出現"俄羅斯方塊"5個字

  6. srand( (unsigned) time(NULL) ); //初始化隨機數發生器

  7. n= rand( ) % 20; //產生隨機數0-19中的一個. 如 rand( )%5 就產生0-4中的一個數

    SetConsoleTitle( )函數在<windows.h>里,srand( )函數與rand( )函數要配合用,

    就是同時要用,在<stdlib.h>里。如果 rand( )%10+1 就產生1-10之中的一個數。

  8. Sleep(300); //延時300毫秒(就是程序暫停300毫秒後繼續運行)

  9. system("cls"); //清屏(把窗口裡的內容全部清除,游標定於(0,0)位置處)

    這兩個函數都在<windows.h>里。開頭4個自編函數 編寫如下:

void gtxy (int x, int y) //控制游標位置的函數

{ COORD pos;

pos.X = x;

pos.Y = y;

SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );

}

void Color (short ForeColor= 7, short BackGroundColor= 0) //設定顏色的函數

{ HANDLE hl = GetStdHandle ( STD_OUTPUT_HANDLE );

SetConsoleTextAttribute ( hl, ForeColor + BackGroundColor * 0x10 );

}

聲明時原型可寫 void Color (short x, short y);

void yinc (int x,int y) //隱藏游標的函數

{ CONSOLE_CURSOR_INFO gb={ x , y }; //gb代表游標

SetConsoleCursorInfo ( GetStdHandle(STD_OUTPUT_HANDLE), &gb );

}

void kou(int w,int h) //設置窗口大小的函數

{HANDLE hl=GetStdHandle ( STD_OUTPUT_HANDLE ) ;

COORD size={ w , h };

SetConsoleScreenBufferSize( hl , size );

SMALL_RECT rc={ 0, 0, w, h };

SetConsoleWindowInfo( hl, 1, &rc );

}

最後這個函數,參數w是寬h是高。里邊5行中第一行定義了句柄型變數hl,並給它賦值。

第二行定義了坐標型結構體變數size,它的取值決定了緩沖區的大小。第三行就是使用

size的值設置好緩沖區大小。第四行定義了變數rc,它的值決定當前窗口顯示的位置與

大小(不得超過緩沖區的大小)。前兩個0,0是從緩沖區左上角0列0行位置處開始,後兩

個參數可以小於w和h.比如rc={0,0,w-10,h-5}; 最後一行使用rc的值設置好窗口,中間

那個參數要為" 1 "或寫「 true 」才有效。

⑺ 哪位大佬可以發一下flash做的拼圖小游戲源文件。。

大佬,給我也發一遍

⑻ 求用C++編寫一個小游戲程序代碼,如:俄羅斯方塊,掃雷,拼圖,貪吃蛇之類的……謝了……

我給你2個貪吃蛇c++代碼

(1):

#include <stdio.h>

#include <windows.h>

#include <time.h>

#include <conio.h>

#include <stdlib.h>

//方向鍵的ASCLL值:上72,左75,右77,下80

//背景顏色的代碼: 0=黑色 1藍色 2 綠色 3湖藍色 4紅色 5紫色 6黃色 7白色 8灰色 9淡藍色

//**改變當前游標方塊的背景顏色和字體顏色**//

void BackGround(unsigned int ForeColor = 7, unsigned int BackGroundColor = 0) {

HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //獲取控制台的句柄

SetConsoleTextAttribute(handle, ForeColor + BackGroundColor * 0x10);//改變當前游標的背景和字體顏色

}

//**改變游標的位置**//

void gotoxy(int x, int y) {8

HANDLE handle;

COORD coord; //獲取坐標軸結構體

coord.X = x;

coord.Y = y;

handle = GetStdHandle(STD_OUTPUT_HANDLE); //獲取控制台句柄,值為-11

SetConsoleCursorPosition(handle, coord); //移動游標到x,y處

}

//**初始化地圖數據**//

void restart(int bk[20][20], int look[4], int move[20][20]) {

//bk為總的地圖數據記錄整個地圖,為1時表示牆體,為2時表示果實,為3時表示蛇

//look記錄數據,為0時表示朝向,為1時表示長度,為3時表示勝負情況,為4表示分數

//move記錄蛇走過的路程,用來列印蛇時判斷用

int pp, qq; //用來記錄獲取的隨機坐標

//接下來要初始化整個地圖//

for(int i=0;i<=16;i++)

for (int j = 0; j <= 16; j++) {

if (i == 0 || i == 16 || j == 0 || j == 16) bk[i][j] = 1;//1表示牆體

else bk[i][j] = 0; //0表示什麼都沒有

move[i][j] = 0; //該數組用來記錄蛇移動的軌跡

}

//將蛇初始化在8,8坐標上

bk[8][8] = 3;

move[8][8] = 1;//則此時8,8,上的軌跡就應該記錄為1

move[0][0] = 1;//用此來記錄步數

pp = rand() % 15 + 1;//范圍是1-15

qq = rand() % 15 + 1;

bk[pp][qq] = 2;//表示這個位置有果實了

look[0] = 1;//表示朝向,向上

look[1] = 1;//表示長度

look[2] = 0;//當為1是表示失敗

look[3] = 0;//記錄得分

//接下來要繪制地圖//

for(int i=0;i<=16;i++)

for (int j = 0; j <= 16; j++) {

gotoxy(i * 2, j);//游標移動,每個游標都是矩形

switch (bk[i][j]) {

case 0:

BackGround(0, 0);

break;//如果沒有東西列印黑色

case 1:

BackGround(0, 1);

break;//牆列印藍色

case 2:

BackGround(0, 2);

break;//果實列印綠色

case 3:

BackGround(0, 3);

break;//蛇列印湖藍色

default:

break;

}

printf(" ");//地圖中直接就是塗空格符

}

//接下來要顯示積分//

gotoxy(35, 0);

BackGround(7, 0);//用白字黑底列印

printf("現在得分是:%d,請再接再厲!^_^", look[2]);

}

//**運動主體**//

void map(int bk[20][20], int look[4], int xy[2], int move[20][20]) {

//bk是地圖信息,look作數據記錄,xy記錄坐標,move記錄蛇的運動軌跡

int b[10], qq=0, pp=0;//b用來吸收輸入,qq和pp用來隨機初始化果實坐標

if (kbhit()) {//記錄按下的是哪個方向鍵

b[0] = getch();//用b來記錄

if (b[0] == 224) b[0] = getch();//如果為224表示為方向鍵,但是要再一次獲取才行

if (b[0] == 72 && look[0] != 2)

//如果輸入的為上並且朝向不為下

look[0] = 1;

if (b[0] == 80 && look[0] != 1)

look[0] = 2;

if (b[0] == 75 && look[0] != 4)

look[0] = 3;

if (b[0] == 77 && look[0] != 3)

look[0] = 4;

}

switch (look[0]) {

case 1:

//往上走

xy[1]--;

break;

case 2:

//往下走

xy[1]++;

break;

case 3:

//往左走

xy[0]--;

break;

case 4:

//往右走

xy[0]++;

break;

}

//接下來蛇就開始走動了//

move[0][0]++;//蛇的步數加一

move[xy[0]][xy[1]] = move[0][0];//記錄當前格子中蛇的軌跡

gotoxy(35, 2);

BackGround(7, 0);

printf("橫坐標:%d,縱坐標:%d", xy[0],xy[1]);

gotoxy(xy[0] * 2, xy[1]);//這里蛇頭就往前移動了

BackGround(0, 3);//與蛇體一個顏色

printf(" ");

//如果吃了果實//

if (bk[xy[0]][xy[1]] == 2) {

look[2]++;//分數加一

look[1]++;//長度加一

//更新分數

gotoxy(35, 0);

BackGround(7, 0);

printf("現在得分是:%d,請再接再厲!^_^", look[2]);

while (bk[pp][qq] != 0) {

pp = rand() % 15 + 1;

qq = rand() % 15 + 1;

}

bk[pp][qq] = 2;//將這個地方變為果實

gotoxy(pp * 2, qq);

BackGround(0, 2);

printf(" ");

}

//如果撞了牆或者自己//

if (bk[xy[0]][xy[1]] == 1 || bk[xy[0]][xy[1]] == 3) {

look[3] = 1;//表示已經輸了

gotoxy(6, 6);

BackGround(7, 0);

printf("你輸了,最後得分:%d", look[2]);

}

bk[xy[0]][xy[1]] = 3;//使這個位置變成蛇

//接下來要檢測蛇然後刷新蛇的位置//

for(int i=0;i<=16;i++)

for (int j = 0; j <= 16; j++) {

if (move[i][j] == move[xy[0]][xy[1]] - look[1]){

//如果符合這個條件,則表示蛇已經移動出這個位置了

//要刪除這個位置的蛇尾巴

//一次只有一個方塊會符合要求吧?

bk[i][j] = 0;

gotoxy(i * 2, j);

BackGround(0, 0);

printf(" ");

break;//一次只找一個

}

}

end:;

}

int main() {

int bk[20][20], xy[2], move[20][20], look[4];

xy[1] = xy[0] = 8;

srand((unsigned) time(NULL));//初始化隨機種子

system("pause");

restart(bk, look, move);

while (look[3] == 0) {

Sleep(200);//休眠400ms一次

map(bk, look, xy, move);

}

system("pause");

printf("游戲結束,謝謝遊玩!^_^");

return 0;

}

(2):

#include <stdio.h>

#include <windows.h>

#include<conio.h>

#include <stdlib.h>

#include<time.h>

#define X 23//地圖的x軸

#define Y 75//地圖的y軸

#define UP 0

#define DOWN 1

#define LEFT 2

#define RIGHT 3

#define WAIT_TIME 200//等待蛇刷新的時間,可以說是速度 修改可變速

int map_0[X][Y];//地圖

int Snake[X*Y][2]; // 蛇

int Slength; //蛇的長度

int direction;

int score=0;

bool pdEatFood=false;

void csh();

void huaMap();

void huaSnake();

void gotoxy(int x,int y);

void move();

void intokey();

int check(int x,int y);

void putfood();

bool gameover();

void dy_fs();

int main()

{

csh();

huaMap();

putfood();

while(1)

{

huaSnake();

Sleep(WAIT_TIME);

intokey();

move();

dy_fs();

if(gameover())

{

system("cls"); //清除屏幕內容

printf("Game Over ");

system("pause");

getchar();

break;

}

if(map_0[Snake[0][0]][Snake[0][1]]==-1)

{

map_0[Snake[0][0]][Snake[0][1]]=0;

pdEatFood=true;

putfood();

score+=10;

}

}

return 0;

}

void csh()//初始化

{

srand((unsigned)time(NULL)); //設置種子為現在的時間

Slength=4;

gotoxy(0,0);

CONSOLE_CURSOR_INFO cursor_info = {1, 0}; //清除游標

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);

int x,y;

Snake[0][0]=X/2;

Snake[0][1]=Y/2;

for(x=0;x<X;x++){

map_0[x][0]=1;

map_0[x][Y-1]=1;

}

for(y=1;y<Y-1;y++){

map_0[0][y]=1;

map_0[X-1][y]=1;

}

for(x=1;x<4;x++){ //初始化蛇的坐標

Snake[x][0]=Snake[0][0]+x;

Snake[x][1]=Snake[0][1];

}

direction=UP;

}

void huaMap()//畫地圖

{

int x,y;

for(x=0;x<X*1.01;x++){

for(y=0;y<Y*1.01;y++){

if(map_0[x][y]==1){

printf("#");

}

if(map_0[x][y]==0){

printf(" ");

}

}

printf(" ");

}

}

void huaSnake()//畫蛇

{

int x;

for(x=0;x<Slength;x++)

{

gotoxy(Snake[x][0],Snake[x][1]);

printf("@");

}

}

void gotoxy(int i,int j)//移動游標

{

COORD position={j,i};

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),position);

}

void move()

{

int i;

gotoxy(Snake[Slength-1][0],Snake[Slength-1][1]);//擦除尾巴

printf(" ");

for(i=Slength-1;i>0;i--) //從尾巴開始,每一個點的位置等於它前面一個點的位置

{

Snake[i][0]=Snake[i-1][0];

Snake[i][1]=Snake[i-1][1];

}

switch(direction)

{

case UP:

Snake[0][0]--;

break;

case DOWN:

Snake[0][0]++;

break;

case LEFT:

Snake[0][1]--;

break;

case RIGHT:

Snake[0][1]++;

break;

}

if(pdEatFood){

Slength++;

pdEatFood=false;

}

}

void intokey()

{

if(kbhit()!=0) //kbhit()函數 檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0

{

char in;

while(!kbhit()==0) //如果玩家輸入了多個按鍵,以最後一個按鍵為准

in=getch();

switch(in)

{

case 'w':

case 'W':

if(direction!=DOWN) //防止縮頭

direction=UP;

break;

case 's':

case 'S':

if(direction!=UP)

direction=DOWN;

break;

case 'a':

case 'A':

if(direction!=RIGHT)

direction=LEFT;

break;

case 'd':

case 'D':

if(direction!=LEFT)

direction=RIGHT;

break;

case 'p':

case 'P':

gotoxy(X,0);

system("pause");

gotoxy(X,0);

printf(" "); // 消去下面的按任意鍵繼續

break;

}

}

}

int check(int ii,int jj){// 檢查是否能投放食物

if(map_0[ii][jj]==1)

return 0;

if(ii==0 || jj==0 || ii==X-1 || jj==Y-1)

return 0;

int i;

for(i=0;i<Slength;i++){

if(ii==Snake[i][0] && jj==Snake[i][1])

return 0;

}

return 1;

}

void putfood()

{

int i,j;

do{

i=rand()%X;

j=rand()%Y;

}while(check(i,j)==0);

map_0[i][j]=-1;

gotoxy(i,j);

printf("$");

}

bool gameover()

{

bool isgameover=false;

int sX,sY;

sX=Snake[0][0],sY=Snake[0][1];

if(sX==0 || sX==X-1 || sY==0 || sY==Y-1)

isgameover=true;

int i;

for(i=1;i<Slength;i++){

if(sX==Snake[i][0] && sY==Snake[i][1])

isgameover=true;

}

return isgameover;

}

void dy_fs()

{

gotoxy(X,0);

printf("(c)Geek------2018.1.22");

gotoxy(X+1,0);

printf("最終得分: %d",score);

}

管慶帆c/c++大師😄

⑼ VB拼圖游戲,把分割的圖片放在左邊,然後拖入右邊的圖形框

網上很多源碼的

java!怎麼把三行三列的拼圖游戲改成四行四列!!跪求高手幫忙修改!!下面是源碼!!

你的程序問題很多啊 首先沒有main函數 根本運行不了 ,其次你沒有輸出,根本不可能打出表格的, 所有的3都改成4就是四行四列

閱讀全文

與拼圖小游戲源碼相關的資料

熱點內容
廣東加密貨幣 瀏覽:214
利用python批量查詢系統 瀏覽:495
什麼app看左右臉 瀏覽:302
台灣小公主s解壓密碼 瀏覽:568
易語言鎖機軟體源碼 瀏覽:156
迅雷下載完成無法解壓 瀏覽:592
硬碟分區命令圖解 瀏覽:447
當前雲伺服器如何關閉 瀏覽:78
mac下python在哪 瀏覽:641
廣東惠州DNS伺服器地址 瀏覽:357
編譯影片時軟體渲染錯誤 瀏覽:625
流星蝴蝶劍解壓失敗 瀏覽:294
如何確認方舟編譯器 瀏覽:664
奶粉源箱源碼什麼意思 瀏覽:178
台州程序員兼職一般去哪些網站 瀏覽:406
舊版本怎麼下載到新的安卓 瀏覽:972
flash個人網站源碼下載 瀏覽:724
javasocketbyte 瀏覽:268
素描基礎教程pdf 瀏覽:542
香港商報pdf版 瀏覽:428