2023.03.29(알고리즘 강의, 팀과제)

Vinyl Stage·2023년 3월 29일
0

개발일지

목록 보기
19/42

알고리즘의 본격적인 강의가 시작됨

강의에서 들은 내용중 대부분은 몇번 문제를 풀면서 알고있던 내용이라 패스

새롭게 알게된 놈을 정리하자

반올림 함수 round()

작동방법은 다음과 같다.

round('변수이름','반올림할 자릿수')

예를들어

a = 3.141592

print(round(a)) # 3
print(round(a, 1)) # 3.1
print(round(a, 2)) # 3.14
print(round(a, -1)) # 0.0

이런식으로 작동되는 셈이다.

2차원 배열

1 2 3
4 5 6
7 8 9

처럼 출력하기 위해서는 for문으로 정렬시켜서 각각 사이에 공백을 넣어주면 된다.

arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in arr:
    for col in row:
        print(col, end=" ")
    print()

이런식으로 하나씩 담아서 돌리고 또 담아서 돌려 출력하는 방식이 있지만

난 다르게 생각하여 이런식으로 짜보았다.

count = 0
for i in range(1, 10):
    print(i, end=' ')
    count += 1
    if count % 3 == 0:
        print()

이런식으로 짜게 된다면 1부터 9까지의 숫자들을 한줄에 3개씩 담고 사이에 공백을 넣은다음 3개가 차면 다음줄로 넘어가는 방식이다.
이 코드라면 range만 조정을 해서 무제한으로 출력할수 있다는 장점이 있다.

가운데 글자 가져오기
짝수면 가운데 두글자를, 홀수면 가운데 글자를 가져온다

def middle(s):
    answer = ''
    a = len(s)//2
    answer = s[a-1:a+1] if len(s) % 2 == 0 else s[a]
    return answer
s1 = 'abcde'
print(middle(s1))
s2 = 'qwer'
print(middle(s2))

s변수의 길이를 2로 나눈 몫을 a로 설정한다
answer안에 s의 길이의 나머지가 0이면(짝수) 가운데 두글자를 담는 s[a-1:a+1]가 실행되고 그게 아니면 s[a]인 가운데 한글자를 담는 함수이다.


그리고 팀과제

저번 개인과제처럼 rpg게임을 제작하는데 좀더 다른것들을 추가했다.

상성이 5원소 상성이 존재하여 서로 카운터가 되게 설정하였고
다수대 다수전투로 이루어지며 각스테이지마다 경험치가 주어져 레벨업을 할때마다 스탯이 추가된다.
스테이지별로 아이템이 있어 회복 또는 중간보스몹에서는 새로운 캐릭터가 잠금해제되어 추가로 사용할 수 있다.

기본 캐릭터의 종류는 7개로 이중 하나는 중간보스몹을 잡을때까지 사용할수 없다.
나머지 6개중 4개를 선택하여 플레이하며 각기 스킬은 2개씩 주어진다
매 턴마다 각각 몬스터를 선택하여 원하는 스킬로 공격을 하며 몬스터들은 랜덤플레이어를 공격하는데 기본공격3번에 스킬1번을 사용하는 패턴을 가지고 있다.

이런식으로 기획을 했으며 차차 덜어내고 더할 예정이다.

이만

profile
Life is Art

0개의 댓글