V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fox1955
V2EX  ›  开源软件

[命令行] 互动小说!命令行也可以 have 饭!

  •  1
     
  •   fox1955 · 2018-11-10 14:26:05 +08:00 · 2534 次点击
    这是一个创建于 2241 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近看了 mv shelter,心里迟迟不能平静。

    痛苦,孤寂,绝望..

    好的剧情真的可以震撼心灵!突然有了强烈的创作欲望!

    身为程序员,当然选择在命令行上跳舞,命令行上的幻想世界...互动小说!

    于是先 lu 出来了一个框架: cmd-alive(灵感源自 date a live)

    npm i -g alive
    
    // 默认打开 demo。自动从上次进度开始。
    alive
    

    命令:

    • save: 保存进度
    • restart: 重新开始

    面向小说作者( opitional )

    参考 demo(文件位置 /example/shelter)

    两种文件是必须的 .js, .ca.

    .ca:小说内容,每一节要有 label 标识. 必须包括start, end label

    .js:流程控制,js 函数, 函数名和返回值必须是 label。可以访问全局对象 ctx,用来获取当前用户输入,过去用户输入,挂载状态等等,辅助实现 game 逻辑.

    示例 : .ca:

    $start: 
    A nice day.
    
    choices:
    
    a. go to 2a.
    b. go to A LOOP.
    
    
    $2a: 
    Then?
    No choice.
    
    $loop: 
    You can't excape.
    
    $end: 
    Think you.
    

    .js

    function $start() {
      if (ctx.cur === "b") {
        return $loop;
      }
      if (ctx.cur == "a") {
        return $2a;
      }
      return $start;
    }
    
    function $2a() {
      return $end;
    }
    
    function $loop() {
      return $start;
    }
    function $end() {
      // dumb
    }
    

    repo: https://github.com/derekchuank/cmd-alive

    IOriens
        1
    IOriens  
       2018-11-10 19:43:56 +08:00
    蛮有意思的
    fox1955
        2
    fox1955  
    OP
       2018-11-10 20:45:49 +08:00 via Android
    @IOriens 重点还是内容啊。不是作家好难写
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2864 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:10 · PVG 21:10 · LAX 05:10 · JFK 08:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.