泡沫浴字母


19

如果您的房子里有个小孩,您可能会碰到泡沫浴字母。可以将它们弄湿并粘在平整的表面上,例如瓷砖和浴室的侧面,以发出文字和信息。

词和信息的范围有一定的限制,如果你只有一组不过,因为你只能得到36个字符:大写字母AZ和数字0-9: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789。但是,您可能会狡猾并滥用某些字母和数字来形成其他字母的额外副本:

3: E
1: I
7: L (when rotated)
M: W (when rotated)
0: O
2: S (when flipped)
5: S
W: M (when rotated)
2: Z
5: Z (when flipped)
O: 0
6: 9 (when rotated)
L: 7 (when rotated)
9: 6 (when rotated)

请注意,它们并非都是双向的,因为阅读数字作为单词的一部分比阅读字母作为数字的一部分更容易。

每组还具有多种颜色,其中每个字母均按顺序进行着色。例如,如果您的套装有红色,黄色和蓝色3种颜色,则您的套装将像:

  • 红色: ADGJMPSVY147
  • 黄色: BEHKNQTWZ258
  • 蓝色: CFILORUX0369

因此,您的任务是采用三个参数(以任何合适的方式)来指示单词或短语,要使用的颜色数量以及所拥有的集合数量,然后输出该单词或短语的表示形式,一组合适的颜色,如果需要,可以使用替代颜色。如果不能使单词或短语具有指定的套数,则以适当的颜色输出“ Nope”。

例子

在所有这些中,第一个参数是单词或短语,第二个参数是颜色的数量,第三个参数是可用的集合的数量。

["bath", 3, 1]

浴

["programming", 3, 2]

程式设计

["puzzles", 3, 1]

PUZ2LES

["code golf", 5, 1]

代码G0LF

["willow tree", 1, 1]

威尔7OM TRE3

["impossible phrase", 8, 1]

不 -一组中只有1 P,没有有效的替换

笔记

  • 如果有帮助,您可以默认为1套(例如,默认参数值为1),但是如果需要,则必须支持多套。您拥有的套数将始终为正非零整数。
  • 如果有多组,则它们的着色方式都相同:如果第一组中的A为红色,第二组中的A也为红色。颜色是按组而不是给定调用中的所有组应用的
  • 您必须支持1到36种颜色-1表示所有字符都是同一颜色,36表示它们都是不同的。只有整数的颜色。
  • 您可以使用任何颜色,只要它们在视觉上是截然不同的-如果要输出到终端,则可以将前景和背景的组合用作“颜色”,尽管绝对不能对前景和背景使用相同的颜色
  • 您的输出必须使用实际使用的字符,而不是输入中的字符。例如,如果您输入[“ willow”,1,1]作为输入,则可以将WIL7OMM旋转180度来输出
  • 您应该首先使用正确的字母,然后使用替代:MI7LOW对于[“ willow”,1,1]不正确
  • 您可以使用给定字符的任何替换:SO5SO2翻转2均对“ SOS”有效
  • 对同一输入的代码多次调用不必产生相同的输出
  • 输出应为大写,但输入可以为大写和小写的任意组合
  • 应该很明显,但是空间没有颜色

规则

  • 这是代码高尔夫,但具有半图形输出(我不确定您是否可以在终端中进行翻转文本,但有兴趣查看Pyth是否内置了该功能)
  • 适用标准漏洞
  • 没有任何功能奖励,但是请投票给有趣的答案
  • 在答案中包括输出的一些屏幕截图

相关挑战


1
给定设置后如果无法输出“ NOPE”怎么办?
Rɪᴋᴇʀ

@Riker一组包含36个给定的字符。什么时候不可能输出NOPE
mypetlion

@mypetlion当没有套...
Rɪᴋᴇʀ

@Riker阅读“您拥有的套数始终是一个非零的正整数。”
mypetlion

1
泡沫浴信件是对et子说话的一个很好的介绍……
Arnauld

Answers:


1

HTML / JavaScript(使用jQuery)/ CSS-非竞争/非高尔夫

只是为了使事情顺利进行,并证明这并非不可能,这是一个非高尔夫球场,非竞争性的实现,它以幼稚的方式完成任务。

它首先tempalph通过连接尽可能多的字母副本来创建一个包含所有可能字符的字符串()。然后迭代短语,将短语的每个字母放入输出变量,并从中删除该字母的第一个实例tempalph。如果不能(字母不存在),它将检查字母是否可以用字符串中剩余的内容替换。如果仍然失败,则输出预定义的“ NOPE”输出。假设它不符合“ NOPE”的要求,它将返回输出字符串并将其放入页面的DIV中。

然后,它循环遍历基本字母字符串,如果使用了字母,则为其分配一个适当的CSS类,每个CSS类都具有预定义的颜色集。

它使用HTML输入作为输入,并更新其中的键。

JSFiddle上尝试

示例["BATH", 3, 1]

浴

JS:

var Alphabet =“ ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”;

函数getPhrase(短语,集合){
    var modphrase =“”;
  var nope ='NOPE';
  var re = / ^ [A-Z0-9] + $ /;
  如果(重新测试(短语)){
    //可能有效-需要检查是否有足够的字符
    //此时,需要专门查看需要哪些字符

    var tempalph =“”;
    为(var i = 0; i'+ char +'';
        如果(tempalph.indexOf(char)!= -1){
        tempalph = tempalph.replace(char,“#”);
      }其他{
        开关(字符){
            情况“ E”:
            如果(tempalph.indexOf(“ 3”)!= -1){
                    tempalph = tempalph.replace(“ 3”,“#”);
              modchar ='3';
                }其他{
                不回头
            }
            打破;
          情况“ I”:
            如果(tempalph.indexOf(“ 1”)!= -1){
                    tempalph = tempalph.replace(“ 1”,“#”);
              modchar ='1';
                }其他{
              不回头
            }
            打破;
          情况“ L”:
            如果(tempalph.indexOf(“ 7”)!= -1){
                    tempalph = tempalph.replace(“ 7”,“#”);
              modchar ='7';
                }其他{
              不回头
            }
            打破;
          情况“ M”:
            如果(tempalph.indexOf(“ W”)!= -1){
                    tempalph = tempalph.replace(“ W”,“#”);
              modchar ='W';
                }其他{
              不回头
            }
            打破;
          情况“ O”:
            如果(tempalph.indexOf(“ 0”)!= -1){
                    tempalph = tempalph.replace(“ 0”,“#”);
              modchar ='0';
                }其他{
              不回头
            }
            打破;
          情况“ W”:
            如果(tempalph.indexOf(“ M”)!= -1){
                    tempalph = tempalph.replace(“ M”,“#”);
              modchar ='M';
                }其他{
              不回头
            }
            打破;
          情况“ 0”:
            如果(tempalph.indexOf(“ O”)!= -1){
                    tempalph = tempalph.replace(“ O”,“#”);
              modchar ='O';
                }其他{
              不回头
            }
            打破;
          情况“ 6”:
            如果(tempalph.indexOf(“ 9”)!= -1){
                    tempalph = tempalph.replace(“ 9”,“#”);
              modchar ='9';
                }其他{
              不回头
            }
            打破;
          情况“ 7”:
            如果(tempalph.indexOf(“ L”)!= -1){
                    tempalph = tempalph.replace(“ L”,“#”);
              modchar ='L';
                }其他{
              不回头
            }
            打破;
          情况“ 9”:
            如果(tempalph.indexOf(“ 6”)!= -1){
                    tempalph = tempalph.replace(“ 6”,“#”);
              modchar ='6';
                }其他{
              不回头
            }
            打破;

          情况“ S”:
            如果(tempalph.indexOf(“ 5”)!= -1){
                    tempalph = tempalph.replace(“ 5”,“#”);
              modchar ='5';
                }否则,如果(tempalph.indexOf(“ 2”)!= -1){
                    tempalph = tempalph.replace(“ 2”,“#”);
              modchar ='2';
                }其他{
              不回头
            }
            打破;
                    情况“ Z”:
            如果(tempalph.indexOf(“ 2”)!= -1){
                    tempalph = tempalph.replace(“ 2”,“#”);
              modchar ='2';
                }否则,如果(tempalph.indexOf(“ 5”)!= -1){
                    tempalph = tempalph.replace(“ 5”,“#”);
              modchar ='5';
                }其他{
              不回头
            }
            打破;
          案件 ” ”:
            打破;
          默认:
            不回头
          }

      }
        modphrase + = modchar;
    }

    返回短语
  }其他{
    //包含其他一些字符,因此绝对无效
    不回头
  }
}

函数addColors(colcount){
  var i = 0;
  为(让字母的字符){
    exclass =“。” + char;
    newclass =“ col” + i;
    如果($(exclass).length> 0){
      $(exclass).addClass(newclass);
    }
    i ++;
    如果(i == count){
        i = 0;
    } 
  }
}


$(“#phrase,#sets,#colours”)。on(“ keyup”,function(){
    var短语= $(“#phrase”)。val()。toUpperCase();
  短语= getPhrase(短语,$(“#sets”)。val());
    $(“#output”)。html(短语);
  addColors($(“#colours”)。val());
})

HTML:

<label>短语<input type =“ text” id =“ phrase” /> </ label>
<label>颜色<input type =“ text” id =“ colours” value =“ 3” /> </ label>
<label>设置<输入类型=“文本” id =“设置”值=“ 1” /> </ label>

<div id =“ output”>

</ div>

CSS:

.col0 {颜色:#f00}
.col1 {颜色:#0f0}
.col2 {颜色:#00f}
.col3 {颜色:#66CDAA}
.col4 {颜色:#EE82EE}
.col5 {颜色:#7FFFD4}
.col6 {颜色:#7FFFD4}
.col7 {颜色:#FFDEAD}
.col8 {颜色:#D8BFD8}
.col9 {颜色:#FF6347}
.col10 {color:#8B4513}
.col11 {color:#800000}
.col12 {color:#00FFFF}
.col13 {color:#32CD32}
.col14 {color:#191970}
.col15 {color:#1E90FF}
.col16 {color:#A0522D}
.col17 {color:#808000}
.col18 {color:#DC143C}
.col19 {color:#90EE90}
.col20 {color:#D2691E}
.col21 {color:#48D1CC}
.col22 {color:#008000}
.col23 {color:#8B008B}
.col24 {color:#6495ED}
.col25 {color:#800080}
.col26 {color:#000080}
.col27 {color:#DB7093}
.col28 {color:#7FFF00}
.col29 {颜色:#00FA9A}
.col30 {color:#0000FF}
.col31 {颜色:#BC8F8F}
.col32 {颜色:#A52A2A}
.col33 {color:#4169E1}
.col34 {color:#FFFF00}
.col35 {color:#FFA07A}

.rot {display:inline-block; 变形:rotate(0.5turn);}
.flip {display:inline-block; 变换:rotateY(0.5turn);}

div {
  字体家族:sans-serif;
  字号:3em;
  背景颜色:#000;
  填充:10px;
}

我认为,根据这个(微型)元共识,应该将非认真的竞争者包括在内。
user202729 '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.