导航:首页 > 源码编译 > cpp源码大全

cpp源码大全

发布时间:2024-01-31 14:54:45

Ⅰ 求C语言俄罗斯方块代码

俄罗斯方块C源代码

#include<stdio.h>

#include<windows.h>

#include<conio.h>

#include<time.h>

#defineZL4 //坐标增量,不使游戏窗口靠边

#defineWID36 //游戏窗口的宽度

#defineHEI20 //游戏窗口的高度

inti,j,Ta,Tb,Tc; //Ta,Tb,Tc用于记住和转换方块变量的值

inta[60][60]={0}; //标记游戏屏幕各坐标点:0,1,2分别为空、方块、边框

intb[4]; //标记4个"口"方块:1有,0无,类似开关

intx,y,level,score,speed; //方块中心位置的x,y坐标,游戏等级、得分和游戏速度

intflag,next; //当前要操作的方块类型序号,下一个方块类型序号

voidgtxy(intm,intn); //以下声明要用到的自编函数

voidgflag(); //获得下一方块序号

voidcsh(); //初始化界面

voidstart(); //开始部分

voidprfk(); //打印方块

voidclfk(); //清除方块

voidmkfk(); //制作方块

voidkeyD(); //按键操作

intifmov(); //判断方块能否移动或变体

void clHA(); //清除满行的方块

voidclNEXT(); //清除边框外的NEXT方块

intmain()

{csh();

while(1)

{start();//开始部分

while(1)

{prfk();

Sleep(speed); //延时

clfk();

Tb=x;Tc=flag;//临存当前x坐标和序号,以备撤销操作

keyD();

y++;//方块向下移动

if(ifmov()==0){y--;prfk();dlHA();break;}//不可动放下,删行,跨出循环

}

for(i=y-2;i<y+2;i++){if(i==ZL){j=0;}} //方块触到框顶

if(j==0){system("cls");gtxy(10,10);printf("游戏结束!");getch();break;}

clNEXT(); //清除框外的NEXT方块

}

return0;

}

voidgtxy(intm,intn)//控制光标移动

{COORDpos;//定义变量

pos.X=m;//横坐标

pos.Y=n;//纵坐标

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);

}

voidcsh()//初始化界面

{gtxy(ZL+WID/2-5,ZL-2);printf("俄罗斯方块");//打印游戏名称

gtxy(ZL+WID+3,ZL+7);printf("*******NEXT:");//打印菜单信息

gtxy(ZL+WID+3,ZL+13);printf("**********");

gtxy(ZL+WID+3,ZL+15);printf("Esc:退出游戏");

gtxy(ZL+WID+3,ZL+17);printf("↑键:变体");

gtxy(ZL+WID+3,ZL+19);printf("空格:暂停游戏");

gtxy(ZL,ZL);printf("╔");gtxy(ZL+WID-2,ZL);printf("╗");//打印框角

gtxy(ZL,ZL+HEI);printf("╚");gtxy(ZL+WID-2,ZL+HEI);printf("╝");

a[ZL][ZL+HEI]=2;a[ZL+WID-2][ZL+HEI]=2;//记住有图案

for(i=2;i<WID-2;i+=2){gtxy(ZL+i,ZL);printf("═");}//打印上横框

for(i=2;i<WID-2;i+=2){gtxy(ZL+i,ZL+HEI);printf("═");a[ZL+i][ZL+HEI]=2;}//下框

for(i=1;i<HEI;i++){gtxy(ZL,ZL+i);printf("║");a[ZL][ZL+i]=2;}//左竖框记住有图案

for(i=1;i<HEI;i++){gtxy(ZL+WID-2,ZL+i);printf("║");a[ZL+WID-2][ZL+i]=2;}//右框

CONSOLE_CURSOR_INFOcursor_info={1,0};//以下是隐藏光标的设置

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);

level=1;score=0;speed=400;

gflag();flag=next;//获得一个当前方块序号

}

voidgflag() //获得下一个方块的序号

{srand((unsigned)time(NULL));next=rand()%19+1; }

voidstart()//开始部分

{gflag();Ta=flag;flag=next;//保存当前方块序号,将下一方块序号临时操作

x=ZL+WID+6;y=ZL+10;prfk();//给x,y赋值,在框外打印出下一方块

flag=Ta;x=ZL+WID/2;y=ZL-1;//取回当前方块序号,并给x,y赋值

}

voidprfk()//打印俄罗斯方块

{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+WID+3,ZL+1); printf("level:%d",level); //以下打印菜单信息

gtxy(ZL+WID+3,ZL+3); printf("score:%d",score);

gtxy(ZL+WID+3,ZL+5); printf("speed:%d",speed);

}

voidclfk()//清除俄罗斯方块

{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("");}}}

}

voidmkfk()//制作俄罗斯方块

{a[x][y]=b[0];//方块中心位置状态:1-有,0-无

switch(flag)//共6大类,19种小类型

{case1:{a[x][y-1]=b[1];a[x+2][y-1]=b[2];a[x+2][y]=b[3];break;}//田字方块

case2:{a[x-2][y]=b[1];a[x+2][y]=b[2];a[x+4][y]=b[3];break;}//直线方块:----

case3:{a[x][y-1]=b[1];a[x][y-2]=b[2];a[x][y+1]=b[3];break;}//直线方块:|

case4:{a[x-2][y]=b[1];a[x+2][y]=b[2];a[x][y+1]=b[3];break;}//T字方块

case5:{a[x][y-1]=b[1];a[x][y+1]=b[2];a[x-2][y]=b[3];break;}//T字顺时针转90度

case6:{a[x][y-1]=b[1];a[x-2][y]=b[2];a[x+2][y]=b[3];break;}//T字顺转180度

case7:{a[x][y-1]=b[1];a[x][y+1]=b[2];a[x+2][y]=b[3];break;}//T字顺转270度

case8:{a[x][y+1]=b[1];a[x-2][y]=b[2];a[x+2][y+1]=b[3];break;}//Z字方块

case9:{a[x][y-1]=b[1];a[x-2][y]=b[2];a[x-2][y+1]=b[3];break;}//Z字顺转90度

case10:{a[x][y-1]=b[1];a[x-2][y-1]=b[2];a[x+2][y]=b[3];break;}//Z字顺转180度

case11:{a[x][y+1]=b[1];a[x+2][y-1]=b[2];a[x+2][y]=b[3];break;}//Z字顺转270度

case12:{a[x][y-1]=b[1];a[x][y+1]=b[2];a[x-2][y-1]=b[3];break;}//7字方块

case13:{a[x-2][y]=b[1];a[x+2][y-1]=b[2];a[x+2][y]=b[3];break;}//7字顺转90度

case14:{a[x][y-1]=b[1];a[x][y+1]=b[2];a[x+2][y+1]=b[3];break;}//7字顺转180度

case15:{a[x-2][y]=b[1];a[x-2][y+1]=b[2];a[x+2][y]=b[3];break;}//7字顺转270度

case16:{a[x][y+1]=b[1];a[x][y-1]=b[2];a[x+2][y-1]=b[3];break;}//倒7字方块

case17:{a[x-2][y]=b[1];a[x+2][y+1]=b[2];a[x+2][y]=b[3];break;}//倒7字顺转90度

case18:{a[x][y-1]=b[1];a[x][y+1]=b[2];a[x-2][y+1]=b[3];break;}//倒7字顺转180度

case19:{a[x-2][y]=b[1];a[x-2][y-1]=b[2];a[x+2][y]=b[3];break;}//倒7字顺转270度

}

}

voidkeyD()//按键操作

{if(kbhit())

{intkey;

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)//按空格键,暂停

{prfk();while(1){if(getch()==32){clfk();break;}}} //再按空格键,继续游戏

if(ifmov()==0){x=Tb;flag=Tc;} //如果不可动,撤销上面操作

else{prfk();Sleep(speed);clfk();Tb=x;Tc=flag;} //如果可动,执行操作

}

}

intifmov()//判断能否移动

{if(a[x][y]!=0){return0;}//方块中心处有图案返回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))){return1;}

}

return0; //其它情况返回0

}

voidclNEXT() //清除框外的NEXT方块

{flag=next;x=ZL+WID+6;y=ZL+10;clfk();}

void clHA() //清除满行的方块

{intk,Hang=0; //k是某行方块个数,Hang是删除的方块行数

for(j=ZL+HEI-1;j>=ZL+1;j--)//当某行有WID/2-2个方块时,则为满行

{k=0;for(i=ZL+2;i<ZL+WID-2;i+=2)

{if(a[i][j]==1)//竖坐标从下往上,横坐标由左至右依次判断是否满行

{k++; //下面将操作删除行

if(k==WID/2-2) { for(k=ZL+2;k<ZL+WID-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+WID-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);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; }

}

Ⅱ 各种编程工具的源码的后缀名是什么

java的后缀简岁:樱猛.javax0dx0aC语言和C++::x0dx0a.h头文件,主要是函数、结构声明,常量定义等 x0dx0a.c,源文件,函数定义 x0dx0a.exe,可执行文件 x0dx0a.dll,动态链接库 x0dx0a.lib,静态链接库x0dx0a.dsp,.dsw都是工程文件,x0dx0a.cpp是C++的源文件x0dx0aC#语言:.csx0dx0ax0dx0aasp(web)拦颂睁:.aspx0dx0ax0dx0aasp.net(web):.aspxx0dx0ax0dx0aphp(web):.phpx0dx0ax0dx0aJSP(web):.jsp

Ⅲ 手机游戏源代码是什么,怎么使用

不知道你玩的啥游戏,但是看样子估计是c++代码,我英文学的不好
从英文描述中我猜测这是v c++的代码,“//”在代码中表示注释,前三行是注释,其大意如下:
stdafx.cpp :源文件,包括刚才的标准单元?
fixyou.pch将是预编译的标题
stdafx.obj将包含预编译的类型信息
“cpp”明显是c++源码文件的缩写名,而最后一行是头文件。
所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样快编译速度,节省时间。

预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。

编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。

因此,所有的CPP实现文件第一条语句都是:#include "stdafx.h"。
其实我学的pascal,所以对c++了解的少,如果你真的想学会他,还是自己找几本c++的书学一下,这样才能“使用”代码得心应手。

Ⅳ 源码(最原始程式的代码)详细资料大全

源码就是键简指编写的最原始程式的代码。运行的软体是要经过编写的,程式设计师编写程式的过程中需要他们的“语言”。音乐家用五线谱和音符,建筑师用图纸和笔,那程式设计师的工作的语言就是“源码”了。

人们平时使用软体时就是程式把“源码”翻译成我们可直观的形式表现出来供我们使用的。

任何一个网站蚂厅页面,换成源码就是一堆按一定格式书写的文字和符号,但我们的浏览器帮我们翻译成眼前的模样了。

基本介绍

分类,作用,源码组合,着作权分类,质量标准,执行效率,程式使用,获取与编写,例子,源码模板组成,

分类

1.计算机里面运行的所有东西都是用程式编出来的(包括作业系统,如Windows,还有Word等,网路游戏也一样),而编写程式要用到计算机语言,用计算机语言直接编出来的程式就叫源码,比如用VisualBasic编写的源码档案一般为.bas档案,而用C++编写的一般为.cpp档案,原始码不能直接运行,必须编译后才能运行。源码经过编译处理后就可以直接在作业系统下运行了。 2.很多的站长都喜欢使用建网站的程式源码,因为可以很方便的修改,对于任何一个seo人员来说,都是非常好的一个切入点。 3.从字面意义上来讲,源档案是指一个档案,指原始码的集合.原始码则是一组具有特定意义的可以实现特定功能的字符(程式开发代码)。 4.“原始码”在大多数时候等于“源档案”。 比如在这个网页上右键鼠标,选择查看源档案.出来一个记事本,里面的内容就是此网页的原始码."这句话就体现了他们的关系,此处的源档案是指网页的源档案,而原始码就是源档案的内容,所以又可以称做网页的原始码.. 原始码是指原始代码,可以是任何语言代码。 汇编码是指原始码编译后的代码,通常为二进制档案,比如共享库、执行档、.NET中间代码、JAVA中间代码等。 高级语言通常指C/C++、BASIC、C#、JAVA、PASCAL、易语言等等。汇编语言就是ASM,只有这个,比这个更低级的就是机器语言了。

作用

源码主要功用有如下2种作用: 1.生成目标代码,即计算机可以识别的代码。 2.对软体进行说明,即对软体的编写进行说明。为数不少的初学者,甚至少数有经验的程式设计师都忽视软体说明的编写,因为这部分虽然不会在生成的程式中直接显示,也不参与编译。但是说明对软体的学习、分享、维护和软体复用都有巨大的好处。因此,书写软体说明在业界被认为是能创造优秀程式的良好习惯,一些公司也硬性规定必须书写。 需要指出的是,原始码的修改不能改变已经生成的目标代码。如果需要目标代码做出相应的修改,必须重新编译。

源码组合

网站源码作为软体的特殊部分,可能被包含在一个或多个档案中。一个程式不必用同一种格式的原始码书写。例如,一个程式如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。 较为复杂的软体,一般需要数十种甚至上百种的原始码的参与。为了降低这种复杂度,必须引入一种可以描述各个原始码之间联系,并且如何正确编译的系统。在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。 还有另外一种组合:原始码的编写和编译分别在不同的平台上实现,专业术语叫做软体移植。

着作权分类

如果按照原始码类型区分软体,通常被分为两类:自由软体和非自由软体。自由软体一般是不仅可以免费得到,而且公开原始码;相对应地,非自由软体则是不公开原始码。所有一切通过非正常手段获得非自由软体原始码的行为都将被视为非法。

质量标准

对于计算机而言,并不存在真正意义上的“好”的原始码;然而作为一个人,好的书写习惯将决定原始码的好坏。原始码是否具有可读性,成为好坏的重要标准。软体文档则是表明可读性的关键。

执行效率

虽然我们可以通过不同的语言来实现计算机的同一功能,但在执行效率上则存在不同。普遍规律是:越高级的语言,其执行效率越低。这也是为什么汇编语言生成的档案比用BASIC语言生成档案普遍要小的原因。 原始码就是用汇编语言和高级语言写出来的代码。主要对象是面向开发者; 我们平常使闷亮隐用的应用程式都是经过源码编译打包以后发布的,呈现的最后结果是面向使用者,最终客户的。

程式使用

网站程式一般就是可以用记事本打开的好多行英文的,用程式语言写好的软体 源程式经过编译成目标程式,才能运行。一般目标程式不能再修改了。 我们电脑上安装的软体都是目标程式。源程式不可能直接运行的。 提倡软体开源的人士认为应该提供源程式给用户,让用户自己修改,有利于软体行业的发展。反对的人觉得这样不利于保护着作权。 你如果不懂编程,源程式可以不管它。不影响正常使用。

获取与编写

源码基本上不再需要从头编写,因为源码是属于可复制可二次开发的程式,一些网站会提供一些已经制作好的源码,你下载后可以在其基础上修改,直到成为适合自己使用的源码,此类的网站有收费的与免费的,以及一些源码质量不保证的论坛提供,利用这些平台,你可以快速完成一个程式的制作,事半功倍。

例子

dedecms源码是基于PHP+mysql的cms建站系统,简洁方便扩充性强大,全国知名网站admin,chinaz,都是dedecms核心源码。

源码模板组成

源码模板有很多种类,在这里我主要讲的是ZBLOG风格模板如何修改,此方法可以举一反三。对于WordPress、PJBLOG、动易CMS、织梦CMS、风讯CMS的风格模板修改方法都是一样的。
修改一个你满意的网页模板,你要有以下基础,会一点HTML(标准通用标记语言下的一个套用)语言,会一点DIV+CSS,会一点图片制作方法。 第一步,先讲解一下主题模板的构成。下面以Z-blog主题“低调与华丽”风格模板来说明,模板均分为三大部分,①网页的档案,②CSS档案,③图片档案。一般情况修改模板只需修改这三部分。 第二步,你可以让模板可视化再修改。几乎所有默认的源码网页模板的路径都是系统自带的标签。这样把讲HTML档案放入Dreamweaver里时会是一堆的代码。如何将程式模板转换为可视化界面呢。其实只需要修改CSS和图片路径就可以了。
如:
<link rel="stylesheet" rev="stylesheet" href="<#ZC_BLOG_HOST#>themes/<#ZC_BLOG_THEME#>/style/<#ZC_BLOG_CSS#>.css" type=text/css media="screen" />加红色的部分就是系统标签,这时你可以修改成你本机的虚拟路径。其他的程式标签都有说明,请查看相关系统标签。
如:<link href="../style/css/LuSongSong-Index.css" rel="stylesheet" type=text/css />修改好之后你就可以在Dreamweaver里面直观的看到网页界面了,并且修改起来也非常方便。(记得模板修改之后别忘记把CSS路径改回去喔!)
如图所示:
第三步,修改LOGO,和模板相关图片。网页我所要的框架改好了,但里面的logo和banner都还是人家的怎么办呢?接下来就是如何修改模板中的相关图片了。由于卢松松提供的“低调与华丽”风格模板,包含的有源档案,所以修改起来非常方便,你只需要修改里面的文字,下载一点你喜欢的其他图示就可以了。对于修改网页中的图片推荐使用Fireworks,原因是Fireworks不仅可以打开PNG源档案,还可以打开PSD源档案,相反Photoshop是不能打开PNG源档案的 第四步,教程看的再多不自己动动手,亲自试一试。那就赶快下载“低调与华丽”风格模板试一试吧!

Ⅳ dev cpp官方下载地址

链接:https://pan..com/s/17xtrovPy1x1VA7VMH9GrIQ

提取码:hkym复制这段内容后打开网络网盘手机App,操作更方便哦

作品简介:Dev-C++(或者叫做Dev-Cpp)是Windows环境下的一个轻量级C/C++集成开发环境(IDE)

阅读全文

与cpp源码大全相关的资料

热点内容
lk4102加密芯片 浏览:586
怎么更改app店面 浏览:485
设备部门如何做好服务器 浏览:847
androido下载 浏览:476
神奇高量战法副图源码 浏览:828
汇编语言设计凯撒密码加密器 浏览:390
主次梁加密是加在哪里 浏览:662
模板匹配算法matlab 浏览:823
外地程序员去北京 浏览:22
安卓机换苹果12如何转移数据 浏览:418
互联网ntp服务器地址及端口 浏览:613
pdf到word转换器 浏览:267
飞行解压素材 浏览:498
51单片机指令用背吗 浏览:936
unityai算法 浏览:834
我的世界ice服务器如何打开pvp 浏览:975
c语言编程如何做标记 浏览:884
python数据分析实战pdf 浏览:985
u盘插入文件夹 浏览:918
华为amd云服务器 浏览:497