본문 바로가기

프로그래밍43

XOR 연산자의 활용 프로그래밍을 하다 보면 가끔 이런 상황이 생길 때가 있습니다. 플레이어의 국가(미국 or 러시아)를 저장하는 변수 state 가 있다고 합시다. 국가가 미국이면 state 변수에 1을, 러시아라면 2를 저장하여 구별합니다. 관리자가 를 입력했을 때 두 가지 상황이 생기게 됩니다. (단, 기타 오류로 인해 변수 state의 값이 1 또는 2가 아닐 경우는 생략) 첫번째, 플레이어의 국가가 미국일 때. 플레이어가 미군일 때, 즉 state 변수의 값이 1일 때 플레이어의 국가를 러시아로 변경하기 위해서 state 변수의 값을 2로 조정해야 합니다. 두번째, 플레이어의 국가가 러시아일 때. 플레이어가 러시아군일 때, 즉 state 변수의 값이 2일 때 플레이어의 국가를 미국으로 변경하기 위해서 state 변수.. 2012. 11. 19.
[C언어/알고리즘] 암호화, 복호화의 원리 위 코드는, 문자열을 입력 받은 다음 암호화 할 것인지, 복호화 할 것인지 사용자의 의사를 묻고 암호(복호)키(얼마만큼 문자열을 이동(변형)시킬 것인지) 를 입력받아 암호/복호화 하는 순서로 돌아갑니다. 암호화와 복호화의 원리가 무엇이냐면 비밀번호와 같은 특정 데이터를 입력 받고 배열에 저장된 데이터의 각 원소들을 일정량만큼 변형시켜서 변현된 최종 데이터를 반환하는 것인데요. 예를 들어서, 만약에 "abcde" 라는 비밀번호를 입력했다고 가정했을 때, a,b,c,d,e 는 각각 하나의 문자로써 ASCII 코드를 가지고 있습니다. a = 97, b = 98, c = 99, d = 100, e = 101 입니다. 반복문을 통해서 a~e 까지의 문자에 3이라는 암호키를 더한다고 가정하면 100(d), 101(.. 2012. 11. 19.
[C언어/알고리즘] sizeof 연산자를 이용해 배열의 원소 개수를 구하는 방법 sizeof 는 다들 아시다시피 피연산자로 지정된 대상의 메모리 크기를 구해주는 연산자입니다. 현직 프로그래머들 중 일부도 이 sizeof 를 연산자가 아닌 함수로 오인하고 계시는데, sizeof 는 함수가 아닌 연산자입니다. sizeof 연산자는 컴파일 할 때, 컴파일러가 대상의 사이즈를 계산해서 연산 부분에 연산 결과를 대입하기 때문에 많이 사용해도 성능 저하의 염려가 없습니다. 2012. 11. 19.
[PAWN/SAMP] 사살한 플레이어의 이름을 화면에 표시하기 데스매치 모드에서 유용하게 쓸 수 있는 함수입니다. 서든어택과 같은 FPS 게임들을 보면 항상 있는 기능인데, 누가 누구를 죽였는지 화면에 출력하는 코드입니다. 이 코드 같은 경우에는 플레이어 자기 자신이 죽었을 때 호출되는 OnPlayerDeath 콜백을 이용했습니다. 콜백 함수 자체에 killerid(자신을 죽인 player의 id)가 주어지기 때문에 이걸로 코드를 다양하게 작성하면 됩니다. 아래 코드는 A가 B를 죽였을 때, A의 게임 화면에 GameText로 B의 이름을 출력하는 코드입니다. 예를 들어 B의 playername이 "HongGilDong"이면, you kill honggildong Rank Exp+10 이렇게 출력되겠네요. 아마 GameTextForPlayer로 출력하면 모든 문자가.. 2012. 9. 17.