如何实现彩灯控制程序?很有趣味和挑战性 ( 积分: 200 )

  • 主题发起人 主题发起人 yyst
  • 开始时间 开始时间
Y

yyst

Unregistered / Unconfirmed
GUEST, unregistred user!
条件:1,有5盏灯:灯1,灯2,灯3,灯4,灯5。它们对应一个数组:00000;
2,程序按照事先预定的数据来控制5盏灯。
3,相邻两组数中对应位置如果相同,则不改变;不同,则为一个跳变。每一个跳变假定间隔1秒。
4,实现时,每一组数据时都只能等所有该灭的灯灭了,才能点亮该亮的灯。否则视为失败。
5,如 事先预定的数据为:00000,10110,00011,10101,01110…… ,至少实现4组数据!
[red]如何实现,就等高手出手了! [/red] [:)]
 
没人来做么? 是分太少 还是太难?
 
不是分的问题,是工作量的问题。
 
是没有挑战性
 
没有挑战性 ?
你大致说说怎么实现? 主要是第4步,要判断先来后亮有点烦,我弄了一串判断,有点繁琐,其实大部分的工作已经快做完了,只是写了近1000行,我想知道别人怎么实现,有没有更简单的方法和更高级的语法让我学习。
如果觉得还行,就结贴了
 
还不是很懂楼主需要什么,是不是这样子:
给的数据:00000,10110,00011,10101,10101....
要生成下面的数组?:
00000,10110(直接点亮,完成第二组要求);
00010(等第一第三灯灭了),
00011(再点亮第五灯,完成第三组要求),
00001(等第四灯灭了),
10101(再点亮第1、3灯,完成第四组要求)....
LZ是想要编程 实现这些中间数组,还是想要什么?
如果只是求中间数组,怎么也不用1000行啊.....
 
这个不是你抄来的作业题吧?1000行....怀疑LZ会错题意.....
不好意思啦,如果是现实中的问题,麻烦LZ详细说一下具体的情况,好学习学习。
 
http://yyst.w120a.chinanetidc.com/jibo.jpg
(不能贴图啊)
一个狂热的卡丁迷朋友叫我实现“卡丁车指法练习器”,供其提高技术,如图示:
有四个方向键和一个SHIFT键,我把它们简化成一个数组来实现的。对判断是否按下了需要的键有点麻烦,我在程序中用了太多假设和判断导致程序亢长。所以就把这一步模拟为彩灯控制,发出来了。希望大家都来做一做,分不够就说,反正我还有400分。能够从各位高手学习到东西就行
 
我操,这个世界没有天理了~~~~~ MD,老虎不发威,当我是病猫, 先骂人的倒有理了 我可是从来不主动得罪人的 谁要是欺负人,那就不客气了 明天把这个工具开个源,叫大家都来用用 请问你们有什么拿的出手的?自己写的东西? 说出来叫大爷我长长见识? 别不会是一群耍嘴皮子的废物吧? 需要的请关注我的 blog http://hi.baidu.com/earthsearch
 
晕,刚看你后面的话,没看仔细,以为你要写一个外挂呢,就写了一大堆想法想法,原来是想要写一个练习用的?
究竟是要求哪个:
1、练习用的:按键已经按下来了,采集到了,现在想判断这个组合是否合乎要求?
2、外挂:定义了一套组合按键,一组一组给放出去,中间有个时间段模拟按键时间?
如果是练习用的,建议不要实时判断。比如你的图里,练习 双喷:打个比方,规定5秒钟内做完一套组合,你就采集键盘按键5秒,每0.05采集一次,采100次,然后合并相同的,同时得到每组按键的时间段,然后每种状态去匹配正确的按键顺序或者甚至是时间段的比例,得到哪里按错的地方。
如果是做外挂,或者练习演示的,就先定义一套按键组合,也就是你说的A[x]:=(00000,10110,00011,10101,01110....)其实要加上个时间长度的T1[x]:=(1000,2000,1500,....),然后就中间插状态啦,就是你要求的B[x]:=(00000,00010,00001,00100...);同样也给个时间T2[x]=(500,500,500,500....)
A[x]+B[x] T1[x]+T2[x]就出来一个新的组合,按照这个组合去顺序播放好象就可以啊。
至于你题目的要求,就是计算B[x],这个还不简单?
(数组从1开始吧,从0开始不大直接,而且留着给你做初始化定义用)
for i:=1 to key_num-1do
b:='00000';
for i:=1 to key_num-1do
begin
for j:=1 to 5do
begin
if (a.[j]='1')and(a[i+1].[j]='1')then
b.[j]:='1'
else
b[j]:=0;
end;
end;

如果就是你要的,记得给分哦。
 
太简单了,没有一点趣味
 
前面都有人说没挑战性啦,但是LZ给不少分了啊,
我要分分分...
 
to jenhon:
你想得太简单了吧? 按你说根本不能实现准确判断哪些键先按了,哪些放了,哪些键是否多按了几次? 你根本没有实时状态的保存
分没问题 如果你觉得简单,那你按http://yyst.w120a.chinanetidc.com/jibo.jpg就简单写一下,暂时就不要求时间判断吧 分可以加
如果写好了,发给alibaba_w2003@yahoo.com.cn 只要大致实现了功能,我就给分。谢谢
 
我说的采集也是按照你定义的数字排列来判断,怎么会判断不出哪个先按,先放呢?
采集到的数组,合并后,打个比方是下面这样:
shift 左 上 右 下 时间S
0 0 0 0 0 0.1
0 0 1 1 0 0.3
0 0 1 0 0 0.2
0 1 1 0 0 0.5
....
如果按错了顺序,你得到的排列肯定不是:0000 00110 00100 01100这样的顺序,那么就可以判定按键组合失败啊。
象这种结构,难点在于不能判断分组组合,如第一个小组1、2步组成了,但是有按错的地;但第二个小组,由3、4步组成,他没按错,这时候就没办法判断出来,只是给个全错。
要实现,除非进一步限定了强制组合合并.....
都已经讨论到你的问题之外了,你问的问题好象是问中间数组的产生哦,都已经写了啊,你判断得出判断不出好象你没问哦。
另外,别用这样的语气来讨论问题,为了那点分数就要给你写一个完整的程序?况且我未必能实现你想要的功能,这个跟你问的问题是两回事。
学习学习而已。
 
很无聊的程序.
 
给分了 谢了各位 累~~~
 
晕死,就这样结了?
给我个源程序,学习学习好吗?
多个人多种想法。
jenhon@tom.com
 
后退
顶部