ideas flow out of brain
Random header image... Refresh for more!

프리셀 카드배열 알고리즘

오늘 인터넷을 서핑하다가 프리셀 카드 배열 알고리즘을 찾았다! (자바스크립트 프리셀에 넣고 싶었던 기능) srand에 seed로 게임번호를 넣어서 카드 배열을 만들어내는데, C에서는 정확히 윈도우 프리셀과 똑같은 카드 배열을 만들어낸다. 하지만 자바스크립트에는 C의 srand와 같은 함수가 없고, php에 있는 srand도 C와는 다르게 작동한다.

그래서 카드 배열을 문자열로 뽑아내서 1~32000번 까지의 카드 배열을 DB에 저장한 뒤에 뽑아올까 했지만, 1~32000번만 저장해도 텍스트 파일로 대략 4메가나 나오는걸 보니 역시 php나 javascript에서 C의 srand와 같은 것을 찾아보는 것이 낫겠다는 생각이 든다. 못찾으면 DB에 저장하는 방법이라도 써봐야겠지만, 역시 찾아내는 편이 좀 더 간단히 32000번 이상의 게임번호로도 확장할수 있으니까 좋다.

윈도우 프리셀과 똑같이 만들지 않아도 된다면 지금으로써도 게임번호 선택 기능을 만들어 넣을 수 있겠지만, 아무래도 처음부터 윈도우 프리셀을 지향하면서 만들었기 때문에 내키지 않는 선택이다.

게임번호 선택 기능이 추가되면 정말로 프리셀 프로젝트를 진행 할 수 있게 된다. 1~32000번 뿐만 아니라 그 이상의 번호에 대해서도 가능하다. 그럼 정말로 풀리지 않은 번호를 랜덤하게 추출해서 플레이어에게 제시하고, 풀었을 때는 해법을 DB에 저장하면서 프리셀을 풀어나가는 프로젝트가 가능해진다. replay 기능도 가능해 진다.

가능한 것

- 현재까지 해결한 프리셀 게임수 및 게임 번호
- 현재까지 참여한 플레이어수
- 플레이어 중 가장 많은 게임에 기여한 플레이어
- 프로젝트 시작 이후 흐른 시간
- 시계열로 해결된 게임의 수
- 해결된 문제에 대한 리플레이 (이것을 이용해 abusing을 필터링?)

생각해볼 문제

- 어떻게 네트워크 이펙트를 만들어 낼 것인가?
- SETI@home 처럼 certificate을 발급?
- php나 자바스크립트로 srand를 어떻게 구현할 것인가? 또는 DB에 저장된 문자열을 이용할 것인가? (srand 소스를 보니 의외로 간단;;)

0 comments

There are no comments yet...

Kick things off by filling out the form below.

Leave a Comment