通过C#实现系统登陆,进入闯关小游戏
本程序很适合初学C#的同学学习,能有效的来了解c#的各类基础知识,界面编程。这还是我很多年前写的,特分享一下……????
源码在我的主页下方:https://download.****.net/download/chilian12321/12475464
1.登录界面实现了文件读取,保存,用户名密码的校对。
public Form1()
{
int fslong;
InitializeComponent();
FileStream sFile = new FileStream(".\\..\\noteTxt.txt", FileMode.Open);
fslong = (int)(sFile.Length);
byte[] data = new byte[sFile.Length];
sFile.Seek(0, SeekOrigin.Begin);
sFile.Read(data, 0, fslong);
note = Convert.ToChar(data[0]);
sFile.Close();
if (note =='1')
{
get_in_password();
radioButton1.Checked = !last;
}
}
int Log_in ()
{
if (textBox1.Text == "xiejinhui")
{
if (textBox2.Text == "123456")
{
//MessageBox.Show("登陆成功");
Form2 f = new Form2();
Form2.isRunMain = true;
f.Show();
this.Close(); //关闭Form1窗体
}
}
else { MessageBox.Show("登陆失败"); }
return 0;
}
int save_in_password()
{
name = textBox1.Text ;
password = Convert.ToInt32(textBox2.Text);
FileStream fs1 = new FileStream(".\\..\\TestTxt.txt", FileMode.Create, FileAccess.Write);//创建写入文件
StreamWriter sr=new StreamWriter(fs1);
sr.WriteLine(this.name+"+"+this.password);//开始写入值
sr.Close();
fs1.Close();
return 0;
}
2,登录进去之后,可以进行一场闯关游戏。
所有的游戏界面都是通过像素自己的函数实现
void drawimage()
{
if (temp == 1)
{
//Console.Write("xjh");
myArray[x_temp,y_temp] = 0;
x_temp += xopt[n];
y_temp += yopt[n];
if (x_temp == 2 && y_temp == 8)
{
myArray[x_temp, y_temp] = 3;
dis();
display();
MessageBox.Show("\n you deid!\n");
}
else
{
myArray[x_temp,y_temp] = 2;
steps++;
dis();
display();
}
}
if (x_temp == endx && y_temp == endy)
{
MessageBox.Show(" 恭喜过关!");
tt++;
init();
dis();
display();
}
if (tt == 5)
{
MessageBox.Show("恭喜过全关!");
this.Close();
}
if (x_temp == 2 && y_temp == 8)
{
myArray[x_temp, y_temp] = 3;
MessageBox.Show(" game voer!!!");
this.Close();
}
}
private void Form2_KeyDown(object sender,KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up:
Console.Write("up");
n = 0;
if (myArray[x_temp - 1, y_temp + 0] == 0 || myArray[x_temp - 1, y_temp + 0] == 5)
temp = 1;
else temp = 0;
break;
case Keys.Down:
Console.Write("Down");
n = 1;
if (myArray[x_temp + 1, y_temp + 0] == 0 || myArray[x_temp + 1, y_temp + 0] == 5)
temp = 1;
else temp = 0;
break;
case Keys.Left:
//Console.Write("{1}", x_temp);
n = 2;
if (myArray[x_temp + 0, y_temp - 1] == 0 || myArray[x_temp + 0, y_temp - 1] == 5)
{
temp = 1;
Console.Write("left");
}
else temp = 0;
break;
case Keys.Right:
n = 3;
if (myArray[x_temp + 0, y_temp + 1] == 0 || myArray[x_temp + 0, y_temp + 1] == 5)
{
temp = 1;
Console.Write("Right");
}
else temp = 0;
break;
default:
break;
}
drawimage();
}
画圆:
int mycir(int x0, int y0, int r0, byte r, byte g, byte b, byte v, byte full)
{
int x = 0, y = r0, d0 = 0;
if (full == 1)
{
int xmin, xmax, y1;
// for (x++, xmin = x0 - r0, xmax = x0 + r0, y1 = y0; xmin <= xmax; xmin++) setpixel(xmin, y1, r, g, b, v);
while (x <= y)
{
if (d0 > 0)
{
for (xmin = x0 - x, xmax = x0 + x, y1 = y0 + y; xmin <= xmax; xmin++) setpixel(xmin, y1, r, g, b, v);
for (xmin = x0 - x, xmax = x0 + x, y1 = y0 - y; xmin <= xmax; xmin++) setpixel(xmin, y1, r, g, b, v);
d0 -= 2 * y - 1; y--;
}
else
{
for (xmin = x0 - y, xmax = x0 + y, y1 = y0 + x; xmin <= xmax; xmin++) setpixel(xmin, y1, r, g, b, v);
for (xmin = x0 - y, xmax = x0 + y, y1 = y0 - x; xmin <= xmax; xmin++) setpixel(xmin, y1, r, g, b, v);
d0 += 2 * x + 1; x++;
}
}
}
else
{
while (x < y)
{
if (d0 < 0) { d0 += 2 * x + 1; x++; }
else { d0 -= 2 * y - 1; y--; }
setpixel(x0 + x, y0 + y, r, g, b, v);
setpixel(x0 + y, y0 + x, r, g, b, v);
setpixel(x0 + x, y0 - y, r, g, b, v);
setpixel(x0 - y, y0 + x, r, g, b, v);
setpixel(x0 - x, y0 - y, r, g, b, v);
setpixel(x0 - y, y0 - x, r, g, b, v);
setpixel(x0 - x, y0 + y, r, g, b, v);
setpixel(x0 + y, y0 - x, r, g, b, v);
}
}
return 0;
}
画线段
int myline_w(int x1, int y1, int x2, int y2, byte r, byte g, byte b, byte v, int with)
{
int m, n, x, y, ymax, d = 0;
if (y1 < y2) { x = x1; y = y1; ymax = y2; m = x2 - x1; n = y2 - y1; }
else { x = x2; y = y2; ymax = y1; m = x1 - x2; n = y1 - y2; }
if (y1 == y2)
{
for (x = x1; x <= x2; x++) mycir(x, y1, with, r, g, b, v, 1);
for (x = x2; x <= x1; x++) mycir(x, y1, with, r, g, b, v, 1);
}
else
{
if (m > 0) while (y <= ymax)
{
mycir(x, y, with, r, g, b, v, 1);
if (d <= 0) { d += m; y++; }
else { d -= n; x++; }
}
else while (y <= ymax)
{
mycir(x, y, with, r, g, b, v, 1);
if (d <= 0) { d -= m; y++; }
else { d -= n; x--; }
}
}
return 0;
}