5、c语言小游戏代码
以下是贪吃蛇源代码:
#includeiostream.h
#includewindows.h
#includetime.h
#includestdlib.h
#includeconio.h
#define N 21
void gotoxy(int x,int y)//位置函数
COORD pos;
pos.X=2*x;
pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
void color(int a)//颜色函数
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
void init(int apple[2])//初始化函数(初始化围墙、显示信息、苹果)
int i,j;//初始化围墙
int wall[N+2][N+2]={{0}};
for(i=1;i=N;i++)
for(j=1;j=N;j++)
wall[i][j]=1;
color(11);
for(i=0;iN+2;i++)
for(j=0;jN+2;j++)
if(wall[i][j])
cout"■";
else cout"□" ;
coutendl;
gotoxy(N+3,1);//显示信息
color(20);
cout"按 W S A D 移动方向"endl;
gotoxy(N+3,2);
color(20);
cout"按任意键暂停"endl;
gotoxy(N+3,3);
color(20);
cout"得分:"endl;
apple[0]=rand()%N+1;//苹果
apple[1]=rand()%N+1;
gotoxy(apple[0],apple[1]);
color(12);
cout"●"endl;
int main()
int i,j;
int** snake=NULL;
int apple[2];
int score=0;
int tail[2];
int len=3;
char ch='p';
srand((unsigned)time(NULL));
init(apple);
snake=(int**)realloc(snake,sizeof(int*)*len);
for(i=0;ilen;i++)
snake[i]=(int*)malloc(sizeof(int)*2);
for(i=0;ilen;i++)
snake[i][0]=N/2;
snake[i][1]=N/2+i;
gotoxy(snake[i][0],snake[i][1]);
color(14);
cout"★"endl;
while(1)//进入消息循环
tail[0]=snake[len-1][0];
tail[1]=snake[len-1][1];
gotoxy(tail[0],tail[1]);
color(11);
cout"■"endl;
for(i=len-1;i0;i--)
snake[i][0]=snake[i-1][0];
snake[i][1]=snake[i-1][1];
gotoxy(snake[i][0],snake[i][1]);
color(14);
cout"★"endl;
if(kbhit())
gotoxy(0,N+2);
ch=getche();
switch(ch)
case 'w':snake[0][1]--;break;
case 's':snake[0][1]++;break;
case 'a':snake[0][0]--;break;
case 'd':snake[0][0]++;break;
default: break;
gotoxy(snake[0][0],snake[0][1]);
color(14);
cout"★"endl;
Sleep(abs(200-0.5*score));
if(snake[0][0]==apple[0]snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1
score++;
len++;
snake=(int**)realloc(snake,sizeof(int*)*len);
snake[len-1]=(int*)malloc(sizeof(int)*2);
apple[0]=rand()%N+1;
apple[1]=rand()%N+1;
gotoxy(apple[0],apple[1]);
color(12);
cout"●"endl;
gotoxy(N+5,3);
color(20);
coutscoreendl;
if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到围墙后失败
gotoxy(N/2,N/2);
color(30);
cout"失败!!!"endl;
for(i=0;ilen;i++)
free(snake[i]);
Sleep(INFINITE);
exit(0);
return 0;
}参考资料:从C++吧看来的
可以通过拷贝。
用数据线将电脑与学习机连接起来,通过拷贝,然后传输到学习机上即可,但要先在电脑上下载,才可以传过去。
将写好代码的txt文档右键点击,将文件的后缀"txt"改成“vbs”,然后保存,弹出的对话框不用理会,点击确定。
首先主界面 Options - Keyboard/Mouse - Allow Developers Console
(选项- 键盘/鼠标- 允许开启控制台)
然后游戏中按 ~ 开启控制台,输入 Sv_Cheats 1 回车确认开启秘籍模式。
最后游戏中按 ~ 开启控制台,输入以下秘籍回车确认可得到对应效果
god 1 无敌
noclip 穿墙(朝上可以飞天)
sv_infinite_ammo 1 无限弹药
give pistol 手枪
give pumpshotgun 霰弹枪
give autoshotgun 连散
give rifle M4/M16
give *** g 乌兹
give hunting_rifle 狙击
give pipe_bomb 土制炸弹
give molotov 燃烧瓶
give oxygentank 氧气瓶
give propanetank 煤气罐
give gascan 油桶
give pain_pills 药瓶
give first_aid_kit 急救包
give health 满血100
give ammo 弹药
z_spawn hunter(创造Hunter)
z_spawn *** oker(创造 *** oker)
z_spawn boomer (创造boomer)
z_spawn tank (创造tank)
z_spawn witch(创造witch)
ent_fire !self setteam 1 变目击者
ent_fire !self setteam 2 变幸存者
ent_fire !self setteam 3 被感染
changelevel 地图名 快速改变地图
give物品名 制造指定物品(武器等等)
nb_blind 1 让丧尸看不到,不过碰到丧尸的话他们还是会发现
nb_delete_all 清除所有被感染的头目及幸存者
z_add 增加一只丧尸在游戏中
z_spawn bossname 增加一只Boss怪物,bossname分别是:
tank, boomer, *** oker, witch, hunter
cl_drawhud 0 消除抬头状态列HUD
r_drawviewmodel 0 使武器隐形
sv_lan 0 启用Internet *** ;
在 Campaign Lobby 界面开启
map地图名 启动 *** 服务器;
在 Campaign Lobby界面开启
openserverbrowser 显示可用的服务器
OP命令全解释
rcon_password **** 获得OP权限 (*=OP密码)
rcon sv_password **** 锁上服务器
rcon sv_password '' 解锁服务器
rcon changelevel 地图名 立即换地图,所有玩家不退出
rcon map 地图名 立即立即换地图,所有玩家退出
z_difficulty Easy 游戏难度简单
z_difficulty Normal 正常
z_difficulty Hard 困难
z_difficulty Impossible 专家
下面列出游戏目前所有的游戏地图名称 方便大家使用(~直接复制粘贴-除掉.bsp):
毫不留情
map l4d_hospital01_apartment.bsp (1.公寓)
主视角截图map l4d_hospital02_subway.bsp (2:地铁)
map l4d_hospital03_sewers.bsp (3:下水道)
map l4d_hospital04_interior.bsp (4:医院)
map l4d_hospital05_rooftop.bsp (5:屋顶终局)
死亡丧钟
map l4d_ *** alltown01_caves.bsp (1:收费公路)
map l4d_ *** alltown02_drainage.bsp (2:水沟)
map l4d_ *** alltown03_ranchhouse.bsp (3:教堂)
map l4d_ *** alltown04_mainstreet.bsp (4:小镇)
map l4d_ *** alltown05_houseboat.bsp (5:船库终局)
静寂时分
map l4d_airport01_greenhouse.bsp (1:花房)
map l4d_airport02_offices.bsp (2:起重机)
map l4d_airport03_garage.bsp (3:建筑工地)
map l4d_airport04_terminal.bsp (4:终点)
map l4d_airport05_runway.bsp (5:跑道终局)
血腥收获
map l4d_farm01_hilltop.bsp (1:森林)
map l4d_farm02_traintunnel.bsp (2:隧道)
map l4d_farm03_bridge.bsp (3:桥)
map l4d_farm04_barn.bsp (4:火车站)
map l4d_farm05_cornfield.bsp (5:农舍终局)
生存灯塔
map l4d_sv_lighthouse.bap (生存灯塔地图)
模式变更激活命令
mp_gamemode survival 激活生存模式
mp_gamemode coop 合作模式的命令,然后选一幅合作地图就行了。
mp_gamemode versus 对抗模式地图,然后选一副对抗地图(对抗地图是 l4d_sv_xx
主要代码:
//定义nub,为下面的球体复制做准备...
var num:Number = 0;
//定义xian,此处设置的目的为当球下落到一定程序的时候(即超出屏幕的范围的时候),运行后面的程序,此 *** 的目的是为了
//让系统不会因为复制太多球体而变得很慢.此处的值是场景的y值,可以随便设...
var xian:Number = 450;
//定义新my_array类,此处为随机出现在黄色球体中的文字,内容可以自己随便加入...
var my_array:Array = new Array();
my_array = ["欢", "迎", "光", "临", "淘", "沙", "网"];
//定义加载之一个球体函数...
function jiazai_ball1() {
//num的值不断递加...
num++;
//定义一个变量ball2,变量的对象为复制之一个球体为新实例名为"之一个球+num"到num层...
var ball2 = attachMovie("ball", "ball"+num, num);
//定义ball2的x座标值为随机数...
ball2._x = Math.floor(Math.random()*750);
//此处运用一个语句switch...即可选择性调用函数...
switch (moshi_txt.text) {
case "小写练习" :
//此处返回一个随机值...
numb = random(26)+97;
//此处不要忘了跳出语句...
break;
case "大写练习" :
numb = random(26)+65;
break;
//这个函数,我是之一次用到,感谢酱色度,还有小南,当然最感谢的还是Hbro...
//当前面的条件都不成立时,就运行下面的程序...
default :
moshi_txt.text = "综合练习";
//这里,又要用到变量.先定义一个变量...这里有点难度.即是说:当前面都不成立的时候,就用到这里.而且要包含两种可能.
//这个时候,就又要用到随机函数了...这个随机函数其实是属于整个default程序的...
var xuan_tt = random(2);
if (xuan_tt == 1) {
numb = random(26)+97;
} else {
numb = random(26)+65;
break;
ball2.onEnterFrame = function() {
//当ball2运行的时候,就移动y座标,这样才能形成动画...
this._y += 3;
if (this._y=xian) {
//当移动到一定位置的时候,就删除影片.这样,才不会形成系统越来越慢...
removeMovieClip(this);
//球体上的动态文本框中的文本就将上面的随机字符转换为编码.每个键盘按键都对应得有一个编码的...具体可以查询:
//http://www.taoshaw.com/taoshaw/article.asp?id=1309里面的相关内容...
ball2.text.text = String.fromCharCode(numb);
//此处为复制的另一个球体的函数...
function jiazai_ball2() {
var ball3 = attachMovie("balld", "balld"+num, num);
ball3._x = Math.floor(Math.random()*750);
ball3.onEnterFrame = function() {
this._y += 5;
if (this._y=xian) {
removeMovieClip(this);
numb = random(26)+97;
/*如果希望黄色的小球也出现随机字母,则使用ball3.text.text=String.fromCharCode(nmub);*/
ball3.text.text = my_array[Math.floor(Math.random()*my_array.length)];
//将刚才的球体加载函数调用进场景中...
function diao1() {
jiazai_ball1();
function diao2() {
jiazai_ball2();
//设置diao1函数调用的时间半隔...
id1 = setInterval(diao1, 1000);
id2 = setInterval(diao2, 5000);
xiaoxie_btn.onRelease = function() {
moshi_txt.text = "小写练习";
daxie_btn.onRelease = function() {
moshi_txt.text = "大写练习";
元件“ball”中之一帧中的代码说明:
stop();
//定义鼠标侦听类...
var keyListener = new Object();
keyListener.onKeyDown = function() {
//判断键盘转化的符号与球体的动态文本框中的内空所对应的编码是否符合...
if (text.text.charCodeAt(0) == Key.getAscii()) {
gotoAndPlay(2);
Key.addListener(keyListener);
“贪吃蛇”C代码,在dev C++试验通过(用4个方向键控制)
#include stdio.h
#include stdlib.h
#include conio.h
#include time.h
#include Windows.h
#define W 78 //游戏框的宽,x轴
#define H 26 //游戏框的高,y轴
int dir=3; //方向变量,初值3表示向“左”
int Flag=0; //吃了食物的标志(1是0否)
int score=0; //玩家得分
struct food{ int x; //食物的x坐标
int y; //食物的y坐标
}fod; //结构体fod有2个成员
struct snake{ int len; //蛇身长
int speed; //移动速度
int x[100]; //蛇身某节x坐标
int y[100]; //蛇身某节y坐标
}snk; //结构体snk有4个成员
void gtxy( int x,int y) //控制光标移动的函数
{ COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
void gtxy( int x,int y); //以下声明要用到的几个自编函数
void csh( ); //初始化界面
void keymove( ); //按键操作移动蛇
void putFod( ); //投放食物
int Over( ); //游戏结束(1是0否)
void Color(int a); //设定显示颜色的函数
int main( ) //主函数
{ csh( );
while(1)
{ Sleep(snk.speed);
keymove( );
putFod( );
if(Over( ))
{ system(“cls”);
gtxy(W/2+1,H/2); printf(“游戏结束!T__T”);
gtxy(W/2+1,H/2+2); printf(“玩家总分:%d分”,score);
getch( );
break;
return 0;
void csh( ) //初始化界面
{ int i;
gtxy(0,0);
CONSOLE_CURSOR_INFO cursor_info={1,0}; //以下两行是隐藏光标的设置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);
for(i=0;i=W;i=i+2) //横坐标要为偶数,因为这个要打印的字符占2个位置
{Color(2); //设定打印颜色为绿色
gtxy(i,0); printf("■"); //打印上边框
gtxy(i,H); printf("■"); //打印下边框
for(i=1;iH;i++)
{ gtxy(0,i); printf("■"); //打印左边框
gtxy(W,i); printf("■"); //打印右边框
while(1)
{ srand((unsigned)time(NULL)); //初始化随机数发生器srand( )
fod.x=rand()%(W-4)+2; //随机函数rand( )产生一个从0到比”(W-4)”小1的数再加2
fod.y=rand()%(H-2)+1; //随机函数rand( )产生一个从0到比”(H-2)”小1的数再加1
if (fod.x%2==0) break; //fod.x是食物的横坐标,要是2的倍数(为偶数)
Color(12); //设定打印颜色为淡红
gtxy(fod.x,fod.y); printf("●"); //到食物坐标处打印初试食物
snk.len=3; //蛇身长初值为3节
snk.speed=350; //刷新蛇的时间,即移动速度初值为350毫秒
snk.x[0]=W/2+1; //蛇头横坐标要为偶数(因为W/2=39)
snk.y[0]=H/2; //蛇头纵坐标
Color(9); //设定打印颜色为淡蓝
gtxy(snk.x[0], snk.y[0]); printf("■"); //打印蛇头
for(i=1;isnk.len;i++)
{ snk.x[i]=snk.x[i-1]+2; snk.y[i]=snk.y[i-1];
gtxy(snk.x[i],snk.y[i]); printf("■"); //打印蛇身
Color(7, 0); //恢复默认的白字黑底
return;
void keymove( ) //按键操作移动蛇
{ int key;
if( kbhit( ) ) //如有按键输入才执行下面操作
{ key=getch( );
if (key==224) //值为224表示按下了方向键,下面要再次获取键值
{ key=getch( );
if(key==72dir!=2)dir=1; //72表示按下了向上方向键
if(key==80dir!=1)dir=2; //80为向下
if(key==75dir!=4)dir=3; //75为向左
if(key==77dir!=3)dir=4; //77为向右
if (key==32)
{ while(1) if((key=getch( ))==32) break; } //32为空格键,这儿用来暂停
if (Flag==0) //如没吃食物,才执行下面操作擦掉蛇尾
{ gtxy(snk.x[snk.len-1],snk.y[snk.len-1]); printf(" "); }
int i;
for (i = snk.len - 1; i 0; i--) //从蛇尾起每节存储前一节坐标值(蛇头除外)
{ snk.x[i]=snk.x[i-1]; snk.y[i]=snk.y[i-1]; }
switch (dir) //判断蛇头该往哪个方向移动,并获取最新坐标值
{ case 1: snk.y[0]--; break; //dir=1要向上移动
case 2: snk.y[0]++; break; //dir=2要向下移动
case 3: snk.x[0]-=2; break; //dir=3要向左移动
case 4: snk.x[0]+=2; break; //dir=4要向右移动
Color(9);
gtxy(snk.x[0], snk.y[0]); printf("■"); //打印蛇头
if (snk.x[0] == fod.x snk.y[0] == fod.y) //如吃到食物则执行以下操作
{ printf("\7"); snk.len++; score += 100; snk.speed -= 5; Flag = 1; } //7是响铃
else Flag = 0; //没吃到食物Flag的值为0
if(snk.speed150) snk.speed= snk.speed+5; //作弊码,不让速度无限加快
void putFod( ) //投放食物
{ if (Flag == 1) //如吃到食物才执行以下操作,生成另一个食物
{ while (1)
{ int i,n= 1;
srand((unsigned)time(NULL)); //初始化随机数发生器srand( )
fod.x = rand( ) % (W - 4) + 2; //产生在游戏框范围内的一个x坐标值
fod.y = rand( ) % (H - 2) + 1; //产生在游戏框范围内的一个y坐标值
for (i = 0; i snk.len; i++) //随机生成的食物不能在蛇的身体上
{ if (fod.x == snk.x[i] fod.y == snk.y[i]) { n= 0; break;} }
if (n fod.x % 2 == 0) break; //n不为0且横坐标为偶数,则食物坐标取值成功
Color(12); //设定字符为红色
gtxy(fod.x, fod.y); printf("●"); //光标到取得的坐标处打印食物
return;
int Over( ) //判断游戏是否结束的函数
{ int i;
Color(7);
gtxy(2,H+1); printf(“暂停键:space.”); //以下打印一些其它信息
gtxy(2,H+2); printf(“游戏得分:%d”,score);
if (snk.x[0] == 0 || snk.x[0] == W) return 1; //蛇头触碰左右边界
if (snk.y[0] == 0 || snk.y[0] == H) return 1; //蛇头触碰上下边界
for (i = 1; i snk.len; i++)
{ if (snk.x[0] == snk.x[i] snk.y[0] == snk.y[i]) return 1; } //蛇头触碰自身
return 0; //没碰到边界及自身时就返回0
void Color(int a) //设定颜色的函数
{ SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE ),a ); }
如今许多汽车4S店都做不到当日送车检修,当日能拿车,就算是喷漆都要排长队,小擦小碰补点漆很有可能也需要几日能够进行。而外面的车辆维修中心店和汽车4S店的喷漆速率对比就需要快许多。(例如:济南市皇菠萝蜜汽车维修)假如漆面碰擦部位容许还能够部分喷漆,一般在60-90分鐘就可以解决,如果是全部面喷涂時间也...
Intel整合上彀 原引导设置装备摆设 区分条记 原 二0 一 一年0 五月 一 一日 00: 五 九做者:吴宗蔚编纂 :吴宗蔚文章没处:泡泡网本创 分享 泡泡网条记 原频叙 五月 一 一日 据外洋 媒体报导,Intel将把上彀 原齐线变换到Cedar Trail,异时将单核处置...
文娱消息 起源 :广州日报 二0 一 六年 一 一月 二 九日 一 四:0 三 A-A+ 扫一扫 脚机 浏览 尔要分享 QQ空间新浪微专腾讯微专QQ微疑 本题目 : 主角“小斑点 ” 片子 面植物的设定很心爱。 客串表演 的约翰僧·德普...
据海峡网 二0 二 一年 一0月 二0日 一 七: 四0:0 二的消息 报导,微专网友@ 爆料。 安然 夜光降 之际,事宜 ,正在网上炒患上满城风雨,激发 齐网冷议! 据悉,乌客逃款之后被报导了几回 。推测 第六百八十八章追港者第六百八十九章奚弄 第六百。相对于那个账号是他的。 1、...
国产SUV再加新成员 新圣达菲卖 一0. 一 八- 一 二. 五 八万元 铁扇私主 揭橥 于 牛车网 二0 一 四. 一 一. 二0 一 五:0 二 华泰新圣达菲正在本年 的广州车铺邪式上市,新车异时拉没搭载 一. 五T汽油以及 二.0T柴油柴油二种动员 机的 ...
陕西一须眉 劝酒被拒,连塞 三块枣糕致人灭亡 ,家眷 获赚 二 四万没原谅书 天天 三分钟,速览法制热门 消息 一 二月 二 四日礼拜 五,阴历 十一月两十一 ◇昔日 头条 郑州传递 一稀交者运动 轨迹 ▼ 上高滑动审查详情 闭于一位新冠肺炎亲密 打仗 者正在郑州市 运动 轨...