金色的骷髅 发表于 2015-1-16 14:26:42

来一篇关于NET的兴趣编程:C#扫雷代码

我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《Java的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。usingSystem;
usingSystem.Drawing;
usingSystem.Windows.Forms;
namespaceWindowsFormsApplication1
{
publicpartialclassFrm1:Form
{
#region变量
publicintqishu;
publicstaticintls=20,hs=11;
publicintlgs=30;//列数,行数。
publicintbl=0;//是不是从头布雷
publicinttime;
publicint[,]bulei=newint;//bulei数组的值0代表无雷,1-8代表雷的个数,9代表雷
publicintceshi=0;
publicint[,]click=newint;//10暗示要扫除既是单击的11暗示右击一次,12暗示右击两次16暗示以扫除过了
publicintsum=0;
publicinttimerEnable=0;//游戏所处的形态0是游戏中
#endregion
publicFrm1()
{
InitializeComponent();
}
///
///标识雷的个数和可插的旗数
///
publicvoidQishu()
{
if(qishu<=lgs)
{
gamesource.Text="00"+(lgs-qishu)。ToString();
}
else
{
gamesource.Text="00"+(lgs-qishu)。ToString();
}
}
///
///画方格
///
///<实例工具>
///<要绘图的地位>
///<要绘图的地位>
///<绘图利用的色彩>
publicvoidDline(Graphicsdline,intmx1,intmy1,Penmypen)
{
dline.DrawLine(mypen,mx1,my1,mx1+20,my1);
dline.DrawLine(mypen,mx1,my1,mx1,my1+20);
dline.DrawLine(newPen(Color.Black),mx1+20,my1,mx1+20,my1+20);
dline.DrawLine(newPen(Color.Black),mx1,my1+20,mx1+20,my1+20);
}
///
///看是不是能够向四周挪动
///
///<挪动的基础X坐标>
///<挪动的基础Y坐标>
publicvoidPanjie(intx,inty)
{
Pl(x,y);
if(y-1>=0)
{
Pl(x,y-1);
if(x-1>=0)
{
Pl(x-1,y-1);
}
if(x+1
{
Pl(x+1,y-1);
}
}
if(y+1<hs)
{
Pl(x,y+1);
if(x-1>=0)
{
Pl(x-1,y+1);
}
if(x+1<ls)
{
Pl(x+1,y+1);
}
}
if(x-1>=0)
{
Pl(x-1,y);
}
if(x+1<ls)
{
Pl(x+1,y);
}
}
///
///判别是不是要清扫除
///
///<要判别的基础X坐标>
///<要判别的基础Y坐标>
publicvoidPl(intx,inty)
{
if(bulei==0&&click!=10&&click!=11&&click!=16)
{
click=10;
Panjie(x,y);
}
if(bulei>0&&bulei<9&&click!=10&&click!=11&&click!=16)
{
click=10;
}
}
///
///初始化数组,布雷,判别四周的雷数
///
publicvoidBlpl()
{
sum=ls*hs;
qishu=0;
intmx,my;
//初始化数组9暗示雷数
intmx1,my1;
intsum1=0;
for(mx=0;mx<ls;mx++)
{
for(my=0;my
{
bulei=0;
click=0;
}
}
while(sum1
//决意雷的个数和雷德地位
{
sum1=0;
Randomr=newRandom((int)DateTime.Now.Ticks);
mx=r.Next(ls-1);
my=r.Next(hs-1);
bulei=9;
for(mx1=0;mx1<ls;mx1++)
{
for(my1=0;my1<hs;my1++)
{
sum1+=bulei;
}
}
}
//判别四周雷的个数
for(mx=0;mx<ls;mx++)
{
for(my=0;my<hs;my++)
{
if(bulei!=9)
{
if(mx-1>=0)
{
if(bulei==9)
{
bulei++;
}
if(my-1>=0&&bulei==9)
{
bulei++;
}
if(my+1<hs&&bulei==9)
{
bulei++;
}
}
if(mx+1
{
if(bulei==9)
{
bulei++;
}
if(my-1>=0&&bulei==9)
{
bulei++;
}
if(my+1<hs&&bulei==9)
{
bulei++;
}
}
if(my-1>=0&&bulei==9)
{
bulei++;
}
if(my+1
{
bulei++;
}
}
}
}
}
///
///右击的重绘
///
///>
publicvoidRdraw(Graphicsdline)
{
stringtext;
intmx,my;
intmx1,my1;
for(mx=0;mx<ls;mx++)
{
for(my=0;my<hs;my++)
{
mx1=mx*2+mx*20+4;
my1=my*2+my*20+4;
if(click==11)
{
//第一次右击画旗
dline.DrawLine(newPen(Color.White),mx1,my1,mx1+20,my1+20);
dline.DrawLine(newPen(Color.White),mx1,my1,mx1,my1+20);
dline.DrawLine(newPen(Color.Black),mx1+20,my1,mx1+20,my1+20);
dline.DrawLine(newPen(Color.Black),mx1,my1+20,mx1+20,my1+20);
dline.FillRectangle(newSolidBrush(Color.FromArgb(224,224,224)),mx1+1,my1+1,18,18);
text="P";
dline.DrawString(text,newFont("宋体",15),newSolidBrush(Color.Red),mx1+2,my1+2);
}
if(click==12)
{
//第二次右击画问号
dline.DrawLine(newPen(Color.White),mx1,my1,mx1+20,my1+20);
dline.DrawLine(newPen(Color.White),mx1,my1,mx1,my1+20);
dline.DrawLine(newPen(Color.Black),mx1+20,my1,mx1+20,my1+20);
dline.DrawLine(newPen(Color.Black),mx1,my1+20,mx1+20,my1+20);
dline.FillRectangle(newSolidBrush(Color.FromArgb(224,224,224)),mx1+1,my1+1,18,18);
text="?";
dline.DrawString(text,newFont("宋体",15),newSolidBrush(Color.Black),mx1+2,my1+2);
}
if(click==13)
{
//第三次右击恢回复样
click=2;
dline.DrawLine(newPen(Color.White),mx1,my1,mx1+20,my1+20);
dline.DrawLine(newPen(Color.White),mx1,my1,mx1,my1+20);
dline.DrawLine(newPen(Color.Black),mx1+20,my1,mx1+20,my1+20);
dline.DrawLine(newPen(Color.Black),mx1,my1+20,mx1+20,my1+20);
dline.FillRectangle(newSolidBrush(Color.FromArgb(224,224,224)),mx1+1,my1+1,18,18);
}
}
}
}
///
///初始化屏幕(包还一切的)
///
publicvoidStartscr()
{
Graphicsdline=labdraw.CreateGraphics();
time=0;
Blpl();
timer1.Enabled=false;
Colorc=Color.FromArgb(224,224,224);
labdraw.CreateGraphics()。Clear(c);
Drawscreen(dline);
timerEnable=0;
labtime.Text=("000");
}
///
///画界面
///
///>
publicvoidDrawscreen(Graphicsdline)
{
sum=0;//失掉没分明的格子数
intmx,my;
intmx1=0,my1=0;//失掉要绘图的坐标
stringtext;
for(mx=0;mx<ls;mx++)
{
for(my=0;my<hs;my++)
{
//绘图位置置mx,my分离是屏幕x,y轴
mx1=mx*2+mx*20+4;
my1=my*2+my*20+4;
if(click!=10&&click!=12&&click!=16&&click!=15)
{
//上面用于画平面形矩形;
sum++;
Penmypen=newPen(Color.Gray);
Dline(dline,mx1,my1,mypen);
dline.FillRectangle(newSolidBrush(Color.FromArgb(224,224,224)),mx1+1,my1+1,18,18);
}
if((click==10||click==16))
{
click=16;//扫除的格子
//提醒四周的雷数
if(bulei<=8&&bulei>0)
{
text=bulei.ToString();
dline.DrawString(text,newFont("宋体",15),newSolidBrush(Color.Black),mx1+2,my1+2);
}
//显现雷
if((bulei==9||bulei==100))
{
text="*";
dline.DrawString(text,newFont("宋体",15),newSolidBrush(Color.Black),mx1+2,my1+2);
if(bulei==100)
{
//被单击的雷上画上叉号
dline.DrawLine(newPen(Color.Red),mx1,my1,mx1+20,my1+20);
dline.DrawLine(newPen(Color.Red),mx1,my1+20,mx1+20,my1);
}
}
}
}
//用于画旗和问号
Rdraw(dline);
}
}
///
///当为雷时的算法
///
///>
///>
publicvoidPanlei(intx,inty)
{
if(bulei!=0)
{
if(bulei==9)
{
timer1.Enabled=false;//使计时器中断
timerEnable=1;//使游戏出游停止形态
bulei=100;
inti,j;
for(i=0;i<ls;i++)
{
for(j=0;j<hs;j++)
{
if(bulei==9||bulei==100)
{
click=10;//显现一切的雷
}
}
}
}
if(bulei>0&&bulei<9)
{
click=10;
}
}
else
{
Panjie(x,y);
}
}
///
///回到游戏入手下手的界面
///
///
///
privatevoidbtnreplay_Click(objectsender,EventArgse)
{
//初始化统统包含布雷,界面,click数组
Startscr();
}
///
///盘算游戏所用的工夫
///
///
///
privatevoidtimer1_Tick(objectsender,EventArgse)
{
time++;
if(time<=99)
{
if(time<10)
{
labtime.Text=("00"+time.ToString());
}
else
{
labtime.Text=("0"+time.ToString());
}
}
else
{
if(time<99)
{
labtime.Text=(time.ToString());
}
else
{
timer1.Enabled=false;
MessageBox.Show("RIMEOVER");
time=0;
timerEnable=1;
}
}
}
///
///在启动的游戏时初始化界面
///
///
///
privatevoidlabdraw_Paint(objectsender,PaintEventArgse)
{
Graphicsdline=e.Graphics;
if(bl==0)
{
Blpl();
Drawscreen(dline);
}
else
{
Drawscreen(dline);
}
}
///
/////单击时触发的事务
///
///
///
privatevoidlabdraw_MouseClick(objectsender,MouseEventArgse)
{
bl=10;
inti=0,j=0;
if(timerEnable==0)//判别游戏是不是处于停止形态
{
timer1.Enabled=true;
Graphicsdline=labdraw.CreateGraphics();//将LAB1创建成图形工具
intmx=0,my=0;
intmx2=0,my2=0;
intmx3=0,my3=0;
//判别鼠标所点地位
mx2=e.X;
my2=e.Y;
for(i=0;i<ls;i++)
{
for(j=0;j<hs;j++)
{
mx=4+i*2+i*20;
my=4+j*2+j*20;
//找到单击地位代表的数组
if(mx<mx2&&mx+20+4>mx2&&my<my2&&my2<my+20+4)
{
mx3=i;
my3=j;
break;
}
}
if(j<9)
{
break;
}
}
//判别是左击仍是右击
if(e.Button==MouseButtons.Right&&click!=10&&mx3>=0&&my3>=0&&click!=16)
{
//第2次右击
if(click==11&&click!=10)
{
click=12;
--qishu;
}
else
{
//第1次右击
if(click!=12&&click!=10)
{
if(qishu
{
click=11;
qishu++;
}
}
if(click==12&&click!=10)
{
click=13;
}
}
//右击的画图事务
Rdraw(dline);
Qishu();
}
else
{
//左击
if(click!=11&&click!=16)
{
click=15;
Colorc=Color.FromArgb(224,224,224);
//清屏用背景色彩
labdraw.CreateGraphics()。Clear(c);
Panlei(mx3,my3);
Drawscreen(dline);
}
if(bulei==100)
{
MessageBox.Show("GAMEOVER");
timer1.Enabled=false;
timerEnable=1;
}
}
if(sum==lgs)
{
MessageBox.Show("GAMEWIN");
timer1.Enabled=false;
timerEnable=1;
}
}
}
privatevoidFrm1_Load(objectsender,EventArgse)
{
Qishu();//输入雷的个数
//this.Height=hs*22+20;
//this.Width=ls*22+8;
}
}
}
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。

柔情似水 发表于 2015-1-18 14:40:46

ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。

灵魂腐蚀 发表于 2015-1-24 12:53:17

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。

分手快乐 发表于 2015-2-1 16:04:21

最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。

透明 发表于 2015-2-7 09:01:12

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。

莫相离 发表于 2015-2-21 17:15:54

ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。

山那边是海 发表于 2015-3-6 21:03:43

CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。

简单生活 发表于 2015-3-13 09:45:04

使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

海妖 发表于 2015-3-20 19:37:39

CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
页: [1]
查看完整版本: 来一篇关于NET的兴趣编程:C#扫雷代码