더 나은 프로그래밍을 위한 코드 골프
- 코드골프는 가능한 한 적은 타수로 홀인을 겨루는 게임인 골프처럼 최대한 짧은 코드로 정해진 출력을 만들어내는 프로그래밍 게임입니다.
- 예제파일 위치 : http://www.hanbit.co.kr/exam/2167/
source.zip
- 플레이그라운드
1. jsdo.it - http://jsdo.it
2. JS Bin - http://jsbin.com
3. JSFiddle - http://jsfiddle.net
- 자바스크립트 코드골프 기법
1. 주석 삭제하기
2. 탭문자 삭제하기
3. 불필요한 공백 삭제하기
4. 불필요한 개행문자 삭제하기
5. 세미콜론 삭제하기
6. 변수명은 한 문자로 짓기
7. var 키워드 삭제하기
8. [](대괄호)를 사용하여 배열 생성하기
9. for문의 {} 삭제하기
10. 콤마를 사용하여 명령 연결하기
11. if문을 &&으로 대체하기
a == 0 && console.log("zero")
12. if else 문을 조건연산자로 바꾸기
13. 문자열의 한 문자를 첨자를 이용하여 가져오기
console.log("abcdefg"[2])
14. |0으로 소수를 정수로 변환하기
console.log(12.345[0])
15. ~~으로 부동소수점을 정수로 변환하기
console.log(~~12.345)
16. boolean을 수치연산에 사용하기
console.log(+true)
17. 0과 그 이외의 값을 boolean으로 사용하기
for(i=3;i--;) console.log(i);
18. 수치연산에서 NULL 문자를 0으로 활용하기
i="",console.log(++i);
19. 요소의 수가 하나인 배열 사용하기
i=[100]; console.log(++i)
20. 부동소수점의 0 생략하기
21. 다양한 방법으로 변수 초기화하기
i=[j=9,k=l=((m=8)/2)]
22. 함수 오브젝트를 배열 대신 사용하기
f[0] = 1;
for(var i = 1; i <=5; i++) f[i] = i * f[i - 1];
f(f[5]);
function f(a) { console.log(a); }
23. 함수의 인수를 이용하여 지역변수 초기화하기
- 코드 단축화 툴
1. 클로저 툴 - Google Developers
https://developers.google.com/closure
2. 클로저 컴파일러 - Google Project Hosting
http://github.com/google/closure-compiler/
3. 클로저 컴파일러 서비스
http://closure-compiler.appspot.com/home
- 미로 생성 알고리즘
1. 막대 쓰러뜨리기 알고리즘
2. 구멍 뚫기 알고리즘
3. 벽 늘리기 알고리즘
- 자동 미로 생성 사이트 http://crocro.com/auto_maze/
- 랜덤 알고리즘
1. 선형합동법
2. 메르센 트위스터
3. Xorshift
- 이미지 확대/축소 알고리즘
1. 최근방 이웃 보간법
2. 바이리니어 보간법
3. 바이큐빅 보간법
- 프랙탈 도형
1. 코흐 곡선
2. 시어핀스키 가스켓
3. 만델브로트 집합
- 월드맵 자동생성 http://crocro.com/html5/world_map/