Goal of Program
각 팀의 파이터들의 능력치(Attack, Defense, Speed) 입력해 매 라운드마다 파이터들의 능력치 업그레이드 하기
매 라운드마다 파이터 승리시 코인을 획득하고 능력치 새로 갱신하기
각 플레이어의 코인이 50개 생길 시 능력치를 강화시키기
한 팀의 모든 플레이어가 hp가 0이 될 시 프로그램 종료
Used Language
Perl, Python
My Review
이번 과제는 Perl과 Python으로 똑같은 프로그램을 짜야했다. 특히 핵심은 Perl과 Python의 scoping 차이를 이해하고 활용 하는 것이였다. 그래서 서로 다른 파일에서 같은 변수를 어떻게 주고 받는지 알아야 하는 것이 포인트였다. 이 과제에서는 파이터들의 coin이라는 변수를 두 파일에서 서로 주고받고 갱신해주는 것이 핵심이였다. 그래서 처음에는 Python과 Perl에서 변수의 scope가 어디까지 적용되는지 헷갈렸다. 하지만 각 언어의 scope의 특징과 적용 범위들을 공부 한 후 어떻게 적용 해야할지를 알 수 있었다.
펄의 경우, dynamic scoping이라는 편한 기능이 있어 local 키워드와 함께 사용하여 다른 파일의 변수도 쉽게 불러와 사용하기 편했다. 파이썬의 경우, static scoping을 지원하기 때문에 global이라는 키워드를 사용하여 다른 파일의 변수에 접근 할 수 있었다. 이렇게 코드를 다시 리뷰해보니 여전히 scope에 대한 개념이 헷갈려서 Interested Concept에 개념들을 조금 더 구체적으로 적어 보았다.
Project Code
https://github.com/guswns00123/Fighting-Tournament-System.git
GitHub - guswns00123/Fighting-Tournament-System
Contribute to guswns00123/Fighting-Tournament-System development by creating an account on GitHub.
github.com
Interested Concept
What is dynamic scoping in Perl ?
https://guswns00123.tistory.com/11
[Perl] What is dynamic scoping in Perl ?
1. Dynamic scoping in Perl Perl에서는 Dynmaic scoping 변수를 선언하기 위해서는 local 이라는 키워드를 사용해야한다. #in Fighter file our $coins_to_obtain = 20; sub obtain_coins{ my ($self) = @_; if ($AdvancedFighter::coins_to_obta
guswns00123.tistory.com
What is static scoping in Python ?
https://guswns00123.tistory.com/13
[Python] What is static scoping in python?
1. Static scope in python Python 같은 경우 static scope(lexical scope)만을 지원하며, 변수가 어디서 선언되냐에 따라 범위가 결정된다. 함수가 중첩되어 있을 시에는, 내부 함수에서 호출 대상이 없을 경우
guswns00123.tistory.com
'과제' 카테고리의 다른 글
| [Project] Make page-rank program by using Hadoop (1) | 2023.05.22 |
|---|---|
| [Project] Make n-gram program by using Hadoop (2) | 2023.03.23 |
| [Project] Moving in planet (1) | 2023.01.29 |
| [Project] ATM Machine 만들기 (0) | 2023.01.02 |
| [Java Project] Car Renting System (1) | 2023.01.01 |