Q&A

  • ini로 게임랭킹만들기
정말 고수여러분께 조언을 듣고자 올립니다.

이번학기에 게임을 하나 만들는데 그 게임에서 게임랭킹을 만들고자 합니다.

게임이 끝났을때 랭킹form이 바로뜨고 user의 스코어와 이름을 저장해서

저장되어 있는 다른 20명과 비교할려고하는데

친구가 ini파일로 만들면 되다고 하더군여.

근데 제가 진짜모르니까 그렇게 애기해도 답답하네여..

물론 저도 공부해야줘. 어떻게 하는지 살펴보고..

혹시나 아시는 분있으시면 답변부탁드립니다.

1  COMMENTS
  • Profile
    허접답변 2001.04.30 18:42
    음....

    ini를 이용하신다면 TStrings객체사용이 원활하니까.

    TStringList객체를 사용하세요.

    ini파일을 오픈해서 ReadSections메서드를 이용하면

    TStringlist로 금방 내용을 TStringlist에 집어넣을 수 있슴다. (도움말 참고하시고)

    저장형식은



    [사용자명]

    점수=12345

    ...



    뭐 대충 이런식이고,



    TStringlist의 Names[Index] 메서드를 사용해서 사용자명을 모두읽고 (안해줘도 별상관은 없을듯 ....) 아래것은 필수

    TStringlist의 Values[Index] 메서드를 이용해서 Sort펑션을 만들면 될것같은데.

    음....예를들면 소트중에서 가장빠른건 아니구요....머리속에 가장쉽게

    떠오르는 방식을 적습니다....테스트는 안해봤구여...^^;



    전제...ss를 Tstringlist객체라고 가정함다.

    var

    i: integer;

    j: integer;

    begin

    ss.beginupdate;

    i:= 0;

    while i < ss.count do begin

    j:= i;

    while j < ss.count do begin

    if floattostr(ss.values[i]) < floattostr(ss.values[j]) then begin

    ss.move(i, j);

    end;

    inc(j);

    end;

    inc(i);

    end;

    ss.endupdate;

    end;



    위루틴이 끝나고 나면. ss.values[index]에 점수가 큰값부터 작은값으로 정렬이

    되어 있을겁니다. 글구나서 ini파일열고

    var

    index: integer;

    begin

    // ini파일 열구여.

    index:= 0;

    while index < ss.count do begin

    // ss.names[index]를 섹션으로 저장하고,

    // ss.values[index]를 아이덴트값으로 저장하심됨다.

    // 뭣이더라...... writestring......

    inc(index);

    end;

    // ini파일 닫구여..

    end;



    아마 잘될꺼 같은데....제가 테스트는 안해봤음다...^^;

    궁금하심 멜주시고ㅜ......

    그럼 허접답변이었슴다.



    진짜모름 wrote:

    > 정말 고수여러분께 조언을 듣고자 올립니다.

    > 이번학기에 게임을 하나 만들는데 그 게임에서 게임랭킹을 만들고자 합니다.

    > 게임이 끝났을때 랭킹form이 바로뜨고 user의 스코어와 이름을 저장해서

    > 저장되어 있는 다른 20명과 비교할려고하는데

    > 친구가 ini파일로 만들면 되다고 하더군여.

    > 근데 제가 진짜모르니까 그렇게 애기해도 답답하네여..

    > 물론 저도 공부해야줘. 어떻게 하는지 살펴보고..

    > 혹시나 아시는 분있으시면 답변부탁드립니다.