【crt的恶德】新手也能学会的pascal游戏教程——解密Winecraft
pascal吧
全部回复
仅看楼主
level 11
莫昶旭 楼主
我的贴吧不知为何找不到以前的帖子了[怒]
那我重开一个[开心]
这样就可以掩盖我九个月不更新的秘密[太开心]
哎呀是不是说漏了什么[滑稽]
废话不多说,上图[笑眼]
然后再@
2017年06月27日 03点06分 1
level 11
莫昶旭 楼主
@北方火柴 @pascal呵呵 @炎龙电脑工作室
哇,好久不来,别的你们自己想[阴险]
2017年06月27日 04点06分 2
[滑稽]
2017年06月27日 04点06分
level 11
莫昶旭 楼主
program xxx;
uses crt,dos;
type
china=string[2];
tile=record
look:china;
end;
//这个China是我用来放中文字的一个type,
//tile,顾名思义就是方块咯。
//顺带一提,record语句的正确用法
//type
// studata=record
// num:string[6];
// name:string[8];
// sex:boolean;
// s:array[1..5] of real;
// end;
// var
// student:studata;
// students:array[1..10] of studata;
//students[1].num、student.num就是string[6]类变量咯
2017年06月27日 04点06分 4
level 11
莫昶旭 楼主
var
map:array[-20..276,-20..276]of tile;
b:china;
ch:char;
a,gamename:string;
ok:Boolean;
tx:text;
ask,dx,dy,x,y,c1,c2,a1,a2,oo,luna,cheat,energy,nos,point,gmode,money,spirit,now,step,Holy:integer;
//map是这个游戏里的地图,忘了说,刚才的tile.look是地图里的每个块的外观(现在也只有外观)
//b是China字段的变量……因为两个ASCII等于一个中文字,所以一个块要两个字段即两个char
//ch……肯定有用,但我不太清楚干吗用的(认真)
//a,gamename是开始时输入名字的字符串
//ok是判别量,用来万恶的二选一
//tx暂不支持存档功能
//后面的int全是用得上的变量,我的代码特别不规范饶了我吧
2017年06月27日 04点06分 5
level 11
莫昶旭 楼主
function dr:string;
begin
textcolor(lightred);
if (ch='q') then exit('退出') else
if step<=0 then exit('体力不足') else
if spirit<=0 then exit('精神不足');
end;
//这是死亡提示,后面会有一个语句输出这个function
2017年06月27日 04点06分 6
level 11
莫昶旭 楼主
function gir:china;
begin
if gmode=1 then gir:=' ';
if gmode=2 then gir:='≈';
end;
//饶了我吧,这是切换走路和游泳时脚下放的tile的函数
//'◎'是玩家的符号
//我的思路是走路时将前方的' '换成‘◎’
//游泳时把前方的‘≈’换成‘◎’
//但这样你下水和上岸时岸边(水里)就会留下‘≈’(' ')
2017年06月27日 04点06分 7
level 15

2017年06月27日 04点06分 8
level 11
莫昶旭 楼主
function stander:china;
begin
if energy=1 then stander:=' ' else stander:='≈';
end;
function xxx:string;
var
sssss:string;
begin
assign(input,'xxx\xxx.txt');
reset(input);
readln(sssss);
close(input);
exit(sssss);
end;
//这个暂时用不着
2017年06月27日 04点06分 9
level 11
莫昶旭 楼主
//生成海洋地图的过程
procedure EnterOCmap;
begin
for c1:=-20 to 276 do
begin
for c2:=-20 to 276 do
begin
map[c1,c2].look:='▓';//先把全图变成不可破坏的方块
end;
end;
for c1:=1 to 255 do
begin
for c2:=1 to 255 do
begin
map[c1,c2].look:='≈';//再把除边界的一小块外的中心地区变成海洋☆
end;
end;
for c1:=1 to 255 do
begin
for c2:=1 to 255 do
begin
case random(30) of
15:map[c1,c2].look:='Α';
16:map[c1,c2].look:='Α';
17:map[c1,c2].look:='Α';
18:map[c1,c2].look:='Β';
19:map[c1,c2].look:='Β';
20:map[c1,c2].look:='Β';
21:map[c1,c2].look:='银';
22:map[c1,c2].look:='银';
23:map[c1,c2].look:='金';
24:map[c1,c2].look:='鲍'
end;
end;
end;//上面是随机生成的食物和钱币什么的
begin
for a1:=120 to 127 do
begin
for a2:=120 to 127 do
begin
map[a1,a2].look:='石';//这里我搞个石头矩形
end;
end;
for a1:=120 to 127 do
begin
for a2:=128 to 138 do
begin
map[a1,a2].look:=' ';
if (a1=120) or (a1=127) or (a2=128) or (a2=138) then map[a1,a2].look:='▓'
//这里是搞了个不可破坏的小屋
end;
end;
map[127,129].look:=' ';//一个可以进出小屋的门
end;
end;
2017年06月27日 04点06分 10
level 7
直接源码拿来就行了[阴险][滑稽]
2017年06月27日 04点06分 11
好啊[阴险]
2017年06月27日 04点06分
我发在下面啦[勉强]
2017年06月27日 04点06分
level 11
莫昶旭 楼主
//生成原版地图的过程
procedure EnterDSmap;
begin
for c1:=-20 to 276 do
begin
for c2:=-20 to 276 do
begin
map[c1,c2].look:='▓';//也是先全填上不可破坏块(坚决不叫基岩的说)
end;
end;
for c1:=11 to 245 do
begin
for c2:=11 to 245 do
begin
map[c1,c2].look:=' ';//中间挖空
end;
end;
for c1:=11 to 125 do//以下分为四个象限个说
begin
for c2:=11 to 125 do
begin
case random(20) of//矿山的说
0:map[c1,c2].look:='石';
1:map[c1,c2].look:='石';
2:map[c1,c2].look:='石';
3:map[c1,c2].look:='银';
4:map[c1,c2].look:='石';
5:map[c1,c2].look:='石';
6:map[c1,c2].look:='石';
7:map[c1,c2].look:='石';
8:map[c1,c2].look:='石';
9:map[c1,c2].look:='石';
10:map[c1,c2].look:='石';
11:map[c1,c2].look:='石';
12:map[c1,c2].look:='石';
13:map[c1,c2].look:='石';
14:map[c1,c2].look:='石';
15:map[c1,c2].look:='石';
16:map[c1,c2].look:='石';
17:map[c1,c2].look:='金';
18:map[c1,c2].look:='●';
19:map[c1,c2].look:='※';
end;
end;
for c2:=131 to 245 do//草地的说
begin
case random(5) of
0:map[c1,c2].look:='¥';
1:map[c1,c2].look:='果';
2:map[c1,c2].look:='Α';
3:map[c1,c2].look:='Β';
4:map[c1,c2].look:='¤';
end;
end;
for c2:=131 to 245 do
begin
if map[c1,c2].look='¥' then
begin
map[c1+1,c2+1].look:=' ';
map[c1+1,c2-1].look:=' ';
map[c1-1,c2-1].look:=' ';
map[c1-1,c2+1].look:=' ';
map[c1,c2].look:='¤';
end;
end;
end;
for c1:=131 to 245 do//海洋哦
begin
for c2:=11 to 125 do
begin
case random(20) of
0:map[c1,c2].look:='≈';
7:map[c1,c2].look:='≈';
8:map[c1,c2].look:='≈';
9:map[c1,c2].look:='×';
4:map[c1,c2].look:='≈';
5:map[c1,c2].look:='≈';
6:map[c1,c2].look:='鱼';
1:map[c1,c2].look:='鱼';
2:map[c1,c2].look:='鱼';
3:map[c1,c2].look:='鲑';
10:map[c1,c2].look:='鲑';
11:map[c1,c2].look:='鲍';
12:map[c1,c2].look:='≈';
13:map[c1,c2].look:='≈';
14:map[c1,c2].look:='×';
15:map[c1,c2].look:='≈';
16:map[c1,c2].look:='≈';
17:map[c1,c2].look:='≈';
18:map[c1,c2].look:='≈';
19:map[c1,c2].look:='≈';
end;
end;
for c2:=131 to 245 do//地雷场哟
begin
case random(20) of
0:map[c1,c2].look:='⊙';
1:map[c1,c2].look:='⊙';
2:map[c1,c2].look:='⊙';
3:map[c1,c2].look:='⊙';
4:map[c1,c2].look:='⊙';
5:map[c1,c2].look:='⊙';
6:map[c1,c2].look:='⊙';
7:map[c1,c2].look:='⊙';
8:map[c1,c2].look:='⊙';
9:map[c1,c2].look:='⊙';
10:map[c1,c2].look:='⊙';
11:map[c1,c2].look:='⊙';
12:map[c1,c2].look:='Α';
13:map[c1,c2].look:='¥';//你并不会在游戏里看到这个块……因为它是用来标记破坏的
14:map[c1,c2].look:='⊙';
15:map[c1,c2].look:='⊙';
16:map[c1,c2].look:='⊙';
17:map[c1,c2].look:='⊙';
18:map[c1,c2].look:='⊙';
19:map[c1,c2].look:='⊙';
end;
end;
for c2:=131 to 245 do
begin
if map[c1,c2].look='¥' then
begin
map[c1+1,c2+1].look:=' ';
map[c1+1,c2-1].look:=' ';
map[c1-1,c2-1].look:=' ';
map[c1-1,c2+1].look:=' ';
map[c1,c2].look:='¤';
//秘笈:由以上可见地雷'¤'的四个角都不会有方块!
end;
end;
end;
for c1:=11 to 245 do
begin
for c2:=11 to 245 do
begin
case random(10000) of
9999:map[c1,c2].look:='卍';
//'卍':稀有块……如果不刷新地图的原始地图往左走一会就可以看到
end;
end;
end;
for a1:=240 to 245 do
begin
for a2:=240 to 245 do
begin
map[a1,a2].look:='金';
if (a1=240) or (a1=255) or (a2=240) or (a2=255) then map[a1,a2].look:='石'
end;
end;
map[245,245].look:='钻';
//这玩意没什么用……你去245花多少さん值啊……
end;
2017年06月27日 04点06分 12
level 11
莫昶旭 楼主
@pascal呵呵
Winecraft的全版本日志分享地址(包括1.6版本的源码在Beta1.0+中):
链接:[无效] https://pan.baidu.com/s/1hrVFINM 密码:p7tk
2017年06月27日 04点06分 13
[滑稽]
2017年06月27日 04点06分
神秘代码来咯[滑稽]
2017年06月27日 04点06分
2017年06月27日 05点06分
level 11
莫昶旭 楼主
//旧版地图哦☆该版本不会以任何形式使用该地图
procedure Entermap;
begin
textcolor(green);
for c1:=-14 to 270 do
begin
for c2:=-14 to 270 do
begin
case random(5)of
0 or 1 or 2 or 3:begin
textcolor(Cyan);
map[c1,c2].look:='T';
end;
4:begin
case random(4) of
0:begin
map[c1,c2].look:='Z';
end;
1:begin
map[c1,c2].look:='K';
end;
2:begin
map[c1,c2].look:='P';
end;
3:begin
map[c1,c2].look:='M';
end;
end;
end;
end;
end;
end;
end;
//有兴趣可以自己调来用一下
2017年06月27日 04点06分 14
level 7
2017年06月27日 04点06分 15
level 11
莫昶旭 楼主
procedure evil;//地图黑暗化,さん值过低时发生
var
i,j:integer;
begin
for i:=1 to 255 do
begin
for j:=1 to 255 do
begin
if (map[i,j].look='≈') or (map[i,j].look='石') then map[i,j].look:='¤' else
if map[i,j].look='¤' then map[i,j].look:='★' else
if map[i,j].look='⊙' then map[i,j].look:='★';
end;
end;
end;
//你可以试着敲掉黑星星:)
2017年06月27日 04点06分 16
1 2 3 尾页