Sussman 이란 사람 外 여러명이 쓴 "[WroxPress]David Sussmans Beginning DynamicWebsitesWith ASP Dot NET Web Matrix" 에서 웹매트리스를 이용하여 만든 게임입니다. VB코드로 된것을 C#Code로 바꿔 봤습니다..
웹메트리스가 VS.NET 버젼으로..평이한 코드이나 랜덤 함수에 대해 약간이 지식이 생길듯 하군요..
게임 룰은 짜시다보면 금방 이해 하실수 있을테고 (코드만 봐도..) 아무튼 디자인이 끝난 상태 입니다.
디자인 감각이 별루 없어서...쩝..
좀더 멋지게 하셔도 되구요.. Table,Label,Button,ImageControl로 구성 되었습니다.
귀찮으시다구요?,, 저와 같이 디자인에는 소질이 없으시다면.. 요밑에 HTML 쏘스를 긁어다... ㅎㅎ
[HTML Code]
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="SnakeEye.WebForm1" %>
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<strong><font size="4">
<table style="WIDTH: 500px; HEIGHT: 150px" height="150" width="500">
<tbody>
<tr>
<td>
<p align="left"><strong><font size="5"><IMG src="Images/Dice.gif">주사위 게임(Snake Eye)</font></strong>
</p>
</td>
</tr>
<tr>
<td>둘다 1이 나올때 까지 진행 하세요~!</td>
</tr>
<tr>
<td><asp:label id="Label1" runat="server" borderstyle="Solid" height="44px" font-size="X-Large"
font-names="Verdana">0</asp:label><asp:label id="Label2" runat="server" borderstyle="Solid" height="44px" font-size="X-Large"
font-names="Verdana">0</asp:label>
<asp:label id="Label3" runat="server" visible="False" ForeColor="Blue" Font-Bold="True">허걱~!
첨부터 다시 하셔야 겠어요. ㅜ,.ㅜ</asp:label></td>
</tr>
<tr>
<td>
<p align="left"><FONT face="굴림"><asp:image id="Image1" runat="server" ImageUrl="Images/1.gif"></asp:image>
<asp:image id="Image2" runat="server" ImageUrl="Images/6.gif"></asp:image></FONT></p>
</td>
</tr>
<TR>
<TD>
<P align="left"><asp:button id="Button1" runat="server" Text="계속 눌러주세용~!"></asp:button></P>
</TD>
</TR>
<tr>
<td>
<p align="left"><asp:label id="Label4" runat="server" font-size="X-Large" font-names="Verdana" forecolor="Red">0</asp:label>
(점수는 위의 주사위 수의 합이 누적된 값입니다.)
</p>
</td>
</tr>
<tr>
<td>마지막게임점수 :
<asp:label id="Label5" runat="server" font-size="X-Large" font-names="Verdana" forecolor="Red">0</asp:label></td>
</tr>
<tr>
<td>
<p align="left">지금까지 최고점수 :
<asp:label id="Label6" runat="server" font-size="X-Large" font-names="Verdana" forecolor="Red">0</asp:label>
<asp:Button id="Button2" runat="server" Text="최고점수 리셋"></asp:Button></p>
</td>
</tr>
</tbody>
</table>
</font></strong>
<!-- Insert content here --></form>
</body>
</HTML>
----------------------------------------------------------------------------------------
손쉽게 끝!!!.
다음은 CS 코드 부분입니다...
[CS Code]
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace SnakeEye
{
/// <summary>
/// WebForm1에 대한 요약 설명입니다.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.WebControls.Label Label5;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.Image Image1;
protected System.Web.UI.WebControls.Image Image2;
protected System.Web.UI.WebControls.Label Label6;
private void Page_Load(object sender, System.EventArgs e)
{
// 여기에 사용자 코드를 배치하여 페이지를 초기화합니다.
}
#region Web Form 디자이너에서 생성한 코드
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 이 호출은 ASP.NET Web Form 디자이너에 필요합니다.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 디자이너 지원에 필요한 메서드입니다.
/// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
Label3.Visible = false;
Random random = new Random();
int lbl1 = random.Next(1,7);
int lbl2 = random.Next(1,7);
Label1.Text = lbl1.ToString();
Label2.Text = lbl2.ToString();
Image1.ImageUrl = "Images/" + Label1.Text + ".gif";
Image2.ImageUrl = "Images/" + Label2.Text + ".gif";
if(lbl1 == 1 && lbl2 == 1)
{
Label5.Text = Label4.Text;
if(int.Parse(Label5.Text) >= int.Parse(Label6.Text))
{
Label6.Text = Label5.Text;
}
Label4.Text = "0";
Label3.Visible = true;
}
else
{
int _Sum = (int.Parse(Label4.Text) + lbl1 + lbl2);
Label4.Text = _Sum.ToString();
}
}
private void Button2_Click(object sender, System.EventArgs e)
{
Label6.Text = "0";
}
}
}
푸른색 부분만 코딩 하시면 되겠죠.. 아니면?? 이것도 Ctrl + V.. ㅎㅎㅎ
디자인폼에서 Button1과 Button2를 더블 클릭 하면 자동으로 이벤트핸들러가 생성.. 코딩하기 좋게.. Button1_Click 이벤트 핸들러 와 Button2_Click 이벤트 핸들러 안에서 깜박 거리겠죠.. 저빨간색 바탕으로 칠해논것과 셋트로 자동 생성 됩니다.. (자세한건 이벤트와 델리게이트 참고..)
윈폼이 더 럭셔리해보일거 같은데.. 혹시 해보시고싶으신 분은 WinForm 으로 해보시는것도..좋겠네요... 사실은 최고 점수 갱신때는 등록 하는것도 있긴한데..누가 이런 재미 없는 게임을 하고 최고 점수 냈다고 등록을 할까요?? ㅎㅎ 그래도 해봐야겠지요.. 다음에는 오늘 이 웹페이지에 덧붙여서 계속 올려 볼까 합니다... 아흑~
필요한 이미지도 같이 올려요~!! 제일 위쪽 오른쪽에 있습니다...
허접허다.. ㅠ,.ㅠ
즐거운 주말들 되세요~!!
'Program > C#' 카테고리의 다른 글
Delegate 사용 (0) | 2010.03.07 |
---|---|
[ASP.NET] Referrer 속성으로 사이트 방문시 유입 경로 알아내기 (0) | 2010.03.05 |
Silent Install of MS .Net Framework Version 2 (0) | 2010.02.05 |
텍스트박스에 워터 마크 추가(배경) (0) | 2010.01.26 |
윈도우 폼 간 도킹 기능 (0) | 2010.01.26 |