元旦散分:看看属于自己的颜色

qiushuiwuhen 2002-12-29 11:07:12
执行以下代码,看看属于自己的颜色

<body>
<script>
document.body.bgColor=prompt("输入你的昵称(暂限英文)","qiushuiwuhen")
alert(document.body.bgColor)
</script>

只需要回复你的颜色即可:如 #0000e0
元旦散分:祝大家未年好运,事事胜意

ps.思考题:写出字符串换算颜色的算法。(规律很简单,只怕有心人)
元旦假期后结贴,看看谁的颜色好看,呵呵
...全文
31 137 打赏 收藏 转发到动态 举报
写回复
用AI写文章
137 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2003-01-04
  • 打赏
  • 举报
回复
揭贴了,谢谢大家的支持。

to llrock(百乐宝||昨夜星辰)
主要是测试数据的问题

基本上是我写的那个算法
研究分为三步:0-6,6-24,24以上

不过我少了特殊情况,

见freefalcon(心宇)的
取到第一个非0有效字符

和onestab(一刺) 的
字符串长度大于129时,取前129个字符。

你用walkingpoison(walkingpoison)的方法测试一下就知道了


他们三个写的代码都挺不错的,最后祝新年快乐,谢幕,呵呵
czp2001 2003-01-03
  • 打赏
  • 举报
回复
#c02010
whiteclude 2003-01-03
  • 打赏
  • 举报
回复
大家好闲阿,羡慕
方工 2003-01-03
  • 打赏
  • 举报
回复
my getColor3 should work well.
llrock 2003-01-03
  • 打赏
  • 举报
回复
<BR><input id=TestStr value="0123456789abcdef01" >
<BR><input id=SysResult >
<BR><input id=UserResult >
<BR><input type=button value="TEST" onclick="test()">
<SCRIPT LANGUAGE="JavaScript">
<!--
function Valid(n)
{
var result='';
switch(n)
{
case 10: result="A";break;
case 11: result="B";break;
case 12: result="C";break;
case 13: result="D";break;
case 14: result="E";break;
case 15: result="F";break;
default: result=n;
}
return result;
}
function IntToHex(n)
{
var result='';
do{
result=Valid(n%16)+result;
n=(n-n%16)/16;

}while(n!=0);
if((result.length%2)!=0)result="0"+result;
return result;
}
function GetStartPos(INT)//0~16777215之间的整数
{
var pos=0;
var ruler=0xf00000;
for(i=0;i<5;++i)
{
if((INT&ruler)!=0)
{
return pos;
}
else
{
ruler>>=4;
pos++;
}
}
pos=6;
return pos;
}

function StrToColor(CStr)
{
CStr=CStr.replace(/[^0-9a-f]/ig,"0");
var step1=Math.ceil(CStr.length/3);
var step2=step1>6?(step1-6):0;
// alert(step1+':'+step2)
var ColorArr=new Array();
ColorArr[0]=CStr.substring(step2,step1);
ColorArr[1]=CStr.substring(step1+step2,2*step1);
ColorArr[2]=CStr.substring(2*step1+step2,CStr.length-1);
var tmplen=0;

var TmpPos=new Array();
for(i=0;i<3;++i)
{
tmplen=ColorArr[i].length;
ColorArr[i]=eval("0x"+(ColorArr[i]=null?0:ColorArr[i]));
ColorArr[i]<<=(6-tmplen)*4;
}
var r_pos=GetStartPos(ColorArr[0]);
var g_pos=GetStartPos(ColorArr[1]);
var b_pos=GetStartPos(ColorArr[2]);
var pos=Math.min(r_pos,g_pos,b_pos);

var result="#";
var ruler=0;
for(i=0;i<3;++i)
{
ruler=0xff0000;
for(j=0;j<pos;++j)ruler>>=4;
tmp=ColorArr[i]&ruler;
tmp>>=(4-pos)*4;
result+=IntToHex(tmp);
}
return result;
}
//-->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--//测试脚本
function test()
{
document.body.bgColor=TestStr.value;
SysResult.value="系统颜色值:"+document.body.bgColor;
UserResult.value="用户计算值:"+StrToColor(TestStr.value);
}
//-->
</SCRIPT>
我我我,找了一天规律,还是只能得到上面的错误答案(只能满足18位的,18位以上实在找不到规律),我还是贴出来了,补贴不爽。
谁能说说是什么规律呀
llrock 2003-01-03
  • 打赏
  • 举报
回复
昏倒,怎么我就是找不到规律呢?
本来随便看看,却被秋水的帖子吸引了,浪费了1天也没找到正确答案。
天涯,凭空想象算法太难了,我要吐血了。

谁知道正确答案公布一个,好让咱死格明白。

我冤枉呀。
thinboyxp 2003-01-02
  • 打赏
  • 举报
回复
up
modou 2003-01-02
  • 打赏
  • 举报
回复
#00d000
modou

我的颜色是绿色的,充满希望的颜色
hui_feng 2003-01-02
  • 打赏
  • 举报
回复
#0000FF
cid 2003-01-02
  • 打赏
  • 举报
回复
#0ea000
wind0209 2003-01-02
  • 打赏
  • 举报
回复
#fe0000
feeling
2003年元旦,最喜庆的颜色,哈哈哈
虽然很刺眼。:(
fdehua 2003-01-02
  • 打赏
  • 举报
回复
黄色
fdehua 2003-01-02
  • 打赏
  • 举报
回复
fde00a
hndllx 2003-01-02
  • 打赏
  • 举报
回复
#0000e0
shellmark 2003-01-02
  • 打赏
  • 举报
回复
#0000A0 shellmark
皇--帝 2003-01-02
  • 打赏
  • 举报
回复
#000000
llrock 2003-01-02
  • 打赏
  • 举报
回复
上面有一个错误:blue:qiushuiwuhen&0000FF=0x00006500//e的ASCII值
================================
昏倒,找了一个小时的MSDN,没有找到JS中的方法,但我更加肯定了我上面说的正确性,因为发现JS中的字符串是 双字节的,所以你JS把你的字符串同FF0000等按位与后就是你要的颜色的整数值,然后把这个整数转换为16进制,再组合成#AABBCC的形式来表达颜色就可以了。
flbz 2003-01-02
  • 打赏
  • 举报
回复
#989898
flbz
llrock 2003-01-02
  • 打赏
  • 举报
回复
然后把RGB转换为#123456的形式就可以了。
比如
red:qiushuiwuhen&FF0000=0x00000000
green:qiushuiwuhen&00FF00=0x00000000
blue:qiushuiwuhen&0000FF=0x00000065//e的值
然后组合就可以了,我想肯定不需要通过复杂的字符串运算
llrock 2003-01-02
  • 打赏
  • 举报
回复
我想系统是通过 &和>>运算转化颜色值,我不知道js有没有可以得到某个字符串16进制的值的方法,如果有应该很简单。

比如
red=(Yourcolor&FF0000)>>16;
green=(YourColor)>>8;
blue=(YourColor&0000FF);

FF0000处为"FF0000"的ASCII值
我猜测prompt()应该是通过这种运算得到的,问题是js怎么得到字符串的值
加载更多回复(117)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧