Skip to content

Latest commit

Β 

History

History
143 lines (97 loc) Β· 3.75 KB

File metadata and controls

143 lines (97 loc) Β· 3.75 KB

Hanpotamia

Civilization at Han River
ν•œκ°• λ¬Έλͺ… : μ’…μ˜ 기원


Team

[ν‘œ]


  • Sejong University Problem And Solving C++ (prof. μ•ˆμš©ν•™)
  • μ΅œμ’… νŒ€ ν”„λ‘œμ νŠΈ

ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œ / 쀑간 λ³΄κ³ μ„œ link


Class

1차 견본

readmeimage/class_architecture.png


2차 견본


VS

  • Visual Studio 2019
  • Hanpotamia Game 의 Server

LAB

  • python 기반의 Hanpotamia Game 의 GUI Client

Dependencies

  • python 3.6
  • pygame

이름 κ·œμΉ™

μ°Έμ‘°

  • NHN/C++ μ½”λ”© κ·œμΉ™
  • μ•ˆμš©ν•™ κ΅μˆ˜λ‹˜μ΄ μˆ˜μ—…μ—μ„œ μ–ΈκΈ‰ν–ˆλ˜ κ·œμΉ™
  • Google C++ Style Guide

파일λͺ…

  • μ§€κΈˆ ν•˜κ³  μžˆλŠ” ν”„λ‘œμ νŠΈμ˜ μ»¨λ²€μ…˜, μ•ˆμš©ν•™κ΅μˆ˜λ‹˜μ˜ μ»¨λ²€μ…˜μ— λ”°λ₯Έλ‹€.
  • 클래슀λ₯Ό μ„€κ³„ν•˜λŠ” 경우, 파일 μ•žμ— λŒ€λ¬Έμž C λ₯Ό 뢙인이고, λŒ€μ‰¬ (-) λ₯Ό 뢙이고, λŒ€ν‘œ class μ΄λ¦„μœΌλ‘œ μ‚¬μš©ν•˜λ©°, C λ₯Ό μ œμ™Έν•˜κ³ λŠ” μ†Œλ¬Έμžμ™€ 언더바λ₯Ό μ‚¬μš©ν•œλ‹€. ex : C-rect_base
  • ν…ŒμŠ€νŠΈμš© (μ‹€ν–‰ 파일) 의 경우, Test- λ₯Ό κ°€μž₯ μ²˜μŒμ— ν¬ν•¨ν•œλ‹€. ex : Test-rect_base
  • 파일 이름에 λŒ€μ‰¬(-) λ₯Ό 두 개 이상 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

ν•¨μˆ˜λͺ…

  • 일반적인 ν•¨μˆ˜λŠ” μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•˜λ©°, 각 μƒˆλ‘œμš΄ λ‹¨μ–΄λ§ˆλ‹€ λŒ€λ¬Έμžλ₯Ό μ‚¬μš©ν•œλ‹€. 언더라인은 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. ex : myExcitingFunction()
  • μ ‘κ·Όμžμ™€ μˆ˜μ •μž(get, set)λŠ” λ³€μˆ˜ 이름과 μΌμΉ˜μ‹œν‚¨λ‹€. ex : set_myExcitingMemberVariable()
  • True/False 값을 return ν•˜λŠ” 경우, ν•¨μˆ˜ 이름은 is ν˜Ήμ€ has 둜 μ‹œμž‘ν•œλ‹€. ex : isHungry()
  • private ν•¨μˆ˜ 이름은 언더바(_) 둜 μ‹œμž‘ν•œλ‹€. ex : _dontTouchMe()

νƒ€μž…λͺ…

  • νƒ€μž…λͺ…은 λŒ€λ¬Έμžλ‘œ μ‹œμž‘ν•˜λ©°, 각 μƒˆλ‘œμš΄ λ‹¨μ–΄λ§ˆλ‹€ λŒ€λ¬Έμžλ₯Ό κ°–μœΌλ©° 언더라인을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. ex : MyRectangle

λ³€μˆ˜ 및 μƒμˆ˜λͺ…

  • λ³€μˆ˜λͺ…은 μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•˜λ©°, μ†Œλ¬Έμžμ™€ μ–Έλ”λ°”λ§Œ μ‚¬μš©ν•œλ‹€.
  • static 멀버 λ³€μˆ˜μ˜ 경우 's_' 으둜 μ‹œμž‘ν•œλ‹€. ex : \s_my_exciting_static_variable
  • const 멀버 μƒμˆ˜λŠ” 'k_' 둜 μ‹œμž‘ν•˜λ©° λŒ€μ†Œλ¬Έμžλ₯Ό μ„žμ–΄μ„œ μ‚¬μš©ν•œλ‹€. ex : \k_days_in_a_week
  • κ·Έ μ™Έ private 멀버 λ³€μˆ˜ 및 private ν•¨μˆ˜λŠ” '_' 둜 μ‹œμž‘ν•œλ‹€. ex : _my_private_variable
  • 이름은 κ°€λŠ₯ν•œ μ„€λͺ…μ μœΌλ‘œ μ§“λŠ”λ‹€. 곡간 μ ˆμ•½μ΄ μ€‘μš”ν•œ 게 μ•„λ‹ˆλΌ, μ½”λ“œλ₯Ό μ¦‰μ‹œ 보고 이해할 수 μžˆμ–΄μ•Ό ν•œλ‹€. ex : num_completed_connections
  • λͺ¨ν˜Έν•œ μ•½μ–΄λ‚˜ 의미λ₯Ό μ•Œ 수 μ—†λŠ” μž„μ˜μ˜ 문자λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. ex : nerr (?)
  • ꡬ쑰체의 데이터 λ©€λ²„λŠ” 일반적인 λ³€μˆ˜μ²˜λŸΌ 이름을 μ§“λŠ”λ‹€. 클래슀처럼 μ–Έλ”λΌμΈμœΌλ‘œ λλ‚˜μ§€ μ•ŠλŠ”λ‹€.
  • μ „μ—­ λ³€μˆ˜λŠ” νŠΉλ³„ν•œ μš”κ΅¬μ‚¬ν•­μ΄ μ—†μœΌλ©°, 거의 μ‚¬μš©μ„ ν•˜μ§€ μ•ŠλŠ”λ‹€. λ§Œμ•½ μ‚¬μš©ν•œλ‹€λ©΄, 'g_'둜 μ‹œμž‘ν•˜κ±°λ‚˜ 둜컬 λ³€μˆ˜μ™€ κ΅¬λ³„λ˜λŠ” ν‘œμ‹œλ₯Ό ν•œλ‹€.

기타

  • λ“€μ—¬μ“°κΈ°λŠ” Tab 을 μ‚¬μš©ν•œλ‹€.
  • κ°„λ‹¨ν•œ μƒμ„±μž μ΄ˆκΈ°ν™”λŠ” 콜둠 μ΄ˆκΈ°ν™”λ‘œ ν•œλ‹€.
  • 이항 μ—°μ‚°μž (=, >, <, λ“±..) μ•žκ³Ό 뒀에 곡백을 μ œκ³΅ν•œλ‹€. ex : a = b + c
  • 단항 μ—°μ‚°μž μ•žκ³Ό 뒀에 곡백을 μ œκ³΅ν•˜λ‚˜, (A++), [--BB], {--KK}와 같이 μ‚¬μš©ν•  λ•ŒλŠ” 곡백이 없어도 μ’‹λ‹€.
  • 일뢀 μ—°μ‚°μž(β€œ , β€œ, β€œ ; β€œ)λŠ” μ—°μ‚°μž 뒀에 곡백을 μ œκ³΅ν•΄μ•Ό ν•œλ‹€. ex : for( i = 0; i < 3; i++)
  • brace( { )λŠ” λΆ„λ¦¬λœ 라인에 μž‘μ„±ν•œλ‹€.

class People
{
// λ‚΄μš©
}
void main()
{
// λ‚΄μš©
}
struct DataStructure
{
// λ‚΄μš©
}

μ˜ˆμ‹œ

class People
{
  private:
  int _age;
  
  public:
  int get_age();
  void set_age();
  void giveAge();
}