HTML / 자바 스크립트 (jQuery 포함) / CSS-비경쟁 / 골프가 아님
공을 굴려서 불가능하지 않다는 것을 보여주기 위해, 목표에 순진한 접근 방식을 취하는 골프가 아닌 경쟁이 아닌 구현이 있습니다.
먼저 tempalph세트가있는만큼의 알파벳 사본을 결합 하여 가능한 모든 문자 ( ) 의 문자열을 만듭니다 . 그런 다음 구를 반복하여 구의 각 문자를 출력 변수에 넣고에서 해당 문자의 첫 번째 인스턴스를 비 웁니다 tempalph. 문자가 존재하지 않으면 문자가 문자열에 남아있는 문자로 대체 가능한지 확인합니다. 또한 실패하면 미리 정의 된 "NOPE"출력을 출력합니다. "NOPE"케이스에 맞지 않는다고 가정하면 출력 문자열을 리턴하여 페이지의 DIV에 넣습니다.
그런 다음 기본 알파벳 문자열을 반복하고 문자가 사용 된 경우 사전 정의 된 색상 세트가있는 적절한 CSS 클래스를 지정합니다.
입력을 위해 HTML 입력을 사용하고 입력시 키업을 업데이트합니다.
JSFiddle 에서 사용해보십시오
예 ["BATH", 3, 1]:

JS :
var 알파벳 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
getPhrase 함수 (구문, 세트) {
var modphrase = "";
var nope = 'NOPE';
var re = / ^ [A-Z0-9] + $ /;
if (re.test (phrase)) {
// 유효 할 수 있음-사용 가능한 문자가 충분한 지 확인해야합니다.
//이 시점에서 어떤 문자가 필요한지 구체적으로 살펴 봐야합니다.
var tempalph = "";
for (var i = 0; i '+ char +' ';
if (tempalph.indexOf (char)! = -1) {
tempalph = tempalph.replace (char, "#");
} else {
스위치 (char) {
사례 "E":
if (tempalph.indexOf ( "3")! = -1) {
tempalph = tempalph.replace ( "3", "#");
modchar = '3';
} else {
돌아올 수 없다.
}
단절;
사례 "I":
if (tempalph.indexOf ( "1")! = -1) {
tempalph = tempalph.replace ( "1", "#");
modchar = '1';
} else {
돌아올 수 없다.
}
단절;
사례 "L":
if (tempalph.indexOf ( "7")! = -1) {
tempalph = tempalph.replace ( "7", "#");
modchar = '7';
} else {
돌아올 수 없다.
}
단절;
"M"사례 :
if (tempalph.indexOf ( "W")! = -1) {
tempalph = tempalph.replace ( "W", "#");
modchar = 'W';
} else {
돌아올 수 없다.
}
단절;
사례 "O":
if (tempalph.indexOf ( "0")! = -1) {
tempalph = tempalph.replace ( "0", "#");
modchar = '0';
} else {
돌아올 수 없다.
}
단절;
사례 "W":
if (tempalph.indexOf ( "M")! = -1) {
tempalph = tempalph.replace ( "M", "#");
modchar = 'M';
} else {
돌아올 수 없다.
}
단절;
사례 "0":
if (tempalph.indexOf ( "O")! = -1) {
tempalph = tempalph.replace ( "O", "#");
modchar = 'O';
} else {
돌아올 수 없다.
}
단절;
사례 "6":
if (tempalph.indexOf ( "9")! = -1) {
tempalph = tempalph.replace ( "9", "#");
modchar = '9';
} else {
돌아올 수 없다.
}
단절;
사례 "7":
if (tempalph.indexOf ( "L")! = -1) {
tempalph = tempalph.replace ( "L", "#");
modchar = 'L';
} else {
돌아올 수 없다.
}
단절;
사례 "9":
if (tempalph.indexOf ( "6")! = -1) {
tempalph = tempalph.replace ( "6", "#");
modchar = '6';
} else {
돌아올 수 없다.
}
단절;
사례 "S":
if (tempalph.indexOf ( "5")! = -1) {
tempalph = tempalph.replace ( "5", "#");
modchar = '5';
} 그렇지 않으면 (tempalph.indexOf ( "2")! = -1) {
tempalph = tempalph.replace ( "2", "#");
modchar = '2';
} else {
돌아올 수 없다.
}
단절;
사례 "Z":
if (tempalph.indexOf ( "2")! = -1) {
tempalph = tempalph.replace ( "2", "#");
modchar = '2';
} 그렇지 않으면 (tempalph.indexOf ( "5")! = -1) {
tempalph = tempalph.replace ( "5", "#");
modchar = '5';
} else {
돌아올 수 없다.
}
단절;
사례 "":
단절;
기본:
돌아올 수 없다.
}
}
모드 프레이즈 + = modchar;
}
리턴 모드 프레이즈;
} else {
// 다른 문자가 포함되어 있으므로 유효하지 않습니다.
돌아올 수 없다.
}
}
addColors (colcount) 함수 {
var i = 0;
(알파벳 문자) {
exclass = "."+ char;
newclass = "콜"+ i;
if ($ (exclass) .length> 0) {
$ (exclass) .addClass (newclass);
}
i ++;
if (i == colcount) {
i = 0;
}
}
}
$ ( "# phrase, # sets, # colours"). on ( "keyup", function () {
var phrase = $ ( "# 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> 세트 <input type = "text"id = "sets"value = "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 {색상 : # 8B4513}
.col11 {색상 : # 800000}
.col12 {색상 : # 00FFFF}
.col13 {색상 : # 32CD32}
.col14 {색상 : # 191970}
.col15 {색상 : # 1E90FF}
.col16 {색상 : # A0522D}
.col17 {색상 : # 808000}
.col18 {색상 : # DC143C}
.col19 {색상 : # 90EE90}
.col20 {색상 : # D2691E}
.col21 {색상 : # 48D1CC}
.col22 {색상 : # 008000}
.col23 {색상 : # 8B008B}
.col24 {색상 : # 6495ED}
.col25 {색상 : # 800080}
.col26 {색상 : # 000080}
.col27 {색상 : # DB7093}
.col28 {색상 : # 7FFF00}
.col29 {색상 : # 00FA9A}
.col30 {색상 : # 0000FF}
.col31 {색상 : # BC8F8F}
.col32 {색상 : # A52A2A}
.col33 {색상 : # 4169E1}
.col34 {색상 : # FFFF00}
.col35 {색상 : # FFA07A}
.rot {표시 : 인라인 블록; 변환 : 회전 (0.5 회전);}
.flip {표시 : 인라인 블록; 변환 : rotateY (0.5turn);}
div {
폰트 패밀리 : sans-serif;
글꼴 크기 : 3em;
배경색 : # 000;
패딩 : 10px;
}