Загрузка...

С# хэлпаните пацаны

Тема в разделе C# создана пользователем nagibator228228 15 дек 2019. (поднята 15 дек 2019) 194 просмотра

  1. nagibator228228
    nagibator228228 Автор темы 15 дек 2019 361 4 июл 2018
    Пацаны, хелпаните, в общем сделал подобие лифта, который катается по этажам. Нужно сделать такую хуевину, чтобы лифт не менял направления движения, пока не обработает все вызовы в текущем направлении, но так же подсаживал пассажиров по пути движения. У меня блять хуета получилась, если он едет на заданный этаж и я нажимаю другой этаж то он уже хуй забивает на ранее заданный этаж и едет на новый и не ждет пассажиров нихуя, с открытыми дверьми уезжает и похуй. Так же надо сделать, чтобы при нажатии на вызов лифта кнопка деактивировалась. За хорошую помощь отблагодарю, над сделать до завтра, поэтому завтра уже не актуально будет.
    Код

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    namespace WindowsFormsApp7
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    Button[] lift_buttons; // массив кнопок на этажах.
    Button[] etages; // массив кнопок в самом лифте.
    int kol_et; // кол-во этаж
    int n;
    int et = 1; // этаж где находится лифт
    int v = 0; // скорость
    int sost = 0; // состояние лифта
    private void call_handler(object sender, EventArgs e)
    {
    n = kol_et + 1 - Convert.ToInt32((sender as Button).Text);
    timer1.Enabled = true;
    sost = 1;
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    }
    private void numericUpDown1_ValueChanged(object sender, EventArgs e)
    {
    }
    private void button1_Click(object sender, EventArgs e)
    {
    pictureBox1.Visible = true;
    textBox1.Visible = true;
    textBox2.Visible = true;
    button1.Enabled = false;
    numericUpDown1.Enabled = false;
    int top = 900;
    int top2 = 900;
    int down = 0;
    // int left = 10;
    //int left2 = 700;
    kol_et = (int)numericUpDown1.Value;
    lift_buttons = new Button[kol_et + 1]; // создаем массив кнопок нужной длин
    etages = new Button[kol_et + 1];
    for (int i = 1; i <= kol_et; i++)
    {
    // textBox1.Width = 18;
    down += 1;
    pictureBox1.Top = 40 * down;
    textBox1.Top = 40 * down;
    textBox2.Top = 40 * down;
    lift_buttons[i] = new Button(); // создаем очередную кнопку
    lift_buttons[i].Left = 720; // расстояние от левого конца формы
    lift_buttons[i].Top = 30 * down ; // расстояние от верхнего конца формы
    lift_buttons[i].Text = Convert.ToString(kol_et - down + 1);
    lift_buttons[i].Width = 30;
    lift_buttons[i].Name = Convert.ToString(i);
    lift_buttons[i].Click += call_handler; // подписываем ее на событие Click, обработчик которого назовем call_handler
    this.Controls.Add(lift_buttons[i]); // добавляем кнопку к форме (this - форма)
    // top += lift_buttons[i].Height - 55; // расстояние между кнопками
    etages[i] = new Button();
    etages[i].Left = 10; // расстояние от левого конца формы
    etages[i].Top = 40* down; // расстояние от верхнего конца формы
    etages[i].Text = Convert.ToString(kol_et - down + 1);
    etages[i].Name = Convert.ToString(i);
    etages[i].Click += call_handler; // подписываем ее на событие Click, обработчик которого назовем call_handler
    this.Controls.Add(etages[i]); // добавляем кнопку к форме (this - форма)
    // top2 += etages[i].Height - 80;
    }
    }
    int t;
    private void timer1_Tick(object sender, EventArgs e)
    {
    switch (sost)
    {
    case 1:
    if (textBox1.Top > etages[n].Top)
    {
    textBox1.Top--;
    textBox2.Top--;
    pictureBox1.Top--;
    }
    else if (textBox1.Top < etages[n].Top)
    {
    textBox1.Top++;
    textBox2.Top++;
    pictureBox1.Top++;
    }
    else
    {
    sost = 2;
    }
    break;
    case 2:
    timer1.Interval = 20;
    if (textBox1.Width > 5)
    {
    textBox1.Width -= 1;
    textBox2.Width -= -1;
    etages[n].Enabled = true;
    }
    else
    {
    sost = 4; t = 0;
    }
    break;
    case 3:
    if (textBox1.Width < 18)
    {
    textBox1.Width += 1;
    textBox2.Width += -1;
    }
    else
    {
    sost = 0; timer1.Enabled = false; etages[n].Enabled = true;
    }
    break;
    case 4:
    t++;
    if (t>100)
    {
    sost = 3;
    }
    break;

    }

    }
    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    }
    }
    }
    [IMG]
     
  2. lapsicanders
    Как же всё криво, попробую сделать, жди
     
  3. nagibator228228
    nagibator228228 Автор темы 15 дек 2019 361 4 июл 2018
    lapsicanders, как есть, на гуру c# не претендую, все по учебнику делал, если сможешь сделай понятно, т.к. мне над ее защищать еще.
     
  4. twinkie
    twinkie 15 дек 2019 наркота делает психику шаткой 700 31 янв 2018
    орнул
     
Top
Загрузка...