[go] Go 언어로 게임 랭킹 시스템 개발하기

게임에서는 사용자들의 랭킹을 추적하고 기록하는 랭킹 시스템이 중요합니다. 이번에는 Go 언어를 사용하여 간단한 게임 랭킹 시스템을 개발하는 방법을 알아보겠습니다.

프로젝트 구조

먼저, 프로젝트의 구조를 만들어야 합니다. Go 언어의 전통적인 프로젝트 구조는 다음과 같습니다.

game-ranking-system/
  |- main.go
  |- ranking.go

main.go는 애플리케이션의 진입점이 되는 파일이고, ranking.go는 게임 랭킹 시스템의 핵심 로직이 담긴 파일입니다.

랭킹 시스템 개발하기

이제 ranking.go 파일을 열고 랭킹 시스템을 개발해보겠습니다. 먼저, 게임 랭킹을 저장할 구조체를 정의합니다.

type Player struct {
    Name  string
    Score int
}

다음으로, 모든 플레이어의 랭킹 정보를 저장할 슬라이스를 만듭니다.

var Rankings []Player

그리고, 새로운 플레이어를 랭킹에 추가하는 함수를 작성합니다.

func AddPlayer(name string, score int) {
    player := Player{
        Name:  name,
        Score: score,
    }
    Rankings = append(Rankings, player)
}

또한, 랭킹을 기준으로 정렬하는 함수도 작성해야 합니다.

func SortRankings() {
    sort.Slice(Rankings, func(i, j int) bool {
        return Rankings[i].Score > Rankings[j].Score
    })
}

이렇게 작성한 함수들은 main.go에서 호출하여 사용할 수 있습니다.

예시 코드

아래는 main.go에 예시 코드를 작성한 것입니다. 이 코드는 ranking.go에서 정의한 함수를 사용하여 랭킹 시스템을 테스트합니다.

package main

import (
	"fmt"
)

func main() {
	AddPlayer("John", 100)
	AddPlayer("Alice", 150)
	AddPlayer("Bob", 200)

	SortRankings()

	fmt.Println("Rankings:")
	for i, player := range Rankings {
		fmt.Printf("%d. %s - %d\n", i+1, player.Name, player.Score)
	}
}

실행 결과

위 예시 코드를 실행하면 다음과 같은 결과를 볼 수 있습니다.

Rankings:
1. Bob - 200
2. Alice - 150
3. John - 100

결론

이제 Go 언어를 사용하여 간단한 게임 랭킹 시스템을 개발할 수 있습니다. 이번 예시는 간단한 랭킹 시스템이지만, 더 복잡한 로직이나 데이터베이스와의 연동 등을 추가하여 실제 게임에 적용할 수 있습니다. Go 언어의 간결한 문법과 효율적인 성능은 게임 개발에 매우 유용하므로, 게임 랭킹 시스템을 개발할 때는 Go 언어를 고려해보는 것을 추천합니다.

참고 자료