最基础的贪吃蛇的代码
#includestdio.h
#includewindows.h//基本型态定义。支援型态定义函数。使用者界面函数 图形装置界面函数。
#includeconio.h //用户通过按键盘产生的对应操作 (控制台)
#includestdlib.h
#includetime.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]!=1Snake[Sna_Hea_X][Sna_Hea_Y]!=0Snake[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;
}
微信小游戏 *** 可视化工具下载源码。
准备工作:
1.一部已经root的Android手机
2.安装微信6.6.1版本的apk
3.电脑上已安装AndroidSDK并可以使用adb命令
需要注意的是必须是已经root了的Android手机,否则将没有权限访问对应手机的系统文件夹。
通过USB将手机连接到电脑上,然后运行以下命令
$adbdevices
如果显示了一下信息
1Listofdevicesattached
271MBBL6228EUdevice
说明手机已经连接到电脑上,如显示未找到adb命令,则说明AndroidSDK安装错误或adb未添加到电脑path中,请自行上网进行相应查阅。
手机连接电脑成功后,运行一下命令
1$adbshell
2$su
终端出类似root@{手机型号}前缀,说明已经进入到root模式下
$cd/data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg
{User}为当年用户的用户名,类似于1ed**********c514a18
然后当前目录就是微信用于存放小程序和小游戏下载包的位置
1$ls
2_-791877121_3.WXapkg
3_1079392110_5.Wxapkg
4_1079392110_5.Wxapkg_xdir
5_1123949441_92.WXapkg
6_576754918_1.Wxapkg
以上是我的微信中所下载过的小程序和小游戏源码
因为/data目录为系统级目录,无法直接将其进行复制,需要重新挂载为可操作模式
$mount-0remount,rW/data
此时就可以将当前目录下的文件拷贝到sdcard中
$cat1079392110_5.WXapkg/mnt/sdcard/_1079392110_5.WXapkg
然后将_1079392110_5.wxapkg文件拷贝到电脑里,通过该脚本进行解压后,即为其源码。
编译源码
通过微信小游戏开发工具新建一个空白的小程序或者小游戏的项目,主要不要选择快速启动模板。
然后把刚才解压出来的源代码复制到刚刚创建的项目目录中,开发工具会提示编译错误,这时只要在项目中新建一个game.json文件,并在文件里写入以下代码
{“deviceOrientation":"portrait"}
然后将开发工具的调试基础库改为gam,程序就会在开发者工具里运行起来了。
代码比较长 没有注释
脚本说明:
把如下代码加入body区域中
style
.bigcell {
background-color:#aa9966;
border:4px solid #aa9966;
text-align:center;
}
.cell {
width:40px;
height:40px;
font-family:Verdana, Arial;
font-size:10pt;
font-weight:bold;
background-color:#996633;
color:#ffff33;
border-top:2px solid #aa9966;
border-left:2px solid #aa9966;
border-right:2px solid #663300;
border-bottom:2px solid #663300;
text-align:center;
}
.hole {
width:40px;
height:40px;
background-color:#aa9966;
text-align:center;
}
body,h1,h2,h3,.msg,capt1,capt2 {font-family:Verdana,Comic Sans MS,Arial;}
body {margin:0px;}
h1 {font-size:28pt; font-weight:bold; margin-bottom:0px;}
h2 {font-size:16pt; margin:0px; font-weight:bold;}
h3 {font-size:8pt; margin:0px; font-weight:bold;}
.msg {font-size:8pt; font-weight:bold;}
.tab {cursor:hand;}
.capt1 {font-size:10pt; font-weight:bold;}
.capt2 {font-size:9pt; font-weight:bold;}
.capt3 {font-size:14pt; font-weight:bold; color:yellow;}
.capt4 {font-size:10pt; font-weight:bold; color:yellow;}
.but {font-size:9pt; font-weight:bold; height:30px;background-color:#aaaa99;}
/style
BODY onLoad="loadBoard(4)"
script
var gsize, ghrow, ghcol, gtime, gmoves, gintervalid=-1, gshuffling;
function toggleHelp()
{
if (butHelp.value == "Hide Help")
{
help.style.display = "none";
butHelp.value = "Show Help";
}
else
{
help.style.display = "";
butHelp.value = "Hide Help";
}
}
//random number between low and hi
function r(low,hi)
{
return Math.floor((hi-low)*Math.random()+low);
}
//random number between 1 and hi
function r1(hi)
{
return Math.floor((hi-1)*Math.random()+1);
}
//random number between 0 and hi
function r0(hi)
{
return Math.floor((hi)*Math.random());
}
function startGame()
{
shuffle();
gtime = 0;
gmoves = 0;
tickTime();
gintervalid = setInterval("tickTime()",1000);
}
function stopGame()
{
if (gintervalid==-1) return;
clearInterval(gintervalid);
fldStatus.innerHTML = "";
gintervalid=-1;
}
function tickTime()
{
showStatus();
gtime++;
}
function checkWin()
{
var i, j, s;
if (gintervalid==-1) return; //game not started!
if (!isHole(gsize-1,gsize-1)) return;
for (i=0;igsize;i++)
for (j=0;jgsize;j++)
{
if (!(i==gsize-1 j==gsize-1)) //ignore last block (ideally a hole)
{
if (getValue(i,j)!=(i*gsize+j+1).toString()) return;
}
}
stopGame();
s = "table cellpadding=4";
s += "trtd align=center class=capt3!! CONGRATS !!/td/tr";
s += "tr class=capt4td align=centerYou have done it in " + gtime + " secs ";
s += "with " + gmoves + " moves!/td/tr";
s += "trtd align=center class=capt4Your speed is " + Math.round(1000*gmoves/gtime)/1000 + " moves/sec/td/tr";
s += "/table";
fldStatus.innerHTML = s;
// shuffle();
}
function showStatus()
{
fldStatus.innerHTML = "Time: " + gtime + " secs Moves: " + gmoves
}
function showTable()
{
var i, j, s;
stopGame();
s = "table border=3 cellpadding=0 cellspacing=0 bgcolor='#666655'trtd class=bigcell";
s = s + "table border=0 cellpadding=0 cellspacing=0";
for (i=0; igsize; i++)
{
s = s + "tr";
for (j=0; jgsize; j++)
{
s = s + "td id=a_" + i + "_" + j + " onclick='move(this)' class=cell" + (i*gsize+j+1) + "/td";
}
s = s + "/tr";
}
s = s + "/table";
s = s + "/td/tr/table";
return s;
}
function getCell(row, col)
{
return eval("a_" + row + "_" + col);
}
function setValue(row,col,val)
{
var v = getCell(row, col);
v.innerHTML = val;
v.className = "cell";
}
function getValue(row,col)
{
// alert(row + "," + col);
var v = getCell(row, col);
return v.innerHTML;
}
function setHole(row,col)
{
var v = getCell(row, col);
v.innerHTML = "";
v.className = "hole";
ghrow = row;
ghcol = col;
}
function getRow(obj)
{
var a = obj.id.split("_");
return a[1];
}
function getCol(obj)
{
var a = obj.id.split("_");
return a[2];
}
function isHole(row, col)
{
return (row==ghrow col==ghcol) ? true : false;
}
function getHoleInRow(row)
{
var i;
return (row==ghrow) ? ghcol : -1;
}
function getHoleInCol(col)
{
var i;
return (col==ghcol) ? ghrow : -1;
}
function shiftHoleRow(src,dest,row)
{
var i;
//conversion to integer needed in some cases!
src = parseInt(src);
dest = parseInt(dest);
if (src dest)
{
for (i=src;idest;i++)
{
setValue(row,i,getValue(row,i+1));
setHole(row,i+1);
}
}
if (dest src)
{
for (i=src;idest;i--)
{
setValue(row,i,getValue(row,i-1));
setHole(row,i-1);
}
}
}
function shiftHoleCol(src,dest,col)
{
var i;
//conversion to integer needed in some cases!
src = parseInt(src);
dest = parseInt(dest);
if (src dest)
{//alert("src=" + src +" dest=" + dest + " col=" + col);
for (i=src;idest;i++)
{//alert(parseInt(i)+1);
setValue(i,col,getValue(i+1,col));
setHole(i+1,col);
}
}
if (dest src)
{
for (i=src;idest;i--)
{
setValue(i,col,getValue(i-1,col));
setHole(i-1,col);
}
}
}
function move(obj)
{
var r, c, hr, hc;
if (gintervalid==-1 !gshuffling)
{
alert('请点击"开始游戏"按钮')
return;
}
r = getRow(obj);
c = getCol(obj);
if (isHole(r,c)) return;
hc = getHoleInRow(r);
if (hc != -1)
{
shiftHoleRow(hc,c,r);
gmoves++;
checkWin();
return;
}
hr = getHoleInCol(c);
if (hr != -1)
{
shiftHoleCol(hr,r,c);
gmoves++;
checkWin();
return;
}
}
function shuffle()
{
var t,i,j,s,frac;
gshuffling = true;
frac = 100.0/(gsize*(gsize+10));
s = "% ";
for (i=0;igsize;i++)
{
s += "|";
for (j=0;jgsize+10;j++)
{
window.status = "Loading " + Math.round((i*(gsize+10) + j)*frac) + s
if (j%2==0)
{
t = r0(gsize);
while (t == ghrow) t = r0(gsize); //skip holes
getCell(t,ghcol).click();
}
else
{
t = r0(gsize);
while (t == ghcol) t = r0(gsize); //skip holes
getCell(ghrow,t).click();
}
}
}
window.status = "";
gshuffling = false;
}
function loadBoard(size)
{
gsize = size;
board.innerHTML = showTable(gsize);
setHole(gsize-1,gsize-1);
//shuffle();
}
/script
div id=test/div
table cellpadding=4
trtd align=center
b请选择难度: /B
select id=level onchange="loadBoard(parseInt(level.value))"
option value='3'3/option
option value='4' selected4/option
script
for (var i=5;i=10;i++)
{
document.write("option value='" + i + "'" + i + "/option");
}
/script
/select
/td/tr
trtd align=center
input type=button class=but value="开始游戏" onclick="startGame();"
trtd align=center id=fldStatus class=capt2
/td/tr
/table
div id=board/div
小游戏代码:想要的朋友拿去用 9.泡泡堂 10.跑跑卡丁车 11.街头霸王 12.超级小玛俐 13.头文字D-赛车 /upimg/20070226/11H5021Q0402H113.swf 14.抢滩登陆战 /upimg/20070226/11H5021S1402RL8.swf 15.宠物连连看 16.拳皇2000 17.秀 18.街机三国志FLASH极品版 19.拳皇百神双打版 20.蜡笔小新 21.热血高校 22.空间FLASH游戏反恐精英 23.炫亮劲舞团 24.生化危机3 25.电脑狂 26.吸引力大测试 27.人品计算器 28.水果泡泡 29.是男人就坚持30秒 30.小猫吃鱼 31.乒乓球游戏
下面演示王者荣耀改空白名字的操作流程:
一、进入王者荣耀大厅,点击右下角“背包”。
二、在背包中找到“改名卡”,点击右边的“使用”。
三、打开输入法面板后,点击输入法面板上的“表情”。
四、点击“Emoji表情”,在Emoji表情符号中逐个尝试,有哪些能够输入文字栏,就使用这些符号,输入完毕后点击输入法面板“确定”(注意:由于王者荣耀使用空白名字的人比较多,尽量选择多个字符的组合,不要使用相同字符避免重名)。
五、输入法面板关闭后,点击改名栏下方的“确定”。
六、效果如下图,这时更改的名字就是空白名字了。
本文导读目录: 1、QQ群软件是什么? 2、有些骗人的QQ群让你把消息转发至好几个群他们想干嘛 3、QQ群网课有人监视吗 4、只在QQ群里聊天会电脑会被入侵吗? 5、各位怎样攻击QQ群...
数学试卷出卷人:TJ共120分一、选择题...
【文章百度收录网说】自身没法查看,必须去派出所。 只有寻求帮助快捷酒店所在城市的公安部门,别人泄漏个人搬入快捷酒店信息内容,属违纪行为。 权威专家教你如何查询一个人住宿酒店记录(查酒店宾馆搬入记录...
能不能找黑客改大学成绩相关问题 黑客骇客的区别红客相关问题 黑客鱼饵钓什么鱼 4399游戏盒(4399游戏盒子)...
本文导读目录: 1、大家觉的黑客的收入怎么样,我感觉再顶尖的黑客都比不上小企业老总,甚至是没知识的个体户 2、黑客达人进 3、黑客会攻击 普通用户吗? 4、网络用语 5、有关网络用语的...
【搜狐网IT信息】中国北京时间7月3日信息,据海外新闻媒体,团购价聚合网站YipitCEO维尼休斯•瓦坎蒂(Vinicius Vacanti)今日在科技博客上发文,对近期洛基•阿格斯提(Rock...