달력

22025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28


 

<라스트 랭커의 타이틀 화면>


매일 같이 전통의식이라며 무언가 알수 없는 의식을 하는 칸타렐라 마을..
촌장의 아들은 지그는 의미를 알수 없는 의식을 하며 살아가는 생활에 회의를 느낀다.

<이게 바로 무언지 알 수 없는 의식...>


지그는 칸타렐라를 떠나 전후기구인 바잘타에 등록을 하러 가려 한다.

<마을을 나서는 지그...>

하지만 X알 친구인 파즈는 그런 지그를 설득해 보려하지만.. 지그가 뜻을 굽히지 않자 파즈는 결투를 신청한다.
이기면 마을을 떠나고 나에게 지면 마을에 남아라!!

<사나이들의 승부다!!>

첫번째 전투는 배틀 설명과 함께 시작한다.. 그냥 ㅁ 만 계속 누르면 이긴다...

< 배틀에 대한 설명을 해주는 중>

<파즈는 필살기도 사용해 보지만...>

<승자는 지그...>

파즈는 지그를 보내주고.. 지그는 마을을 떠난다..
하지만.. 사실 파즈는 지그를 위해 져준것이었다!!!

<가거라!!!>



 

<내가 더 강하잖아....>


 










 

'게임 > PSP' 카테고리의 다른 글

[PSP]라스트 랭커 - 5  (0) 2010.07.18
[PSP]라스트 랭커 - 4  (0) 2010.07.17
[PSP]라스트 랭커 - 3  (0) 2010.07.17
[PSP]라스트 랭커 전투 영상  (0) 2010.07.17
[PSP]라스트 랭커 - 2  (0) 2010.07.17
Posted by SadDev
|

1 ~ 100 까지 랜덤하게 숫자를 뽑을때 중복되지 않게 뽑으면서 속도까지 빠르려면 어떤 방법이 있을까??

일반적으로 사실 for문 을 잘 돌리면 중복 되지 않게 뽑는건 어렵지 않다..
다만 중복 for문에 의해 속도가 느려질뿐... 1 ~ 10 정도의 작은 수는 괜찮지만 1000, 10000 같이 숫자가 커질수록 부하는 몇배로 커진다...

우선 한가지 생각해본 방법은
미리 배열에 1 ~100까지 담아두고 하나씩 빼오는 것.
그러다 이미 빠진 숫자가 나오면 그 옆의 숫자를 가져오는 것을 생각해봤다.

IString arrNum[100];
for(int i = 1 i < 101; i++)
{
  arrNum[i] = i+1;
}
for(int i = 1; i < 101; i++)
   {
    sTemp = (short)rand() % 100 ;
    while(arrNum[sTemp].Compare("")==0)
    {
     sTemp++;
     if(sTemp == 100) sTemp = 1;
    }
    arrNum[sTemp] = "";
   }
printf("%d", sTemp);

①②③④⑤⑥⑦⑧⑨⑩....... 이렇게 100까지 저장해 둔다.

랜덤을 돌려서 5가 나오면
①②③④""⑥⑦⑧⑨⑩.......   5는 공백이 된다.

쭉 for문을 돌다가 또 5가 나오면 그 옆 숫자인 6을 가져오고.. 6도 비어있으면 그 옆의 7... 이런식으로 한칸 옆의 숫자를 가져오면서 돌게 된다.


하지만 위 코드도 단점이 있었다..
낮은 확률이긴 하지만 마지막에 가면 근접한 숫자들이 뭉쳐서 나올때가 있다.


그래서 검색을 하고 하고 또 해서 찾아낸 방법.
int sCard = 100;
int *x = new int[sCard];
   for (int j = 0 ; j < sCard; j++)
    x[j] = j;
   
   for (int j = 0; j < sCard; j++)
   {
    int tmp = 0;
    int k = 0;
    int l = 0;
    for(int m = 0; m < 8; m++)
    {
     tmp += rand() << (32 - ((m + 1) * 4));
    }
    k = (tmp % (sCard - j)) + j;
    l = x[j];
    x[j] = x[k];
    x[k] = l;
   }
   free(x);


아참.. 위 코드는 0~ 100이 되겠다..
인덱스 가져올 일이 있어서 0 부터로 짯음...

사실 소스에서
 for(int m = 0; m < 8; m++)
    {
     tmp += rand() << (32 - ((m + 1) * 4));
    }
    k = (tmp % (sCard - j)) + j;


이부분은 이해를 못하고 있다..
먼가 중요한 부분이고 위 소스 때문에 난수가 제대로 나오는것 같은데 아직 정확히 이해는 못하고 있다 ;ㅁ;

'프로그래밍 > C++ / C' 카테고리의 다른 글

[c++] CHttpConnection에서 한글 전송 시 null 문제  (0) 2011.01.13
[C++/C] 트랜잭션 ...  (0) 2010.12.23
Posted by SadDev
|

C#에서 DataGridViewRow 를 복사하려는데 오류가 자꾸 발생한다.

분명 설명에는 DataGridView.Rows.Add(DataGridViewRow )가 있다..
그런데 왜 오류가 날까....

이유는 Row에 값을 넣는 방법이 문제 였다 ㅡㅡ;;

대충 해결 방법

DataGridView dgv = new DataGridView();
...  (dgv에 특정 데이터를 집어 넣은 상태);

DataGridView dGrid  = new DataGridView();
DataGridViewRow dgvRow = new DataGridViewRow();
dgvRow = CloneWithValues(dgv.Rows[i]);

dGrid.Rows.Add(dgvRow); 
public DataGridViewRow CloneWithValues(DataGridViewRow row);
{
      DataGridViewRow clonedRow = (DataGridViewRow)row.Clone();
      for (Int32 index = 0; index < row.Cells.Count; index++)
      {
        clonedRow.Cells[index].Value = row.Cells[index].Value;
      }
      return clonedRow;
}

함수로 만들었지만.. 문제는 Cell에 값을 넣는게 문제 였다..
Row를 만들고 셀에 값을 잘 넣어주면 해결 되더라능 ㅡㅡ;

Posted by SadDev
|

C#에서 MessageBox는 javaScript의 alert 혹은 confirm 과 같다.

우선 MessageBox.Show() 의 사용법은 여러가지가 있지만.. 사실 써본적도 없다.
기본적인 두가지만 쓸뿐 --;;;

그 첫번째 .. alert과 동일한  MessageBox

1. MessageBox.Show("텍스트");

private void button_Click(object sender, EventArgs e)
{
      MessageBox.Show("오류 발생 !!");
}




2. MessageBox.Show(" 내용", "설명", 버튼 종류)

private void button2_Click(object sender, EventArgs e)
{
      if (MessageBox.Show("취소를 누르시면 입력하신 내용이 모두 초기화 됩니다.\r계속 하시겠습니까?", "입력 취소", MessageBoxButtons.YesNo) == DialogResult.Yes)
      {
        this.DialogResult = DialogResult.Abort;
      }
}



간단히 alert과 confirm의 C# 버젼으로 기억하면 된다.


이때 줄바꿈 문자는 \r 을 사용한다.. \n 은 안됨 ;ㅁ;


우선 MessageBoxButtons는 여러가지가 있는데  "Yes"는 예 버튼 "No" 는 아니오 버튼 "OK"는 확인 버튼 등이 있다.  이중 YesNo 는 예 , 아니오 버튼.
그리고 Dialogresult  는 확인 창의 결과 값인데..  Yes 이면 .. 즉 예를눌렀을때... 를 의미한다..

Posted by SadDev
|
FF 14의 벤치 마크 결과가.. 충격이다;;;

첫번째 사진은 1920 X 1080 으로 돌렸으며... 점수는 1800점 정도...
최악이다 ;;;

스에 에서는 1500점 이하는 게임하기가 어려울 것이며 2000 이하는 무겁게 돌아갈 거라고 그랬는데..
이건 게임 하지 말라는거다...

1024 X 768의 경우 3300정도 나왔는데
3000점 이상은 그나마 보통..

8000점이 넘어야 완전 쾌적이다..

아 눈물나 ;ㅁ;



'게임 > PS3' 카테고리의 다른 글

[그란투리스모5] 초보자 가이드 - 1  (0) 2010.12.23
[PS3] 그란투리스모5가 드디어 왔다!!  (0) 2010.11.24
[PS3] 로지텍 G27 구매...  (1) 2010.09.11
Posted by SadDev
|

ListView 를 써서 DataGridView의 작업을 하려 했던 내가 한심하다 ;ㅁ;
Listview의 Detail 모드에서 데이터를 작업해보려 하니 이게 아니지 싶어서 고민을 해봤다.

그러다 보니.. DataTable이 생각났고 DataTable을 쓰려고 했더니 이넘이 또 WindowForm 에서는 안된다 ㅡㅡ;;

그래서 비슷한 기능을 가진녀석이 있을거라는 생각에 ToolBox를 열심히 뒤져보니 역시나...

DataGridView를 찾아냈다.

사용법은 간단하다.

using System.Windows.Forms;

namespace WindowsFormsApplication1
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      Init();
    }

    public void Init()
    {
      DataGridView dgrid = new DataGridView();  //  DataGridView 생성
      dgrid.Width = 600;
      dgrid.Height = 300;
      this.Controls.Add(dgrid);   

      dgrid.ColumnCount = 3;    // 컬럼의 수 지정
      dgrid.ColumnHeadersVisible = true;

      dgrid.Columns[0].Name = "ID";   // 컬럼 1의 이름
      dgrid.Columns[1].Name = "Name";   // 컬럼 2의 이름
      dgrid.Columns[2].Name = "Age";   // 컬럼 3의 이름

      dgrid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);   // 컬럼의 크기를 자동으로 조절

     // 데이터는 아래처럼 string[] 배열에 담아서 그냥 Rows.Add(string 배열) 해주면 편하다.
      for (int i = 0; i < 5; i++)
      {
        string[] rows = new string[]{i.ToString(), "aaanmjrystyktsyk,ts,dtuk", ((i+1)*10 ).ToString()};
        dgrid.Rows.Add(rows);
      }

    }
  }
}

Posted by SadDev
|

데이터 베이스 목록을 가져오는 쿼리

SELECT dtb.name AS [Name] FROM master.sys.databases

Posted by SadDev
|
select col.name, col.column_id, st.name as DT_name, col.max_length, col.is_nullable, col.is_identity, defCst.definition 
from sys.columns col left outer join sys.types st on st.user_type_id = col.user_type_id 
left outer join sys.default_constraints defCst on defCst.parent_object_id = col.object_id and defCst.parent_column_id = col.column_id 
where col.object_id = object_id(N'dbo.Music') order by col.column_id
아래 이미지는 실행 결과..

컬럼의 이름, 아이디, 형식 , 크기, null, identity, 기본 값 이 나온다. (원래는 더 많은 정보가 나오지만 필요한것만 나오도록 엄청 많이 삭제....)

Posted by SadDev
|

이거 링크 찾기가 귀찮기도 하고.
이런 저런 이유로 ....... -_-;


Windows Phone 7 개발에 사용되는 "Microsoft Windows Phone Developer Tools  CTP "
개인 개발자에게 평생 무료라고 한다.
기업은 아마 별도 구매겠지..


윈도우7 이상에서만 설치 된다고 하니.. 윈도우 7부터 설치 하세요

Posted by SadDev
|

TaskBar_shuffle  http://nerdcave.webs.com/

태스크바 셔플은 시작메뉴줄에 들어가는 프로그램 리스트를 마음대로 정리 할 수 있는 프로그램 입니다.

개인적으로 프로그램을 항상 일정하게 맞춰놓고 사용합니다.

예를 들면
1. 아웃룩
2. 비쥬얼 스튜디오
3. 인터넷 익스플로러
이후 는 마음대로 실행 하지만.
위 프로그램들은 가능하면 차례대로 실행 시켜둬야 (앞쪽에 배치 시켜둬야) 많은 프로그램들이 실행되도 쉽게 찾을 수 있거든요.

그래서 종종 위 프로그램을 사용합니다.

그런데 여기서 궁금하신 분들이 계실겁니다.

애초에 차례대로 실행 해놨는데 이 프로그램을 다시 쓸일이 대체 머가 있냐고....
근데 생각보다 자주 사용하게 됩니다...바로 윈도우가 미쳐서 가끔 오류가 나고 이때 시작줄에 있는 프로그램 리스트가 꼬이더군요..

프로그램 한두개 띄워 놨을땐 괜찮은데 여러개가 떠있을때 이러면 짜증이 나더군요.

사용법은 간단합니다.


위처럼 시작 표시줄에 여러가지 프로그램이 리스트가 떠있습니다.
원하는 프로그램을 선택해서 드래그 해서 원하는 위치로 옮겨줍니다.

그러면 아래처럼..

내가 원하는 위치로 정렬이 됩니다.

따로 설치하는 프로그램은 아니고 그냥 실행만 하면 됩니다.
한번 써보시길..

=================================================================================================
Posted by SadDev
|