진행상황 #
1/27일
C# 사용하기 : 세미나 과제(숫자 야구 게임)
C# 사용하기 : 세미나 과제(숫자 야구 게임)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// 난수 생성을 위한 Random 클래스
Random rand = new Random();
int[] deck = new int[9];
for (int i = 0; i < 9; i++)
{
deck[i] = i + 1;
}
// 2. 결과를 넣을 배열 생성
int[] result = new int[3];
// 3. 1~9까지의 숫자중 적당한 난수 2개를 뽑아
// deck에서 해당 index의 숫자들의 자리를 바꿔줌
// 이 작업을 적당히(?) 여러번 수행하면 끝
for (int i = 0; i < 10; i++) // 적당히 10번
{
// 난수뽑기 방식2: 최대값을 넣으면
// 0 <= x < [최대값]의 난수 얻을수 있음
int num1 = rand.Next(9);
// 난수뽑기 방식3: 최소값과 최대값을 넣으면
// [최소값] <= x < [최대값]의 난수를 얻을수 있음
int num2 = rand.Next(0, 9);
// 얻어온 index대로 swap
int temp = deck[num1];
deck[num1] = deck[num2];
deck[num2] = temp;
}
for (int i = 0; i < 3; i++)
{
result[i] = deck[i];
Console.Out.Write(result[i]);//생성된 랜덤 세자리 숫자. 실제로 게임할때는 지워야!
}
Console.Write("\n");
int[] key = new int[3];
int ball = 0;
int strike = 0;
while (strike != 3)
{
ball = 0;
strike = 0;
Console.WriteLine("수를 입력하세요:");//한번에 세자리 다 받을 수는 없을까요. 어레이리스트 같은거 써야해요?
String num = Console.ReadLine();
if (num.Length != 3)
{
Console.WriteLine("3자리수를 입력해주세요");
continue;
}
key[0] = int.Parse(num[0].ToString());
key[1] = int.Parse(num[1].ToString());
key[2] = int.Parse(num[2].ToString());
if (key.Contains<int>(0))
{
Console.WriteLine("1~9사이의 숫자로만 입력해주세요");
continue;
}
if (key[0] == key[1] || key[1] == key[2] || key[2] == key[0])
{
Console.WriteLine("서로 다른수를 입력해주세요");
continue;
}
for (int i = 0; i < 3; i++)//각 자리의 숫자가 같으면 스트라이크
{
if (key[i] == result[i])
strike += 1;
}
for (int i = 0; i < 3; i++)//모든 숫자를 비교하여 (같은 횟수)-(스트라이크)수 하면 ball의 횟수
{
for (int j = 0; j < 3; j++)
if (key[i] == result[j])
ball += 1;
}
Console.Write("ball:");
Console.WriteLine(ball - strike);
Console.Write("strike:");
Console.WriteLine(strike);
if (ball == 0 & strike - ball == 0)
Console.WriteLine("Out입니다ㅋㅋㅋㅋㅋㅋ");
}
}
}
}
2/2
XNA 설치
XNA CREATORS CLUB ONLINE 가입
XNA 사용
와우 서버 분석
XNA 설치
XNA CREATORS CLUB ONLINE 가입
XNA 사용
와우 서버 분석
2/9
C# 예제 복소수 연산
클래스
C# 예제 복소수 연산
클래스
본 게임 #
program.cs : game.run()게임을 실행하는 클래스
game2.cs : 게임 알고리즘 클래스
card.cs : 각각의 카드를 정의하는 클래스
game2.cs : 게임 알고리즘 클래스
card.cs : 각각의 카드를 정의하는 클래스
그 외 클래스가 있지만 위의 3개가 기본입니다.
알고리즘
두 카드가 선택되었을 때 각 카드에서 가로줄 또는 세로줄을 그린다.
가로줄을 선택했다고 가정하자.
두 가로줄의 양 방향으로 부딪히지않고 지나갈 수 있는 최대값을 구한다.
두 가로줄의 최대값까지 겹치는 부분을 선택한다.
그리고 겹치는 부분에서 세로로 한 줄로 그을 수 있는 부분이 있으면
두 패는 제거가능한 패이다.
두 카드가 선택되었을 때 각 카드에서 가로줄 또는 세로줄을 그린다.
가로줄을 선택했다고 가정하자.
두 가로줄의 양 방향으로 부딪히지않고 지나갈 수 있는 최대값을 구한다.
두 가로줄의 최대값까지 겹치는 부분을 선택한다.
그리고 겹치는 부분에서 세로로 한 줄로 그을 수 있는 부분이 있으면
두 패는 제거가능한 패이다.
이 외 ㄱ형 이나 ㅣ형은 따로 쉽게 정의해준다.







