Q&A

  • 지금 고스톱 프로그램을 짜는중인데요
고스톱은 아니고 섯다 프로그램을 짜는 중인데요
지금 막 시작했어요 ..중간고사 대체 프로젝트가 있어서요.
근데 제가 시도하려는것은 1부터 10까지 각각 2장씩 20장을  4명의 플레이어가 2장씩 패를 받는데 이패는 랜덤으로 받아야 하잖아요.
그래서 20장의 이미지를 20개의 배열에 넣고 배열을 랜덤으로 받아오려고 하는데.. 그런 방법이 가능한가요? 방법좀 알려주세요
무작정 물어보기만 해서 죄송합니다.
1  COMMENTS
  • Profile
    이두형 2004.11.16 08:11
    제 생각엔 배열에 랜덤하게 직접 이미지를 넣는 방법보다,
    (근데 위 방법으로 랜덥하게 이미지를 선택해야 한다는 문제가 발생하네요..)
    랜덤하게 1~20까지의 수를 발생시켜서 각각의 수에 해당하는 패를 받게하면 될 것 같은데요..
    예를 들면,

    procedure TForm1.패돌리기(Sender: TObject);
    var
            I, J: Integer;
    begin
            Randomize;

            // 랜덤하게 8개의 수들을 고르고,
            for I := 0 to 7 do
                     배열[I] := Random(20);

            // 8개 중에 반복되는 수가 있으면 자기자신을 다시 호출
            for I := 0 to 6 do
            begin
                    for J := I + 1 to 7 do
                    begin
                            if 배열[I] = 배열[J] then
                                    패돌리기(Sender);
                    end;
            end;

            // 서로 다르게 나온 수 8개를 순서대로 각 네명에게 2개씩 부여하고
            // 각 번호에 해당하는 이미지를 로드시키면 될 것 같은데요..
    end;

    procedure TForm1.Player1패받기(Sender: TObject);
    begin
            // Player1의 자리에 두개의 Image Component가 있고,
            // 패 그림의 파일명이 XXX0.. XXX19라고 한다면,
            // (물론 프로젝트가 저장된 폴더에 그림 파일도 같이 있어야겠죠..)
            Image1.Picture.LoadFromFile('XXX' + IntToStr(배열[0]));
            // 이렇게 하면 각각의 이미지 컴포넌트에 랜덤하게
            // 패를 돌릴 수 있을 것 같네요..      
    end;

    이상 허접한 답변였습니다.. 즐코하시길!!!

    • 석주현
      2004.11.16 18:08
      그냥 Edit 와 updown VCL 을 이용해서 코딩을 해줘야 할거 같네요. Edit에서 커서 위치에 따라서 시간 분 ...
    • 김종균
      2004.11.17 06:14
      SpinEdit에서 커서위치를 어떻게 아는지요... 예제 있으면 올려
    • 양기태
    • 2004.11.16 06:16
    • 1 COMMENTS
    • /
    • 2 LIKES
    • 이두형
      2004.11.16 08:11
      제 생각엔 배열에 랜덤하게 직접 이미지를 넣는 방법보다, (근데 위 방법으로 랜덥하게 이미지를 선택해야...
    • 하얀까마귀
      2004.11.16 23:24
      안녕하세요 하얀까마귀 입니다. 아주 오래전 도스에서 png포맷으로 프로그램을 만든 기억이 ㅎㅎㅎ ...
    • 최성욱
    • 2004.11.16 01:47
    • 4 COMMENTS
    • /
    • 0 LIKES
    • id0313
      2005.05.20 18:25
      늦게나마 답변.. 한동안 아무 생각없이 String에 255개 이상의 문자를 대입하면 에러가 난다고 알고서 코...
    • 신동호
      2004.11.17 07:07
      sql문 자체가 TStringList 객체로 되어 있습니다. 그러므로 sql문은 한개의 Text 화일이라고 볼 수 있습니...
    • 한원희
      2004.11.16 05:12
      안녕하세요. 한원희입니다. 쿼리의 길이는 상관이 없는 것으로 알고 있습니다. 제가 여태까지 ADO를 사...
    • 모영철
      2004.11.16 03:45
      전에 1000줄 정도 되는 쿼리를 ADO가 아닌 BDE를 이용해서 날리는데요.. 정확히 몇글자 인지 모르겠지만...
    • 이정관
      2004.11.16 01:08
      uses절에 ComCtrls넣어주세요.
    • 최수림
      2004.11.16 01:09
    • 우용우
    • 2004.11.15 23:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.11.17 22:08
      안녕하세요. 최용일입니다. 아는 방법은 없을거 같은데요... 소켓을 오픈한다고 해도 공유기로 데이...
    • 정정봉
      2004.11.16 17:31
      처음 에러는 쿼리문장이 잘못 코딩이 된것 같구요. 두번째 에러는 Key값 중복 발생 에러 인것 같네요.
    • 델피언
    • 2004.11.15 21:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2004.11.16 05:15
      안녕하세요. 한원희입니다. 아마도 IF 문 다음에 BEGIN ... END를 하지 않아서 그런것이 아닐까요??? ...
    • 김종균
    • 2004.11.15 20:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정관
      2004.11.15 21:30
      showhint를 true로 하셨나요? 툴바에 버튼 등을 추가했다면 툴바의 힌트와 툴버튼의 힌트를 따로 지정해...
    • 김종균
      2004.11.15 21:40
      showhint는 ture입니다. 델파이7을 다시 설치했는데 그러네요
    • 이정관
      2004.11.16 18:39
      델파이를 새로 설치해도 그런다면 대체로 난감ㅡㅡ;;
    • 이정관
      2004.11.15 21:22
      if Pan_ProjectCode1.Caption = ''  then -> String문자가 아무것도 없을때   &...
    • 김정현
      2004.11.15 21:52
      제가 올려놓은 원문을 보면 SELECT  ProjectCode,KorProjectName  이문장을 SQL 에 ...
    • 이정관
      2004.11.15 22:18
      gsProjectCodeTable은 String변수입니다. 즉 변수라서 지정하가 나름이죠. 그리고 LIKE ''' + '%' + Edt_K...
    • 김정현
      2004.11.15 23:02
    • nilriri™
      2004.11.16 22:05
      무슨 작업을 하시려고 그러시는지 모르겠네요..^^; 디비 그리드에 서로 다른 테이블의 내용을 사용자 선...
    • 이두형
    • 2004.11.15 11:23
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2004.11.15 19:34
    • 이정관
      2004.11.15 18:55
    • 이두형
      2004.11.16 08:34
    • 이정관
      2004.11.16 18:33
    • 이두형
      2004.11.16 22:09
    • 이정관
      2004.11.16 22:32
    • 이두형
      2004.11.17 01:35
    • 노명환
    • 2004.11.15 10:31
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이정관
      2004.11.15 19:33
      예전에 퀵레포트 했던 경험으로는 이런 경우에 대해서 두가지 방법이 있었던것 같네요. 첫번째는 Query에 ...
    • 이정관
      2004.11.15 20:38
      두번째방법의 소스입니다.
    • 노명환
      2004.11.15 22:59
      답변 고맙습니다. 그런데 첨부하신 예제 프로그램에서 페이지 수가 무한정 늘어나 버리는데요. 뭐가 잘 ...
    • 이정관
      2004.11.16 01:00
      MsSQL2000서버의 Northwind의 Orders테이블을 연결해서 사용한 겁니다. TDataBase와 TQuery를 수정해서 ...
    • 김정현
      2004.11.15 18:33
      딱히 답변은 아니구요...^^ 예를 들어 환경설정 파일같은거나 게임환경정보를 저장해놓은....그런거... ...
    • nilriri™
      2004.11.15 21:57
      Self가 QReport라면.. 여기에서 구한 m이 필드명이 나온다면.. m:= tqrdbtext(components[i]).Caption;...
    • 가딘
      2004.11.16 20:14
      답변 감사하구요 문제는 디테일 밴드의 출력된 모든 값을 가지고와서 엑셀로 저장을 할려고 합니다. 쿼...
    • 구자균
      2005.02.03 19:22
      프린터를 일단 공유를 시켜요.영수증프린터는 삼보 570으로 잡고 공유시켜요. 다른 피시에서 네트웍공유...
    • 하얀까마귀
      2004.11.19 19:39
      안녕하세요 하얀까마귀 입니다. 먼저 LTP1이란 이름은 포트명이므로 이 이름은 쓸수 없습니다. 당...