通过C#实现系统登陆,进入闯关小游戏

本程序很适合初学C#的同学学习,能有效的来了解c#的各类基础知识,界面编程。这还是我很多年前写的,特分享一下……🤭

源码在我的主页下方:https://download.csdn.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;
        }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chilian12321

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值