Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3주차 기본 과제] 🌼 몰티즈를 찾아라 💖 #9

Open
wants to merge 34 commits into
base: main
Choose a base branch
from

Conversation

urjimyu
Copy link
Contributor

@urjimyu urjimyu commented May 5, 2023

✨ 구현 기능 명세

😔에러 때문에 잘 구현되었는지 확인이 불가해서 시도한 부분만 체크했습니다

  • 기본 과제

✅ 게임 난이도 선택

    1. 난이도의 종류
  • 1. easy → 10개 :: 5쌍 맞추기
  • 2. normal → 14개 :: 7쌍 맞추기
  • 3. hard → 18개 :: 9쌍 맞추기
  • 2. 난이도 중간에 바꿀시, 카드 모두 뒤집어서 처음으로 돌아가기

✅ 정답 수 노출

  • 1. (현재 나의 스코어) / 전체 정답 으로 상단에 노출

✅ 카드 선택

  • 1. 2개의 카드를 선택하면 다른 카드는 선택할 수 없습니다.
  1. 해당 카드의 일치 여부를 조사
    1. 정답일 경우
  • 1. 정답 스코어 증가

  • 2. 카드 뒤집힌 채로 유지

    1. 오답일 경우
  • 1. 카드 다시 뒷면으로 돌리기

✅ 카드 배열 순서

  • 1. 카드가 배열되는 순서는 반드시 랜덤으로 지정
  • 2. 난이도에 따라 지정되는 쌍도 랜덤으로 지정

🌼 PR Point

  • 현재 아래 삼항연산자 부분 때문에 리렌더링이 계속되는 문제로 인해 화면을 확인할 수 없습니다. 처음에는 버튼 각각에 클릭이벤트로 넣어주는 식으로 하다가 더 깔끔하게 해보겠다고 이것 저것 바꿔봤는데 오히려 이상해진 것 같아요.
	// 선택한 레벨에 맞는 카드 개수 지정
	level === "EASY"
		? setCardNum(5)
		: level === "NORMAL"
		? setCardNum(7)
		: setCardNum(9);
  • 현재 카드를 선택했을 때 뒤집어지면서 보여지는 부분 + 정답인지 확인해서 정답리스트에 넣는 부분 등 중요한 부분들이 구현되지 않았습니다.
  • 마음이 급하다고 제대로 틀을 짜지 않고 코드부터 작성하는 일은 이제 정말 그만... 반성중입니다😔
  • 어떤 기준으로 쪼개서 만드는 게 좋은지 헷갈리면서 점점 꼬였던 것 같아요. 특히 props drilling의 문제를 체감할 수 있었습니다..

🥺 소요 시간, 어려웠던 점

  • 아마도 15시간 이상..? 리액트에 대해 좀 더 복습하고 과제를 시작했으면 나았을 것 같다고 생각했습니다.

🌈 구현 결과물

  • 리팩토링 후에 올리겠습니다😢

urjimyu and others added 30 commits May 4, 2023 04:00
Copy link
Member

@eunbeann eunbeann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

호딱 리펙토링해서 완성된 춘식이 카드 보고시푸요!!! 곰방 잘 완성할 것 같은데?! 졸전땜에 바쁜데 고생이 많아잉 ㅠㅠ

@@ -0,0 +1,16 @@
module.exports = {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

옹 언니 이런 과제에도 eslint 적용했구나!! 야무져잉

Comment on lines +6 to +8
<>
<MainPage />
</>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

언니 인덴트 설정 볼 때 마다 신기하네..

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ㅋㅋㅋ저거 잘못된 거 나중에 알았음ㅠ

<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React</title>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

타이틀 바꿔줘잉 ~~

<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React</title>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

타이틀 바꿔줘잉~~~ ❤️

return (
<>
<MainPage />
</>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

언니 인덴트 볼 떄 마다 신기해..

return (
<StyledLevelButton
type="button"
isClick={isClick}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 코드 혹시 무슨 기능을 하는 것 인가요??
이 컴포넌트에만 쓰인 것 같은데 따로 하는 기능이 뭐지 모르겠어서 !!

clickedList,
matchedList,
setClickedList,
} = props;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Props 이렇게 내려주는 거 가독성 괜찮네! 난 맨날 괄호에 때려 박았는데 요거 리코일로 리팩하면 더 깔끔해지겟당~~

@@ -0,0 +1,35 @@
import styled from "styled-components";
import { LevelButton } from "./Buttons";
const LevelButtonsWrapper = styled.div`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

얘는 왜 여깃지요?? 다른 컴포넌트들 전부 컴포넌트 export 아래에 styled-component 만들었으니까
이것도 통일감있게 가는게 좋지 않을까요??

// 레벨 버튼 누르면 카드가 초기화되어야 함
const resetCards = () => {
setScore(0);
// setClickedFirst(null);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

주석 지워줘도 좋겠어요~~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants