본문 바로가기

내일배움캠프

팀 프로젝트 - 가위바위보게임 2

어제에 이어서 팀프로젝트 과제를 수행하기로 했다. 

 

어제 작성한 부분중에 가장 부족했던 점은 데이터베이스에 입력되는 정보가 잘못되어 있었다는 것이다.

메인페이지(임시)

 

페이지에서는 컴퓨터와 사용자가 결정한 패와 결과를 출력하도록 했는데 데이터베이스에는 경기 결과를 입력하는 문제가 있었다.

팀원들와 회의를하면서 데이터베이스의 값을 순회하면서 결과값을 출력하려고 했기 때문에 이 부분은 반드시 수정이 필요했다.

 

class Stats(db.Model):
    __bind_key__ = 'second_db'
    matches = db.Column(db.Integer, primary_key=True)
    cpu = db.Column(db.String, nullable=False)
    user = db.Column(db.String, nullable=False)
    result = db.Column(db.String, nullable=False)

먼저 새로운 데이터베이스를 생성했다. 이전의 데이터베이스에는 총 전적만을 저장할 수 있었기 때문에 각 게임의 결과를 저장하도록 새로 작성을 해주었다.

 

# Score DB 입력(게임 결과 기록)
    score.matches += 1
    if game_result == '승!':
        score.win += 1
    elif game_result == '패배!':
        score.lose += 1
    elif game_result == '무승부!':
        score.draw += 1
        
    # Stats DB 입력(게임 전적 기록)
    stats = Stats(cpu = computer_choice, user = my_choice, result = game_result)
    
    db.session.add(stats)
    db.session.commit()

 

score에 전적을 입력하는 부분을 수정해서 경기 결과에 따라서 데이터 베이스에 값을 업데이트하도록 추가했다. Score데이터베이스에서는 값을 계속해서 추가하지 않고 첫번째 열에 값을 업데이트한다.

stats에는 경기결과 통계를 저장한다. 추후에 메인페이지로 출력할 수 있도록 하기 위함이다.

 

수정한 부분 자체는 많지않았지만 데이터베이스를 처음 사용해보는 터라 시간이 꽤 걸렸다. 그리고 프로젝트를 진행하다가 깃허브가 통째로 바뀌는 사고도 있었다... 그래도 계속 사용을 하다보니 점차 어떤 문제가 생기고 어떻게 해결할 수 있는지 알아가고 있는 것같다.