易码技术论坛

 找回密码
 加入易码
搜索
12
返回列表 发新帖
楼主: 大铜板

我的一个构思——用BASIC写LAVA程序

[复制链接]
发表于 2007-8-17 15:02:15 | 显示全部楼层
当自己的一种想法被别人毫不客气的否决时,是挺难受的,但LZ要适应。有想法是好的,但在别人否决自己的想法后不爽,那就不行了。本身LZ对LAVA和BASIC的认识有限,想法不成熟也是有可能的,不要太小家子气了。
另外LZ攻击LEE的话也太直接了吧……
发表于 2007-8-17 15:11:32 | 显示全部楼层
LZ你别理LEE。。他这人就是这样的。。他说话对谁都一样的、
发表于 2007-8-17 15:52:04 | 显示全部楼层
好久没来易码了。

难得LZ一片苦心,写了这么多。虽然我也还没有学习C语言,看不懂那些转化,我只想说,不管LZ的想法有没有用,能不能实现,他这种创新的想法是非常难得的。

请恕小生试问一句:“在N(N>10)年以前,有谁会相信Lee能成为文曲星届的元老级人物呢?”

未来无法预知,为什么要否定一些还处于萌芽状态的想法?

当初Lee下决心为文曲星创造lava平台的时候应该也受到过嘲讽和批评吧。

对于LZ,我只想说一句:只要是你认为对的东西,尽管去尝试吧。看到这个帖子的时候,我就已经很佩服你了。

退一万步说,即使作者不能实现自己的想法,但我却对BASIC跟C之间的区别有了更深的了解。
发表于 2007-8-17 16:00:37 | 显示全部楼层
引用第20楼一捧米2007-08-17 14:44发表的“”:
哎……LZ别生气……创新是好的,但得看创新出来有用没?
用BASIC做LAVA,就是一句谚语——脱了XX放XX,虽然难听,但是我就这么理解的……


有道理
做无用功就不是创新!
发表于 2007-8-17 18:41:04 | 显示全部楼层
呵呵,LZ也别灰心,有创新精神就是好的,继续努力~
 楼主| 发表于 2007-8-17 21:57:48 | 显示全部楼层
谢谢大家的鼓励和安慰,我真的懂了很多,
自己的一时冲动是解决不了什么事情的!
对lee的不敬表示歉意!
以后我会把这个程序继续开发完成的,我会努力的,
不管他能不能实现!
谢谢大家!
发表于 2007-8-18 07:56:04 | 显示全部楼层
理想和现实有差距.
发表于 2007-8-18 10:22:59 | 显示全部楼层
直接学C吧
发表于 2007-8-18 10:37:31 | 显示全部楼层
建议你还是学C吧,LAVA和BASIC语法基本上没有什么联系
建议LZ做一个类似EWAYWRITER的软件还是不错的
发表于 2007-8-18 15:55:53 | 显示全部楼层
我记得在GGV有一帖“求Basic游戏转Lava的工具”
看来在LZ的引领下,此工具诞生了!?
发表于 2007-8-19 07:52:31 | 显示全部楼层
谁能教我编LAVA啊  我是一点都不会  啊
发表于 2007-8-19 14:28:13 | 显示全部楼层
那很正常
发表于 2007-8-19 19:48:04 | 显示全部楼层
引用第13楼飞蓬2007-08-17 12:35发表的“”:

那就赶快学啊~~~学C要趁早滴
为什么??
发表于 2007-8-19 19:49:13 | 显示全部楼层
引用第33楼wzacx2007-08-19 19:48发表的“”:

为什么??
有毅力学什么时候都不晚。
发表于 2007-8-19 20:21:13 | 显示全部楼层
C在计算机语言里是比较基础的,通用的了。
发表于 2007-8-19 20:23:04 | 显示全部楼层

c是最重要的语言
 楼主| 发表于 2007-8-16 18:56:25 | 显示全部楼层 |阅读模式
  这个构思很早就有了,但是一直没有公布,主要是遇到了一些问题自己不能解决,
也没有找到相关的知识,所以写出来大家出出主意。

首先用TXT文本写出一个可以正常运行的Basic程序,当然,转换过来的也可以,不过必须没有语法错误,所有变量必须声明!
修改步骤
一:行号(把所有的行号转化为lava行号)
1 基本行号
把第一个空格前的数字加一个前缀g,剩下的行号就是把换行符后面的数字加上前缀g,这样所有出现在每行第一个行号都可以变为lava行号。
例如:10 END=>g10:exit(0);
2 goto后的行号
goto 后有空格,把空格后面的数字加前缀g.
3 then后的行号
这个比较麻烦,会出现两种情况,(1)then 后紧接行号,这个和goto一样处理,(2)then 后面的 在“:”于“:”之间的纯数字加前缀g.
4 else 后的行号
同then.
5 gosub后的行号
后面讨论.
6 on ... goto ...
这个比较复杂,要拆开。应该写成if(...=1)goto XXXX;....;if(...=n)goto XXXX;
同样后面的数字也要加前缀g.
7 on ... gosub ...
后面再做处理。

注意:行号后面都要加,空格+冒号。

二:gosub函数
为什么是函数呢?这里可以把gosub子程序当作函数来处理。
处理方法:
1 gosub子程序函数化:
把gosub 后面从行号地方开始到return写成一个函数,具体方法就是把开始的行号写成函数名s+行号,例如:20 cls=>void s20()。后面的return去掉把这段程序写到{}里。
2 gosub 语句
写为 void +空格+s+行号+();
3 on ... goto ...
写为if(...=1)s行号1();...;if(...=n)s行号n();

三:变量声明
整形变量x%对应int x;
浮点对应long x;注:以后的浮点计算要用模拟函数来计算,如果不涉及浮点,可以把计算手动简化。
字符串x$=>x[255]

四:简单的语句
1 PRINT "a","b";"c";"d"
=>printf("a\nbcd\n");
PRINT "x=";x;"+y";y;a$
=>printf("x=%d+%d"%s,x,y,*a);

2 INKEY$=>getchar();
3 peek(199)=>Inkey();
4 很多语句都比较简单,这里省略。


五:复杂语句
1表达式,等号换为双等号,AND=>&&,OR=>||,NOT=>!,
<> => !=,分别作相应的转换。
例:a=(c+d)*(a=b AND NOT e)  => a=(c+d)*(a==b && !e);
2.....

其他的我已经构思完毕,处于保密不能公布。
但有一个问题一直没有弄明白,
文件读取,bas的文件读取非常混乱,每个变量都都不一样,非常的复杂,
请问有没有好的方法呢?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-4-30 00:21 , Processed in 0.015949 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表