(Page_Load에서 함수를 호출하지 않고 PageSetting내의 내용을 바로 실행해도 별다른 이상은 없지만,
알아보기 좋기위한 일종의 규칙이라고 볼 수 있다.)
PageSetting에서는 DB를 연결하고, DB로부터 데이터를 받아 테이블을 출력하기 위해 _Puzzle 클래스의 TableSetting 함수를 호출한다.
BoxNum- 몇행 몇열의 Box를 만들지를 말한다(5 × 5 = 25 에서는 BoxNum = 5))
StrQuestion- 퍼즐의 정답이 나열 된 답을 말한다(망,둥,이,,오,치,,발,전,기,,열,,자,,,기,,제,,전,구,,품,절)
false- Box안에 답을 같이 출력한다면 "true" 출력하지 않는다면 "false"
protected void Page_Load(object sender, EventArgs e) |
protected void PageSetting() } |
PuzzleClass.cs_ViewPuzzle
public DataRow ViewPuzzle(string procName, int idx) cmd.CommandText = procName; SqlDataAdapter adap = new SqlDataAdapter(cmd); if ((ds != null) && (ds.Tables[0].Rows.Count > 0)) |
이럴때는 클래스를 이용하자~
문제를 출제하기위해 출력되는 테이블이나, 문제를 풀기위해 출력되는 테이블은 정답이 같이 출력되는지만 다를뿐 큰차이는 없다.
이럴때는 더더욱 함수로 따로 정리하여 정리하는 것이 좋다. 비슷한 코딩이 여러군데에서 사용된다면, 공통으로 사용하도록 클래스에 저장하고 클래스내의 함수를 출력하기만 하면 더욱 효율적이다.
PuzzleClass.cs_TableSetting
TableSetting의 경우 문제출제페이지(PuzzleWrite.aspx.cs)와 문제출력페이지(PuzzleView.aspx.cs) 두 군데에서 호출된다.
다만, PuzzleWrite는 _Puzzle.TableSetting(_BoxNum, "", false)와 _Puzzle.TableSetting(_BoxNum, _StrQuestion, true)형태로
PuzzleView는 _Puzzle.TableSetting(BoxNum, _StrQuestion, false) 형태이다.
때문에 (StrQuestion == "") 조건으로 WriteTableSetting 또는 ViewTableSetting 함수를 return한다.
{
string returnValue = "";
if (StrQuestion == "")
{
returnValue = WriteTableSetting(BoxNum);
}
else
{
returnValue = ViewTableSetting(BoxNum,StrQuestion, flag);
}
return returnValue;
}
PuzzleClass.cs_ViewTableSetting
public string ViewTableSetting(int BoxNum, string StrQuestion, bool flag) int num = 0;
sb.AppendLine("<td width=\"50\" height=\"50\" bgcolor = " + color + " style=\"vertical-align:bottom;\">"); |
ViewPuzzle.aspx.cs_Button1_Click
사용자가 풀어 본 답이 DB에 저장된 정답과 일치하는지 비교한다. 사용자가 입력해 puzzleAnswer에 입력된 값은 "망둥이오치..."의
형태지만, DB에서 가져온 정답의 형태는 "망,둥,이,,," 이기 때문에 .Replace로 ','를 ''로 대체한다.
Replace한 답과 puzzleAnswer.Value이 일치한다면 정답! 그렇지 않으면 오답!
protected void Button1_Click(object sender, EventArgs e) |
'ASP.NET_ 낱말퍼즐 > 프로그램' 카테고리의 다른 글
ASP.NET으로 '낱말잇기 퍼즐'만들기_ 프로그램하기_Default (0) | 2011.02.14 |
---|---|
ASP.NET으로 '낱말잇기 퍼즐'만들기_ 프로그램하기_PuzzleWrite (0) | 2011.02.14 |
ASP.NET으로 '낱말잇기 퍼즐' 만들기_ 방향잡기 (0) | 2011.02.11 |