超好玩!BI工具几行代码就可搞定游戏开发!

随着大数据分析应用不断发展

BI已经渗透到各行各业

而提到BI工具能做什么

大家首先想到的肯定是这样的分析报告

这样的炫酷大屏

还有中国式复杂报表

或者移动端报告

BI经常用来做大数据分析,处理TB、PB级数据秒级响应。可是,你能想到吗?BI工具居然可以做游戏。让我们来欣赏一下这一款经典重置版游戏,它就是YonghongBI版贪吃蛇。

有没有迫不及待想玩一把,下面就跟随我们先来体验一下。

这次发挥不佳,重来一次。

好吧,说了这么多,玩了这么多,这款游戏是怎么用BI工具做出来的呢?这一切要归功于YonghongBI支持强大的JS脚本,基于JS脚本可以做到很多复杂功能,达到超出预期的体验效果。让我们看一下YonghongBI版贪吃蛇写了多少代码。

对,只用了这么多代码就完成了一个游戏开发。如果你还是觉得代码太多了,没问题。YonghongBI的函数都可以支持封装,常用的函数封装好之后分析人员只需要去调用就行,所以只需要调用一行代码就可以了。

那YonghongBI的JS脚本是怎么用的呢?在制作报告页面,点击【更多】-【脚本】,这样就进入编辑页面了。

进入编辑页面后,脚本分为装载时运行和变化时运行,装载时运行是报表打开时执行,而变化时运行则是报表页面有变化才执行。

这里需要说的是,许多仪表盘环境需要动态定制仪表盘和实现自定义业务逻辑。这些需求包含从创建查询字段到建立脚本查询,从修改文本颜色到控制用户交互行为,从添加计算器到控制表格渲染等。而YonghongZ-Suite有一套完整的脚本环境体系,以支持用户的各种动态需求。脚本体系是YonghongZ-Suite 产品中使用面较广的功能, 可以让用户自己定制化一些高级需求, 这也是决定产品是否强大的一个重要模块。脚本系统是通过javascript的语言标准来支持的,脚本环境可以完全访问组件的绑定、属性以及数据的输入。可以在仪表盘初始化的时候执行任务,处理用户交互行为。

不仅如此,YonghongBI强大的脚本还可以实现多种动态效果,例如提示框的轮播。

看了这么多,想不想自己玩一下呢。关注我们的官方微信【永洪科技】,回复关键词【贪吃蛇】,即可获得贪吃蛇原版Demo,下载后自行安装,就可以感受YonghongBI脚本强大的魅力了。

目前,永洪科技发布的国内首款自主研发的桌面智能数据分析工具——Yonghong Desktop,已经上线。

附YonghongBI版贪吃蛇游戏代码:

if(param['times']==1){ //控制第一次进入报表不执行动态操作

param['pause']='f'

param['start']='f'

param['times']+=1

组1.visible = false

}

score.data = param['score'] //得分文本框显示实时分数值

high_score.data=param['high_score'] //最高分文本框显示最高分数值

var color = new Color(6,169,190) //定义蛇身蓝色

color_str = toString(color)

var color2 = new Color(java.awt.Color.WHITE) //定义其他区域白色

var color3 = new Color(java.awt.Color.RED) //定义食物点为红色

var c3 = ''+param['eat_j']+','+param['eat_i']

var loc3 = new Locator([c3],CELL,DETAIL);

table1.setBackground(loc3,color3);

if(param['restart']=='y'||param['restart']=='n'){

snake = param['snake'].split('|')

for(i=0;i

c = snake[i]

loc = new Locator([c],CELL,DETAIL);

table1.setBackground(loc,color2)

}

var c3 = ''+param['eat_j']+','+param['eat_i']

var loc3 = new Locator([c3],CELL,DETAIL);

table1.setBackground(loc3,color2);

param['eat_i']=7

param['eat_j']=7

param['snake']='0,0'

param['i']=0

param['j']=0

}

if(param['restart']=='y'){

param['score']=0

param['start']='t'

}

if(param['restart']=='n'){

param['score']=0

param['start']='f'

}

param['restart']=null

if(param['start']=='t'){ //主程序

snake = param['snake'].split('|')

if(param['direct']=='r'){

param['i']+=1

}

if(param['direct']=='l'){

param['i']-=1

}

if(param['direct']=='d'){

param['j']+=1

}

if(param['direct']=='u'){

param['j']-=1

}

var c = ""+ param['j']+','+param['i'];

var loc = new Locator([c],CELL,DETAIL)

flag = false

//判断蛇有没有撞到自己,循环版

/* for(i=0;i

if(c===snake[i]){

flag=true

}

} */

//判断蛇有没有撞到自己优化:判断前方位置背景颜色是不是蛇身颜色

color_str2 = toString(table1.getBackground(loc))

if(color_str==color_str2){

flag = true

}

//如果i/j超限制,或撞到自己 则失败

if(param['i']>14||param['j']>14||param['i']

{

组1.visible = true

param['start']='f'

param['pause']='f'

if(param['high_score']

param['high_score']=param['score']

}

}

else

{

//var loc = new Locator([c],CELL,DETAIL)

table1.setBackground(loc,color)

lastone = snake.shift()

var last_loc = new Locator([lastone],CELL,DETAIL)

table1.setBackground(last_loc,color2)

if(param['i']==param['eat_i']&¶m['j']==param['eat_j']){

param['score']+=1

snake.unshift('-1,-1') //加入一个无效位置,不消掉吃的点位,制造延长蛇身的效果

//取一个新的食物点位,用背景色字符串,循环保证点位不出现在蛇身上

while (true) {

param['eat_i']=randbetween(0,15)

param['eat_j']=randbetween(0,15)

eat_point = ''+param['eat_j']+','+param['eat_i']

loc_eat = new Locator([eat_point],CELL,DETAIL)

eat_backgroud_str = toString(table1.getBackground(loc_eat))

if(eat_backgroud_str != color_str){

break

}

}

}

snake.push(c)

param['snake']=snake.join('|')

}

}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191203A06UA000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券