'C 게임'에 해당되는 글 6건

  1. 2008/08/02   C 소수판단 알고리즘 (4)
  2. 2008/01/26   C언어로 오목만들기 4 (7)
  3. 2008/01/22   C언어로 오목만들기 3 (11)

오랜만에 글 써보네요.
미안하지만 오늘 글은 모두 아는 소수 판단 알고리즘입니다. ㅈㅅㅈㅅㅈㅅ

소수 : 1과 자신 외에는 나누어 떨어지는 정수가 없는 양의 정수.

소수의 정의만 보면 2부터 n-1까지 나누어보아서 나누어지지 않으면 소수 나누어지면 소수가 아니라고 할 수 있습니다.



이 함수는 느리다. ㅡ,.ㅡ
소수를 판별할 때 n의 제곱근까지만 나누어 보면 된다고 한다.

16을 보면 16의 약수는 1*16, 2*8, 3*6, 4*4, 6*3, 8*2, 16*2 이렇게 앞 뒤가 서로 대칭된다.
그래서 제곱근을 구해주는 합수 sqrt(int)함수를 써보겠습니다.



 소수를 구하는 다른 알고리즘에는 에라토스의 체가 있습니다.
1부터 n까지의 소수를 구한다고 할 때 소수의 배수를 지워나가면서 남아있는 수를 구하는 알고리즘입니다.


다음부턴 열심히 쓸게요. 때리지 마요 제발

이 글이 유익하다면 (굽신굽신) ->

Trackback Address >> http://zfanta.com/trackback/397 관련글 쓰기

  1. Subject: 에라토스테네스의 체가 과연 빠르긴 빠르네

    Tracked from BLUEnLIVE's ZocKrWorld 2009/09/06 03:57  delete

    꼭 이런 짓을 하고싶을 때가 있다. 소수의 합을 구할 때 에라토스테네스의 체가 빠르다는 거 당연한데, 굳이 일일이 계산하는 거랑 비교해보고 싶었다. 왜 그런지 따윈 없고... 단지 있다면 얼마 전 모 블로그에 내가 쓴 답글이 신경쓰여서랄까나... 그래서 VS 2003.Net으로 만들어봤다. #include "stdafx.h" #include <memory.h> #include <math.h> #include <windows.h> #define PRI..

  1. Favicon of http://bluenlive.net BlogIcon bluenlive 2008/08/16 02:56  address  modify / delete  reply

    참고로, sqrt(n)까지 루프를 돌릴 때 홀수만 돌리면 됩니다.
    짝수는 어짜피 2x홀수이니까요.

    오랜만에 보니 반갑네요.

  2. Favicon of http://dizies2.tistory.com BlogIcon dizies 2008/09/10 19:11  address  modify / delete  reply

    아리스토테네스의 체에서 소수 i를 찾아서 i의 배수를 지울때 2i 부터 돌리는데 사실 i*i부터 돌려도 됩니다. 왜 그런지는 직접 해보시면..;;


끝이보인다.
돌5개 확인하기

5개확인 함수

같은 돌이 있는 곳으로 최대한 왼쪽으로 이동후 오른쪽으로 가면서 돌을 세는 방법

이 함수는 move함수의 case ENTER:마지막에 추가해주시면 됩니다.
요렇게


승리메시지 풀력하고 끝나요 ㅇㅇ

이렇게 지금까지 만든 소스


끝이 보이는구나~~~

사용자 삽입 이미지


이 글이 유익하다면 (굽신굽신) ->

Trackback Address >> http://zfanta.com/trackback/312 관련글 쓰기

  1. Favicon of http://bluenlive.net BlogIcon bluenlive 2008/01/26 22:53  address  modify / delete  reply

    대단... 노력에 감탄했습니다.

    •  address  modify / delete 2008/01/27 03:09 Favicon of http://zfanta.com BlogIcon 환타

      move함수에 if문이 많아서그렇지 move함수만빼면 몇줄 안돼요 ㅠㅠ

      더 간단하게 하고싶은데

      선을 넘었으니..

  2. Favicon of http://blog.studioego.info BlogIcon StudioEgo 2008/02/08 20:56  address  modify / delete  reply

    수고 많으셨네요. 저런 프로그램을 만드는 것부터 시작해서 OS까지 만들어보시기 바랍니다 :)

    •  address  modify / delete 2008/02/09 12:14 Favicon of http://zfanta.com BlogIcon 환타

      저는 아직 멀었죠 ㅎㅎ.
      OS가 명령어 처리하는 것도 어떻게 하는건지 모르겠던데.....

  3. ㅠㅠ왕초보 2009/05/31 11:46  address  modify / delete  reply

    죄송한데요,,, 제가 엄청,, 초보거든요,,,,, return1은 뭐고 return0은 뭐가요??

    •  address  modify / delete 2009/06/01 23:59 Favicon of http://zfanta.com BlogIcon  환타

      함수를 사용한 곳에 return 1이면 1, return 0이면 0을 돌려줍니다.

      전체소스중 233줄에 if(check(x,y))에 보면 check(x,y)는 1또는 0을 돌려줍니다.

      if(1)또는 if(0)이 되겠죠.
      if(1)이면 if문안의 내용을실행하고 if(0)이면 실행하지 않습니다.

  4. 궁금증~! 2011/01/16 11:49  address  modify / delete  reply

    흐억 궁금증 하나 ㅇㅅㅇ... 님 무슨 컴파일러를 쓰시나요 ?ㅇㅅㅇ 제가 6.0을쓰는데
    getch는 conio.h가 있어야만하고 그런데 혹시 최신버전은 stdio.h에 getch가 있나요 !?

오늘은 뭐 돌 놓기.

이것만 하고 5줄 확인하는 함수만 만들면 끝나네요.

사실 다 만들어 놓고 조금씩 포스팅하는 환타 ㅋㅋㅋ

돌 놓는 함수는 따로 만들지 않고

move 함수에 case ENTER:만 추가해서 해보겠습니다.

윗부분에

추가하고

돌 좌표를 저장할 변수도 선언하고


move함수 마지막에 추가

이러면 돌을 놓고나서 키보드를 움직이면 또 지워지니까

돌이 있는지 확인하는 knock함수도 만들어주고


move 함수 switch문의 ENTER를 제외한 모든 case에


이 글이 유익하다면 (굽신굽신) ->

Trackback Address >> http://zfanta.com/trackback/306 관련글 쓰기

  1. 학생 2008/03/08 13:33  address  modify / delete  reply

    이거 왜 실행이 안됄까요 ㅠㅠ,;;;;;
    계속 에러가 ㅠ.ㅠ;

  2. 학생 2008/03/08 13:36  address  modify / delete  reply

    c:\documents and settings\administrator\my documents\c\cpp1.cpp(238) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition
    Error executing cl.exe.
    이렇게 에러가 나요 ㅠ,ㅠ;; 어떻게 고쳐야 하는지요 ㅠㅠ.;; 차근차근 배우고 싶어요;

  3. 학생 2008/03/09 02:56  address  modify / delete  reply

    저... 죄송하지만 질문쩜 할께요;;
    int knock(x,y)
    {
    gotoxy(x,y);
    puts("○");
    if(board[x][y]==1)
    return 0;

    else
    return 1;
    }
    ////// 요 함수도 잘모르겠어요... board[x][y]가 1이면 0을 호출하구 아니면 1을 호출하는게
    뭘뜯하는건지;; ㅠㅠ.;;; 아직 배우는 중이라;;;; 아르켜주세효 ㅎㅎㅎ;;;

    case ENTER :
    if(board[x][y] == 0)
    {
    board[x][y]=1;
    gotoxy(x,y);
    puts("○");
    /// 이부분에서 엔터를 누를 경우. board[x][y]값이 0이랑 같으면 board[x][y]가 1로 치환돼고
    x,y좌표로 가서 ○ <---이걸 둔다는건데;;; 어떻게
    엔터를 치면 돌이 놓여지는지 모르겠어요;; 이해를 못하겠어요 ㅠ.ㅠ...... 알려주세요;;;;

    •  address  modify / delete 2008/03/09 12:17 Favicon of http://zfanta.com BlogIcon  환타

      board[][]배열에는 판의 상태를 나타냅니다. 0은 빈 곳,1은 돌이 있는 곳,
      knock함수는 case LEFT,RIGHT,UP,DOWN 에서 사용되는 데 만약 바로 전 위치에 돌이 없었다면 판을 다시 그려줘야 합니다. 그래서 board[x][y]가 1이 아니면(그 곳에 돌이 없으면) 1을 반환해서 if문의 내용을 실행합니다.

      case ENTER는 엔터를 누를 때 좌표(x,y) 배열[x][y]에 돌이있다는 값인 1을 대입하고 화면에 돌을 그려주는 역할을 합니다.

      이해 안되는 부분마다 질문 많이해주세요 ㅎㅎ

  4. 학생 2008/03/09 13:14  address  modify / delete  reply

    ㅎㅎ.. 여기까지 이제 이해가 간거 같아요 ㅎㅎ/
    board[][]이게 초기값을 설정안해주면 값이 0이라는걸 이제 알았어요;;;ㅎㅎ;
    차근차근 다음단계까지 보면서 나중에 또 질문해도 돼죠~? ㅎㅎ//

    •  address  modify / delete 2008/03/09 14:42 Favicon of http://zfanta.com BlogIcon 환타

      수고하셨어요^^
      초기화 없이 0으로하려면 전역변수로 전언을 해야합니다.
      질문 환영이에요 ㅎㅎ

  5. 왕초보ㅠ 2009/06/19 08:54  address  modify / delete  reply

    return 0;으로 되어있는거는.... 화면을 어떤 상태로 만드는 건가요?? 좌표에 돌이 있으면 return0;인데 return0;으로 하면 처음으로 되돌린다?? 그런건가요??

  6. 초보나그네 2010/04/23 17:29  address  modify / delete  reply

    지나가던 학생인데 질문좀 드려도 될까요?? 여기 짜 놓으신 프로그램이 혹시 네트워크상에 클라이언트가 접속해서 같이 오목을 둘 수 있는 프로그램인가요?? 워낙 기초도 모르는 초보라 엉뚱한 질문드립니다 ㅠㅠ