1. ๋ฌธ์
https://dreamhack.io/wargame/challenges/96
Carve Party
Description ํ ๋ก์ ํํฐ๋ฅผ ๊ธฐ๋ ํ๊ธฐ ์ํด ํธ๋ฐ์ ์ค๋นํ์ต๋๋ค! ํธ๋ฐ์ 10000๋ฒ ํด๋ฆญํ๊ณ ํ๋๊ทธ๋ฅผ ํ๋ํ์ธ์!
dreamhack.io
- ํธ๋ฐ์ 10000๋ฒ ํด๋ฆญํ๋ฉด ํ๋๊ทธ๋ฅผ ํ๋ํ ์ ์๋ค๊ณ ๋ฌธ์ ์ ์ ์๋์ด ์๋ค.
2. ํด๊ฒฐ ๊ณผ์
(1) ๋ฌธ์ ํ์ผ ๋ค์ด๋ก๋
- jack-o-lantern์ด๋ผ๋ ํ์ผ๋ช ์ html ๋ฌธ์๊ฐ ๋ณด์ธ๋ค.
- pumpkin์ ํด๋ฆญํ๋ผ๋ ๋ฌธ๊ตฌ์ ํธ๋ฐ ๊ทธ๋ฆผ, ๊ทธ ๋ฐ์๋ ํด๋ฆญ์๋งํผ ์ค์ด๋๋ ๋ฌธ์์ด์ด ๋ณด์ธ๋ค.
(2) ์ฝ๋ ํ์ธ
- F12๋ฅผ ๋๋ฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํตํด ์ฝ๋๋ฅผ ํ์ธํ๋ค.
$(function() {
$('#jack-target').click(function () {
counter += 1;
if (counter <= 10000 && counter % 100 == 0) {
for (var i = 0; i < pumpkin.length; i++) {
pumpkin[i] ^= pie;
pie = ((pie ^ 0xff) + (i * 10)) & 0xff;
}
}
make();
});
});
์ ์ด์ฟผ๋ฆฌ๋ก ๋ ํด๋ฆญ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ ์ ์๋ค.
- jack-target์ ํด๋ฆญํ ๋ ๋ง๋ค counter๋ฅผ 1์ฉ ์ฆ๊ฐ์ํจ๋ค
- counter๊ฐ 10000์ดํ์ด๊ณ , 00์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ค๋ฉด for๋ฌธ์ ์คํํ๋ค.
- 0๋ถํฐ ์์ํ์ฌ pumpkin.length๋ณด๋ค ์์ ๋๊น์ง 1์ฉ ์ฆ๊ฐํ๋ค.
for๋ฌธ ์๋๋
- pie ^ 0xff: pie์ 0xff์ XOR ์ฐ์ฐ์ pie์ ๊ฐ ๋นํธ๋ฅผ ๋ฐ์ ์ํจ๋ค.
- (i * 10): ๋ฃจํ์ ๊ฐ ๋ฐ๋ณต์์, i์ ๊ฐ์ 10์ ๊ณฑํ ๊ฐ์ XOR ์ฐ์ฐ์ ๊ฒฐ๊ณผ์ ๋ํ๋ค.
- & 0xff: ๋ง์ง๋ง์ผ๋ก, ๊ฒฐ๊ณผ๋ฅผ 0xff์ AND ์ฐ์ฐํ์ฌ ๊ฒฐ๊ณผ๊ฐ 8๋นํธ ๊ฐ์ ๋ฒ์ ๋ด์ ์๋๋ก ํ๋ค.
์ฆ, ํด๋น ์ฝ๋๋ฅผ for๋ฌธ์ผ๋ก 10000๋ฒ ๋ฐ๋ณตํ์ฌ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๊ฐ์ ๋ก ๋์์ํค๊ณ ์ถ์๋ค.
3. ์ฝ๋ ์ ๋ ฅ
[JAVASCRIPT/Jquery] ํด๋ฆญ์ด๋ฒคํธ ๊ฐ์ ๋ฐ์ (trigger())
[์ฐธ๊ณ ] https://6developer.com/6
[Javascript/Jquery] ํด๋ฆญ์ด๋ฒคํธ ๊ฐ์ ๋ฐ์ (์๋ฐ์คํฌ๋ฆฝํธ or ์ ์ด์ฟผ๋ฆฌ)
[Javascript/Jquery] ํด๋ฆญ์ด๋ฒคํธ ๊ฐ์ ๋ฐ์ (์๋ฐ์คํฌ๋ฆฝํธ or ์ ์ด์ฟผ๋ฆฌ) - ํผ๊ณคํ๋ค ๋ง๋ค๊ณ ์ถ์๊ฒ ์๊ฒผ๋ค 1. ๋ฌด์์ ๋ง๋ค๊ณ ์ถ์๋๊ฐ - ๋ฒํผ์ ํด๋ฆญํ์ง ์์๋ ํด๋ฆญ์ด๋ฒคํธ๋ฅผ ๊ฐ์ ๋ก ๋ฐ์์ํค๊ณ ์ถ์
6developer.com
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ์ ์ด์ฟผ๋ฆฌ์ ํด๋ฆญ์ด๋ฒคํธ ๊ฐ์ ๋ฐ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ๋๋ค.
$("#my-btn").trigger("click");
- ์ฆ, ํด๋ฆญ ๋์. trigger("click");
for (i = 0; i < 10000; i++){ $("#jack-target").trigger("click");}