2012-02-08 5 views
2

Gild.com이라는 웹 사이트에서 사용자가 수행 할 수있는 다양한 코딩 퍼즐/문제가 있습니다. 그들은 자바 스크립트를 포함한 다양한 언어로 완성 될 수 있습니다. 자바에서 이러한 퍼즐을 푸는 데 관심이 있습니다. 그러나 다음과 같은 내용이 확실하지 않습니다.어떻게 Javascript로 코딩 퍼즐을 풀 수 있습니까?

  • 인수로 전달되어야하는 입력 파일에 액세스하려면 어떻게해야합니까?
  • 결과를 어떻게 출력해야합니까?

Javascript에 대한 나의 이해는 HTML 페이지 내에서 실행된다는 것이고 출력은 실제로 HTML에 값을 배치하고 DOM을 수정하는 등의 형태로만 수행된다는 것입니다. 그 이유는 분명하지 않습니다. 자바 스크립트를 사용하여 이러한 유형의 문제를 해결할 수 있습니다. Gild를 사용했거나 내 질문에 대한 통찰력이있는 사람이 진행 방법을 제안 할 수 있습니까?

문제의 예는 주어진 입력 파일에 양의 정수가 포함되어 있고 그 정수보다 작은 모든 소수의 합을 찾고 출력하는 것입니다.


는 편집 :는 솔루션의 일부 아래 외부 리소스를 사용하여 포함하지만 챙겨에, 나는 그들의 편집기에서 내 솔루션을 넣고 다음 그림과 같이, 그 방법으로 제출 해야하는 건가요 보여줍니다

enter image description here

즉, 내 솔루션이 Node.js 또는 기타 외부 리소스에 액세스 할 수 있다고 생각하지 않습니다.


편집 : 여기에 내가 생각하는 것으로 나타났습니다 몇 가지 흥미로운 기사를 내 질문에 대한 답되어 있습니다 :

+0

URL과 마찬가지로 파일에 대한 참조를 전달하고 파싱합니다. 로컬 참조로이 모든 작업을 수행 할 수 있습니다. – Brettski

답변

3

나는 천국이 ' Gild에 많은 시간을 할애했지만 Project Euler와 비슷한 유형의 많은 문제를 겪었습니다. 최선의 방법은 아마도 Node.js 일 것 같습니다.

익숙하지 않은 경우 Node는 기본적으로 Google의 V8 엔진에서 실행되는 서버 측 JavaScript입니다. 자신의 Mac/Windows 시스템에 설치하는 데 약 2 분이 걸립니다. 또한 매우 빠릅니다 (자바 스크립트를 고려).

그리고 당신이처럼 사용하십시오 :

var fs = require('fs'); // the filesystem module 
var contents = fs.readFileSync('theFile.txt', 'utf-8'); 
// Do stuff with the file contents... 

모든 사람 처음 두 행은을 뱉어 console.log()를 호출 바로 아래로는, 브라우저에서 쓸 것 같은 JS 수행 할 수 있습니다 후 대답.당신이 getprimes.js라는 바탕 화면에 파일에 스크립트를 작성하는 경우

그래서, 당신은 당신의 터미널을 열고 node ~/Desktop/getprimes.js이 경우

+0

예, Node.js에 대해 알고 있습니다 (실제로 사용하지는 않았습니다). 조금 더 자세히 설명해 주시겠습니까? – jbranchaud

+0

그런 다음 STDIO 항목을 사용하여 값을 출력합니까? – jbranchaud

+0

'console.log()'를 호출하여 터미널에 대한 권리를 인쇄 할 수 있습니다. –

0

(당신이 맥에있어 가정)를 입력 것 :

Mac에서
  1. , 이러한 퍼즐을 많이 할
  2. 계획,
  3. 후 $ 10
을 지불 할 용의

나는 매우 좋습니다 CodeRunner을 추천합니다. C에서 JavaScript에 이르는 다양한 언어의 런타임을 캡슐화하고 일회용 코드를 신속하게 작성하고 실행할 수 있습니다. 코드 ⌘R을 함께 해킹하면 결과가 같은 창에 바로 인쇄됩니다.

저는 CodeRunner에서 파일 기반 JavaScript를 사용하지 않았지만 kennis의 제안이 적용된다고 생각합니다. 결과를 출력하려면

console.log(...) 

간편한 파이!

+0

이 말은 흥미로 우며 확실히 확인해 보겠습니다.하지만 외부 리소스없이 간단하게 실행할 수있는 솔루션이 필요합니다. 질문에 대한 편집을 확인하십시오. – jbranchaud