Tip/Android2026. 1. 4. 12:06

Gemini를 이용하여 메모리 게임을 만들어 보았다. (Pro 모드)

이미지 리소스는 기존에 만들어 둔것을 이용하도록 요청 하였다.

1. 사용 프롬프트


- 1차 -
1. 1인용 같은 그림 찾기 게임을 만들어줘
2. 보드는 녹색으로 해주세요
3. 1부터 100단계 레벨을 만들어 주세요.
4. 레벨별로 타임제한과 표시되는 카드수가 다르게 해주세요
5. 진행한 레벨을 브라우저의 디비에 저장해서 이어하기 기능을 지원해 주세요.
6. F2키를 누르면, 게임 중이면 진짜 중지 할꺼냐고 물어보고 새 게임을 시작하게 해주세요.
7. 바닐라 자바스크립트로 짜주세요.
8. 카드 이미지는 assets폴더에 있고 모두 PNG 파일입니다.
9. 카드 이미지 이름은 다음과 같습니다
- 배경: back
- 스페이드: S2 - S10, SJ, SQ, SK, SA
- 다이아: D2 - D10, DJ, DQ, DK, DA
- 하트: H2 - H10, HJ, HQ, HK, HA
- 클로버: C2 - C10, CJ, CQ, CK
10. 마우스와 터치패드도 지원하게 해주세요


- 2차 -
1. 마우스 첫 클릭이 씹히는 버그가 있어요. 고쳐주세요.
2. 카드 클릭 및 뒤집 힐 때, 게임 성공시 사운드 이펙트를 넣어주세요.
3. 배경음악을 넣어 주세요


- 3차 -
1. 시간을 BAR 형태로도 같이 표시해주세요. 시간이 5초 이내가 되면 빨간 색 으로 변화를 주세요
2. 일시 정지 버튼을 만들어 주세요


- 4차 -
1. 게임이 종료하고 다음 판으로 넘어가면 시작 버튼을 눌러야 시작하게 바꿔주세요


- 5차 - 
1. 내가 bgm 파일은 지웠어
2. mp3 파일 로딩 부분은 손대지 말아줘 (내가 로직을 변경했어)
3. 재시작을 마우스 클릭으로 할 수 있게 해주세요.

 

2. 게임 해보기

http://chobocho.com/game/memory/index.html

 

솔로 메모리 게임

PAUSED 게임이 일시 정지되었습니다. 게임 재개

chobocho.com

 

3. 소스코드

 

https://github.com/chobocho?tab=repositories

 

chobocho - Overview

chobocho has 109 repositories available. Follow their code on GitHub.

github.com

 

Posted by chobocho
Coding/JavsScript 삽질기2022. 9. 19. 00:58
Coding/JavsScript 삽질기2022. 8. 25. 00:03

Javascript로 만든 계산기 입니다.

Chobocho's Simple Calculator
View
MR M+ M- MC

 

Posted by chobocho
Coding/JavsScript 삽질기2021. 2. 13. 15:38

Youtube에서 3D 프로그래밍 관련 괜찮은 자료가 있어서 정리를 해 둡니다.

"高校数学とJavaScriptだけ。FPSの作り方 #1【ゲームプログラミング】【ゲーム開発】"

라는 제목의 강의 입니다. 강의 내용을 압축해 두어서, 생략이 많네요;;;

youtu.be/Mtf4rz9UEQo

 

youtu.be/aj1oBvY_LWw

 

youtu.be/34uAtYSirWk

 

Posted by chobocho
Coding/JavsScript 삽질기2019. 12. 17. 00:22

소개 (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

6.1 원 그리기

원을 그리는 함수를 추가합니다.

circle = new Shape("Circle");
circle.mouseAction = new MouseAction(circleMouseUp, circleMouseDown, circleMouseMove);
function circleMouseDown(event) {
  console.log("circleMouseDown");
  if (painter.isDraw()) {
    return;
  }
  bufCtx.drawImage(canvas, 0, 0);
  var startPos = getMousePosition(event);
  painter.shape.point.x = startPos.X;
  painter.shape.point.y = startPos.Y;
  painter.setDrawMode(true);
}

function circleMouseMove(event) {
  if (!painter.isDraw()) {
    return;
  }
  var currentPos = getMousePosition(event);
  cvs.beginPath();
  // Need a delay
  cvs.clearRect(0, 0, canvas.width, canvas.height);
  cvs.drawImage(bufCanvas, 0, 0);

  cvs.strokeStyle = painter.getColor();

  var circle = {
    X: Math.round((painter.shape.point.x + currentPos.X) / 2),
    Y: Math.round((painter.shape.point.y + currentPos.Y) / 2),
    R: Math.round(Math.abs(currentPos.Y - painter.shape.point.y) / 2)
  };
  cvs.arc(circle.X, circle.Y, circle.R, 0, Math.PI * 2);
  cvs.closePath();
  cvs.stroke();
}

function circleMouseUp(event) {
  if (!painter.isDraw()) {
    return;
  }

  var currentPos = getMousePosition(event);
  bufCtx.beginPath();
  bufCtx.strokeStyle = painter.getColor();

  var circle = {
    X: Math.round((painter.shape.point.x + currentPos.X) / 2),
    Y: Math.round((painter.shape.point.y + currentPos.Y) / 2),
    R: Math.round(Math.abs(currentPos.Y - painter.shape.point.y) / 2)
  };
  bufCtx.arc(circle.X, circle.Y, circle.R, 0, Math.PI * 2);
  bufCtx.closePath();
  bufCtx.stroke();

  cvs.clearRect(0, 0, canvas.width, canvas.height);
  cvs.drawImage(bufCanvas, 0, 0);

  painter.setDrawMode(false);
}

 

6.2 도형의 선택

원과 선을 선택 할 수 있도록 html 파일에 함수를 연결 합니다.

[paint.js]

function selectShape(choosedShape) {
  console.log("selectShape:" + choosedShape);
  painter.setShape(choosedShape);
}

Painter 객체에 선, 원을 tools라는 자료형에 추가를 합니다.

Painter.prototype.init = function () {
  line = new Shape("Line");
  line.mouseAction = new MouseAction(lineMouseUp, lineMouseDown, lineMouseMove);
  this.tools[line.name] = line;

  circle = new Shape("Circle");
  circle.mouseAction = new MouseAction(circleMouseUp, circleMouseDown, circleMouseMove);
  this.tools[circle.name] = circle;

  this.shape = this.tools["Line"];
  this.color = "black";
}
function onLoadPage() {
  
  // ...

  painter = new Painter();
  painter.init();
}

6.3 기타 수정 사항

color 값은 모든 도형이 공통적으로 사용하므로,
shape 에서 painter 객체로 이동을 합니다.

Painter.prototype.init = function () {
  // ...
  this.color = "black";
}

 

여기까지 소스코드:

https://github.com/chobocho/painter/tree/master/doc/tutorial/006/src

 

chobocho/painter

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

github.com

 

공감과 댓글은 큰 도움이 됩니다.

Posted by chobocho
Coding/JavsScript 삽질기2019. 11. 12. 09:20

https://github.com/chobocho/painter/blob/master/doc/tutorial/001/001.md


Javascript로 그림판 만들기 001
 
모든 프로그래밍의 시작은 요구사항 분석 입니다.
UML 툴을 이용하여 머릿속에 존재하는 그림판의 요구사항을 정리해 봅니다
 
 
요구사항이 정리 되었으면, 만들고자 하는 그림판의 모습을 먼저 그려 봅니다.
 
 
 

 

Posted by chobocho
Coding/JavsScript 삽질기2011. 11. 15. 00:35
ChoboMemo!

[ 글자수 세기 ]

Count

0 / 0

Text

'Coding > JavsScript 삽질기' 카테고리의 다른 글

Chobocho Calc 1  (1) 2016.04.23
Google chart API를 이용한 QR CODE 생성기  (3) 2010.11.30
Hex2Ascii Javascript code  (0) 2010.06.15
Posted by chobocho