2014 FIFA 월드컵 32개국 선수단 정보를 담은 루아 테이블

류광, 2014/06/12 20:39
2014 FIFA 월드컵 32개국 선수단 정보를 담은 루아 테이블을 만들어서 GitHub에 올렸습니다.

영문 위키백과 2014 FIFA World Cup squads 페이지에서 32개국 선수단 정보를 추출해서 루아 테이블로 만들었습니다. GitHub에 올려 두었으니 혹시 필요하신 분 가져다 쓰세요. 사용권은 원본 페이지의 것과 동일한 CC-BY-SA입니다.

GitHub 저장소: https://github.com/ryugwang/wc2014squads

JSON을 원하시는 분도 있겠지만, 루아(Lua)를 좀 더 많은 사람이 배웠으면 해서 루아로만 배포합니다. 루아 테이블을 JSON 문자열로 변환하는 방법은 (너무)많습니다: http://lua-users.org/wiki/JsonModules. 저는 dkjson을 써봤습니다.


wc2014_squads_table.lua 에는 선수단 정보가 들어 있고 clubs_table.lua에는 소속 클럽들의 좀 더 자세한 정보가, flags_table.lua에는 국기 이미지 URL들이 있습니다.

wc2014_squads_table.lua 테이블에는 국가 이름들과 각 국가 이름을 키로 한 선수단 테이블들이 들어 있습니다. 국가 이름들은 정수 색인 1~32까지이고, 조별 순서로 되어 있습니다. 즉, 1번~4번은 A조, 5~8은 B조, 등등입니다(루아의 색인은 1번부터임을 명심하세요!).

하나의 선수단을 뜻하는 테이블(아래 예에서 squad)에는 nation, coach, players라는 속성들이 있습니다. 각각 국가 이름, 코치 정보, 그리고 23명의 선수들에 대한 정보입니다. 선수들은 등번호 순으로 나열되어 있습니다.

전체 선수단을 조별 순서로 훑는 루프는 다음과 같은 형태입니다.

local squads = require"wc2014_squads_table"

for _, nation in ipairs(squads) do
    local squad = squads[nation]

    -- 국가, 감독, 감독 국적
    print(squad.nation, squad.coach.name, squad.coach.nation)

    for _, player in ipairs(squad.players) do
        -- 여기서 player의 다양한 속성들을 활용 (아래 참고)
    end
end

개별 선수 테이블에는 다음과 같은 속성들이 있습니다.

  • player.name : 이름
  • player.number : 등번호
  • player.position : 위치(GK, DF, FW 등등)
  • player.wikipedia : 영문 위키백과 URL
  • player.caps : A 매치 출장 횟수
  • player.captain : 주장 여부(true 또는 nil)
  • player.club : 소속팀 이름

clubs_table.lua와 flags_table.lua는 다음처럼 활용하면 됩니다:

local squads = require"wc2014_squads_table"
local clubs = require"clubs_table"
local flags = require"flags_table"


local brazil_squad = squads['Brazil']

print(flags[brazil_squad.nation]) -- 위키백과 브라질 국기 이미지 URL

local p2 = brazil_squad.players[2]  -- 다니 아우베스

local club = clubs[p2.club] -- 바르셀로나

-- FC Barcelona   Spain   http://en.wikipedia.org/wiki/FC_Barcelona
print(club.fullname, club.nation, club.wikipedia)

top
TAG ,
트랙백 0 : 의견 # + 0

Trackback Address :: http://occamsrazr.net/tt/trackback/283

comments powered by Disqus

(2013년 11월 10일자로 블로그에도 DISQUS 시스템을 도입했습니다. 기존 의견의 수정, 삭제, 댓글 추가는 여전히 가능합니다.)


◀ PREV : [1] : ... [56] : [57] : [58] : [59] : [60] : [61] : [62] : [63] : [64] : ... [314] : NEXT ▶