Coding/Java 삽질기2020. 1. 23. 23:30

Android 제비뽑기 앱 만들기 (II)

간만에 마음에 여유가 생겨, 앱을 약간 수정하였습니다. ^^

결과물 
Source code:  https://github.com/chobocho/choose_one 
Play store:  https://play.google.com/store/apps/details?id=com.chobocho.chooseone 

앱의 목적 
  
2명이상의 사용자들 중 한 명을 뽑아 준다 (사다리 타기) 
  
사용 예:  커피 쏘기 
앱의 기본 동작 설계

 

앱의 요구 사항 분석 
  
앱을 실행 후 2명 이상이 화면에 손가락을 올리면, 3초 뒤에 한 명을 선택해 준다 
손가락을 올려 둔 상태에서 3초 안에 손가락을 떼거나, 추가하면 다시 3초를 센다 
손가락을 올려 둔 상태에서 3초 안에 손가락을 모두 떼면, 동작을 멈춘다 
60초 동안 아무도 손가락을 올리지 않으면 자동으로 앱이 종료 된다

  
기초 설계
 
앱의 동작을 위하여 내부적으로 IDLE, SELECTING, SELECTED 3개의 State를 가지는 State machie 을 구상하였다.
State의 변화는 아래와 같다. (편의 상 시간의 변화를 tick이란 단어로 표시했다.)

Posted by chobocho
Coding/Python 삽질기2020. 1. 16. 00:08

Minim은 간단한 메모 관리 앱니다.

어떻게 만들었나: https://chobocho.tistory.com/2461418

 

Posted by chobocho
Coding/JavsScript 삽질기2020. 1. 13. 01:04

소개 https://chobocho.tistory.com/2461396
실행하기 http://www.chobocho.com/javascript/painter.html
전체 소스코드 https://github.com/chobocho/painter

 

chobocho/painter

Painter written html5. Contribute to chobocho/painter development by creating an account on GitHub.

github.com

9.1 Undo/Redo 기능 구현

Undo/Redo 기능을 구현하기 위해서는 모든 사용자의 동작을 저장해야 합니다

그럼 사용자의 동작을 저장하기 위해서, 선을 그리거나, 원을 그리는 동작을

아래와 같이 커맨드로 정의 해야 합니다.

마우스로 그린 그림

color red 
color lightblue 
rect 8 6 713 356 F 
color white 
ellipse 190 116 93 44 F 
ellipse 456 115 87 42 F 
color black 
ellipse 226 116 31 31 F 
ellipse 489 113 29 30 F 
ellipse 420 277 0 0 F 

그리고 그 커맨드를 stack에 저장합니다.

 

Posted by chobocho

소개 https://chobocho.tistory.com/2461396
실행하기 http://www.chobocho.com/javascript/painter.html
전체 소스코드 https://github.com/chobocho/painter

8.1 저장하기

painter.html에 save를 위한 버튼을 추가 합니다.

<div>
  <a id="saveImage" download="image.png">
      <INPUT type="button" value="Save" onClick="saveImage()" />
  </a>
</div>

그리고, painter.js에 saveImage()함수를 추가합니다.

function saveImage() {
  console.log("saveImage()");
  var imageName = document.getElementById("title").value;
  console.log(imageName.lenght);
  if (imageName.length == 0) {
    imageName = "image";
  }
  imageName += ".png";
  var savedImage = document.getElementById("saveImage");
  var image = document
    .getElementById("canvas")
    .toDataURL("image/png")
    .replace("image/png", "image/octet-stream");
  savedImage.setAttribute("download", imageName);
  savedImage.setAttribute("href", image);
}

여기 까지 소스코드는 아래 링크를 참고 하시면 됩니다.

https://github.com/chobocho/painter/commit/dceabd6f3ace4d39e21260d593dc55a2d15e47df

Posted by chobocho