导航:首页 > 源码编译 > 拼图小游戏源码

拼图小游戏源码

发布时间: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