마법의 디지바이스란, 본래 구글 안드로이드 Udacity 스터디의 해커톤 참여를 위해서 기획한 프로젝트로  
{{{마법의 MD5 배틀 + 디지바이스(다마고치) + 포켓몬의 전투 UI(희망사항) + 살아남아라개복치!의 메인UI}}}를 합친 게임이라고 생각하면 된다.  
git> https://github.com/ZeroPage/magical-digivice  

[[TableOfContents]]
= 기획 = 
== 캐릭터 ==
 * 현장에서 생성
  * 연속 촬영등을 활용해서 사람들 얼굴을 사진으로 담는다.
  이 사진을 캐릭터의 이미지로 활용하여 충분한 숫자의 캐릭터를 만든다.
=== 생성 ===
 * 마법의 md5
 이름을 넣으면 md5화 시켜서 임의로 캐릭터를 생성.
 md5로 부터 나오는 수치는 7가지 스탯의 초기값, 캐릭터 이미지
=== 스탯 ===
 *비전투 관련 스탯 ( 최대값 char )
  외주를 하면 감소한다.
  시간이 지나면 감소한다.
  0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
  최대값보다 커질 경우 더 이상 할 수 없다.
  * 배부름
  치킨을 먹으면 배부름 수치가 올라간다.
  * 맨탈
  맥주를 마시면 맨탈 수치가 올라간다.

 * 전투 관련 스텟 ( 최대값은 unsigned int )
  * 칰력--칰앙심-- 
  치킨을 먹으면 스탯이 올라갈 가능성이 있다.
  * 주량
  맥주를 마시면 스탯이 올라갈 가능성이 있다.
  * 코딩
  외주를 하면 스탯이 올라갈 가능성이 있다.  

 * 전투+비전투 관련 스탯 ( 최대값은 unsigned int )
   * 재력
   외주를 하면 증가한다.
   치킨을 먹거나 맥주를 마시면 감소한다.
   0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
   전투에서 지면 감소한다.
=== 육성 ===
 * 치킨먹기(30분당) : {{{재력-=5, 칰력+=rand()%1, 배부름+=10+rand()%20}}}
 * 맥주마시기(30분당) : {{{재력-=5, 주량+=rand()%1, 멘탈+=10+rand()%20}}}
 * 외주하기(30분당) : {{{재력+=10 + rand()%10, 멘탈-=rand()%5, 배고픔-=rand()%5, 코딩+=rand()%1}}}
 * 기본(30분당) : {{{배부름-=rand()%5 , 멘탈-=rand()%5}}}
 * 전투(1회당) : {{{배부름-=10, 멘탈-=10, 제력-=결과에따라}}}
== 전투 ==
=== NFC ===
 * 데이터 교환
 주량, 칰력, 코딩, 재력, rand()

 * 전투는 ( rand() + rand() ) % 3 으로 다음 3가지중 하나로 전투한다.
  * 다이다이
  주량으로 전투를 한다. 
  * 칰세권
  칰력으로 전투를 한다.
  * 코드잼
  코딩으로 전투를 한다.
 * 전투 알고리즘
   double TotalMyDmg=0, TotalUrDmg=0;
  * 매턴
   int tmp = rand();
   int myDmg = tmp % myStat;
   int urDmg = tmp % urStat;
   TotalMyDmg += myDmg;
   TotalUrDmg += urDmg;
  * 승패
   compare(TotalMyDmg,TotalUrDmg);
 * 전투 결과
 배부름-=10
 멘탈-=10
 제력-= 결과에 따라 달라진다.
=== 출력 ===
 * 다이다이

 * 칰세권

 * 코드잼
== 엔딩 ==
 * $0.99 달러에 부활 가능

== 결제 == 
 * 정식버전(WIFI, 전투로그 지원)
  본 버전은 Lite 버전입니다.
  정식 버전을 사용하려면 결제해주세요.
  계좌번호 (우리) 1002-XXX-XXXXXX $0.99
 * 부활
  계좌번호 (우리) 1002-XXX-XXXXXX $0.99
= 개발 =
== 화면 구성 ==
http://pds21.egloos.com/pds/201411/07/63/d0045863_545ba5daaeb44.jpeg

* 위쪽에는 스탯 6개를 보여줌
* 아래 버튼 4개
 * 치킨먹기, 맥주마시기, 외주하기 : 다이얼로그
 * 전투하기 : NFC , WIFI(결제창으로 이동)
== BGM ==
 * http://www.youtube.com/watch?v=woktSuBWR3U - 디지몬 butterfly
 * http://www.youtube.com/watch?v=8oWthp4_nsU - 디지몬 진화 브금
 * http://www.youtube.com/watch?v=9pYO0aHmez4 - 포켓몬 전투 브금
== 마법의 md5 ==
 *스탯과 캐릭터id(이미지)는 preference 에 저장
== 전투애니메이션 ==
 * Activity 1개로 해결
== NFC사용법 ==
 * 파일 전송 가능 (용량 제한 x)
 * Android Beam(TM)이라는 기술을 쓴다.
  * http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#p2p (레퍼런스)
  * 레퍼런스에 있는 예제코드를 복붙, 하고  Intent-filter를 붙이는 정도로 사용 가능하다.
  * 단, 단방향 전송만 가능한데다가, '송신'을 위해 사람이 손으로 터치해서 허가 해줘야 한다;
   * 이 때문에 문제가 생겼다. 
    * 본래 양방향 통신을 기대하고 만들었는데 단방향만 된다.
    * '송신' 허가를 위해 터치를 해야 한다. '수신' 허가도 아니다. 수신 허가였으면 서로 턴을 교환 하는 식으로 만들 수 있었을 텐데.
    * 게다가, 송신 허가 시점을 캐치할 수 없다. 전송 시도할때는 캐치 할수 있다. 근데 이 시점을 잡아봐야 게임 진행에 쓸모가 없다.
    * Beam 말고 Tag 상태로 작동 할 수 있는지 시도 해봤는데, 방법이 없다.
  * 기획 수정이 필요하다.
   * NFC의 이런 특징을 감수하고도 할만한 진행방식을 생각하던가
   * 아니면, 다른 근거리 통신 기술을 이용해야 한다.
----
상위: [Armdroid]