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. 高频面试题:一张图彻底搞懂Spring循环依赖

    1 什么是循环依赖? 如下图所示: BeanA类依赖了BeanB类,同时BeanB类又依赖了BeanA类.这种依赖关系形成了一个闭环,我们把这种依赖关系就称之为循环依赖.同理,再如下图的情况: 上图中 ...

  2. 编译内核错误:Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373

    最近在编译一个新的rk sdk的时候,编译内核报错 CHK include/linux/version.h CHK include/generated/utsrelease.h make[1]: 'i ...

  3. python write() argument must be str, not bytes

    python pickle from __future__ import absolute_import from __future__ import division from __future__ ...

  4. linux 内核修炼之道——系统调用

    1.问:什么是系统调用? 用户应用程序访问并使用内核所提供的各种服务的途径即是系统调用,也称系统调用接口层. 2.问:为什么需要系统调用? ① 系统调用作为内核和应用程序之间的中间层,扮演了一个桥梁角 ...

  5. IDEA升级开源框架

    在开发过程中,我们经常会用到一些 GitHub或者Gitee上的开源框架来快速搭建我们的业务系统,但是当框架被我们大批量修改后,开源框架又有升级了.这时候升级框架就变得很麻烦,也不能直接直接进行合并, ...

  6. Django笔记&教程 3-1 模板(Template)基础

    Django 自学笔记兼学习教程第3章第1节--模板(Template)基础 点击查看教程总目录 1 介绍 模板文件:让Django能够自动生成html代码 作为一个web框架,Django需要需要在 ...

  7. JDBC连接MySQL数据库代码

    ******************************************************1********************************************* ...

  8. vite2 + vite.config.js 比较坑的环境变量,vite2模式的使用

    想在vite.config.js 里面判断一下环境,看看是不是开发环境,查了一下官网(https://cn.vitejs.dev/guide/env-and-mode.html),说是 可以使用 im ...

  9. [loj3031]聚会

    对于一棵树(初始仅包含节点0),不断加入一个不在树中的节点$u$(不需要随机),并维护这棵树 具体的,对这棵树点分治,假设当前重心$v$有$d$个子树,假设其中第$i$个子树根为$r_{i}$,子树大 ...

  10. 【HTML】标签

    HTML标签 2020-09-08  15:37:37  by冲冲 1. 标签 <!DOCTYPE html> <html> <head> <meta cha ...