1 <html>
2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
3 <title>Go Robot</title>
4 <style>
5 * {font:11pt Consolas,mono; color:limegreen; background:#201020; border:none}
6 </style>
7 <pre id='rawtbl'>
8 room1 - room2
9 room2 - room3 room4
10 room4 - room5 room1
11 room6 - room3
12 robot AT room1
13 robot GOTO room5
14 SHOW PATH
15 </pre>
16 <p><textarea id='txt' cols=132 rows=50></textarea></p>
17 <script>
18 nodes = {};
19 lines = rawtbl.innerHTML.split('\n');
20 for (i = 0; i < lines.length; i++) {
21 f = lines[i].split(' ');
22 f0 = f[0]; f1 = f[1];
23 s = ''
24 if (f1 == '-') {
25 s += _(f0);
26 for (j = 2; j < f.length; j++) s += _(f[j]) + f0 + '.n.push(' + f[j] + ');'
27 log(s); eval(s)
28 }
29 else if (f1 == 'AT')
30 from = eval(f[2]);
31 else if (f1 == 'GOTO')
32 to = eval(f[2]);
33 else {
34 if (!goto(from, to)) { log('no path'); break; }
35 h = [];
36 for (p = to; p != null; p = p.b) h.push(p.m);
37 h.reverse();
38 log(h.join(' >> '))
39 break;
40 }
41 }
42
43 function _(x) {
44 if (x in nodes) return '';
45 nodes[x] = 1;
46 return x + '={n:[],m:"' + x + '"};';
47 }
48
49 function goto(p, to) {
50 log('goto(' + p.m + ', ' + to.m + ')')
51 if (p == to) return true;
52 if (p.visited) return false;
53 p.visited = true;
54 for (i = 0; i < p.n.length; i++) {
55 q = p.n[i]; q.b = p;
56 if (goto(q, to)) return true;
57 }
58 return false;
59 }
60
61 function log(s) { txt.value += s + '\n' }
62 </script>

走迷宫的小程序。

Go Robot的更多相关文章

  1. Robot Framework用户手册 (版本:3.0)

    版权信息:诺基亚网络和解决中心 本翻译尊重原协议,仅用于个人学习使用 1.开始: 1.1 介绍: Robot Framework是一个基于Python的,为终端测试和验收驱动开发(ATDD)的可扩展的 ...

  2. selenium webdriver 右键另存为下载文件(结合robot and autoIt)

    首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...

  3. RIDE -- Robot Framework setup

    RobotFramework 是一款基于python 的可以实现关键字驱动和数据驱动并能够生成比较漂亮的测试报告的一款测试框架 这里使用的环境是 python-2.7.10.amd64.msi RID ...

  4. [8.2] Robot in a Grid

    Imagine a robot sitting on the upper left corner of grid with r rows and c columns. The robot can on ...

  5. Robot Framework自动化测试 ---视频与教程免费分享

    当我第一次使用Robot Framework时,我是拒绝的.我跟老大说,我拒绝其实对于习惯了代码的自由,所以讨厌这种“填表格”式的脚本.老大说,Robot Framework使用简单,类库丰富,还可以 ...

  6. robot创建桌面图标(转载)

    桌面ride图标,安装之后会自动创建(偶尔也会创建失败),创建桌面图标方法如下: 1. 新建快捷方式 在桌面右击鼠标,弹出的菜单选择 新建-快捷方式 ,然后在"请键入对象"的位置输 ...

  7. Robot Framework 的安装和配置(转载)

    Robot Framework 的安装和配置 在使用 RF(Rebot framework)的时候需要 Python 或 Jython 环境,具体可根据自己的需求来确定.本文以在有 Python 的环 ...

  8. 解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题

    最新的jenkins打开jenkins robot framework报告会提示如下 Verify that you have JavaScript enabled in your browser.  ...

  9. 在centos7中安装Robot Framework

    安装前景介绍: 最初,我们是在Windows环境下搭建Robot Framework来对我们的服务进行接口测试的(想知道如何在Windows下安装Robot Framework,可以参考我同事的博客h ...

  10. Making my own Autonomous Robot in ROS / Gazebo, Day 2: Enable the robot

    Day 2: Enable the robot Git Setting git checkout master git branch day2_enable_robot git push --set- ...

随机推荐

  1. arduino 使用 analogRead 读取不到数据,digitalRead 却可以正常读取

    项目场景: 最近在使用安信可的 ESP32S P14 引脚(ADC 16)读取一个电路状态的时候遇到一个问题,电路状态不是很稳定,在高电平的时候,会突然出现毫秒级的波动,出现短暂的低电平,造成设备状态 ...

  2. $.ajax、$.get和$.post方法成功,完成请求,错误或失败的回调

    一.$.get和$.post的不同    1.get通过url提交的,post是通过http消息实体提交的    2.get提交大小限制为2kb,post不限制    3.get提交会被缓存下来,有安 ...

  3. Pytorch中stack()方法的理解

    Torch.stack() 1. 概念 在一个新的维度上连接一个张量序列 2. 参数 tensors (sequence)需要连接的张量序列 dim (int)在第dim个维度上连接 注意输入的张量s ...

  4. Swift-Framework(一)访问资源文件

    摘要 Framework 就是在 APP 应用中的一种封装功能的表现形式,虽然不能独立运行,但是也可以在它里面存放和访问图片.语音等资源文件,可算是麻雀虽小,五脏俱全. 毕竟不是 APP 工程,所以 ...

  5. layui表格-template模板的三种用法

    问题情境: layui中将数据库数据通过layui table渲染到前端表格,非常简单,但是如果数据库存储的信息不能被直接展示,项目中该页面有好几个这样的字段,会员类型,支付类型,会员时长还有平台类型 ...

  6. Django笔记&教程 0-2 框架版本与相关工具

    Django 自学笔记兼学习教程第0章第2节-- 框架版本与相关工具 点击查看教程总目录 1 版本 python: 3.6.5 Django: 2.2.11 (有些地方我也会对比下各种版本的区别) 安 ...

  7. ajax - error

    ... <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title ...

  8. 菜鸡的Java笔记 第二十八 - java 包的定义

    包的主要作用以及定义    包的导入操作    系统常见的开发包    jar 程序命令        包的定义        在任何的操作系统之中都有一个统一的共识:同一个目录下不能够存在有相同的文 ...

  9. [hdu7023]Yet Another Matrix Problem

    关于$f(x)$的条件,将$C=A\times B$代入,即$\sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{k=1}^{r}A_{i,k}B_{k,j}=x$ 调换枚举顺序,即$ ...

  10. LifseaOS 悄然来袭,一款为云原生而生的 OS

    作者:黄韶宇.初扬 审核&校对:溪洋.海珠 编辑&排版:雯燕 LifseaOS 在刚刚过去的云栖大会上,一款新的 Linux Base 操作系统悄悄发布,它就是 LifseaOS(Li ...