elevator.cs

来自「设计一个电梯模拟系统。主要用于实现」· CS 代码 · 共 1,282 行 · 第 1/4 页

CS
1,282
字号
					directE1 = (int)Direct.HALT;
				}
				else if (elevator1.Top == floor3.Top && destination1[3] > 0)
				{
					if (downButton3.BackColor == System.Drawing.Color.Yellow || upButton3.BackColor == System.Drawing.Color.Yellow)
					{
						downButton3.BackColor = System.Drawing.SystemColors.Control;
						upButton3.BackColor = System.Drawing.SystemColors.Control;
					}
					else
					{
						if (directE1 == (int)Direct.DOWN)
							downButton3.BackColor = System.Drawing.SystemColors.Control;
						else
							upButton3.BackColor = System.Drawing.SystemColors.Control;
					}
					inButton31.Enabled = true;
					outButton32.Enabled = true;
					elevatorButton11.Enabled = true;
					elevatorButton12.Enabled = true;
					elevatorButton14.Enabled = true;
					elevatorButton13.Enabled = false;
					elevatorButton13.BackColor = System.Drawing.SystemColors.Control;
					destination1[3]--;
					suspendTime1 = 300;
					directE1 = (int)Direct.HALT;
				}
				else if (elevator1.Top == floor4.Top && destination1[4] > 0)
				{
					inButton41.Enabled = true;
					outButton42.Enabled = true;
					elevatorButton11.Enabled = true;
					elevatorButton12.Enabled = true;
					elevatorButton13.Enabled = true;
					downButton4.BackColor = System.Drawing.SystemColors.Control;
					elevatorButton14.Enabled = false;
					elevatorButton14.BackColor = System.Drawing.SystemColors.Control;
					destination1[4]--;
					suspendTime1 = 300;
					directE1 = (int)Direct.HALT;
				}
			}
		}
		private void touchDownE2 ()
		{
			//Elevator2 approaches one of the floors
			if (directE2 != (int)Direct.HALT && suspendTime2 == 0)
			{
				if (elevator2.Top == floor1.Top && destination2[1] > 0)
				{
					inButton13.Enabled = true;
					outButton14.Enabled = true;
					elevatorButton22.Enabled = true;
					elevatorButton23.Enabled = true;
					elevatorButton24.Enabled = true;
					upButton1.BackColor = System.Drawing.SystemColors.Control;
					elevatorButton21.Enabled = false;
					elevatorButton21.BackColor = System.Drawing.SystemColors.Control;
					destination2[1]--;
					suspendTime2 = 300;
					directE2 = (int)Direct.HALT;
				}
				else if (elevator2.Top == floor2.Top && destination2[2] > 0)
				{
					if (downButton2.BackColor == System.Drawing.Color.Yellow || upButton2.BackColor == System.Drawing.Color.Yellow)
					{
						downButton2.BackColor = System.Drawing.SystemColors.Control;
						upButton2.BackColor = System.Drawing.SystemColors.Control;
					}
					else
					{
						if (directE2 == (int)Direct.DOWN)
							downButton2.BackColor = System.Drawing.SystemColors.Control;
						else
							upButton2.BackColor = System.Drawing.SystemColors.Control;
					}
					inButton23.Enabled = true;
					outButton24.Enabled = true;
					elevatorButton21.Enabled = true;
					elevatorButton23.Enabled = true;
					elevatorButton24.Enabled = true;
					elevatorButton22.Enabled = false;
					elevatorButton22.BackColor = System.Drawing.SystemColors.Control;
					destination2[2]--;
					suspendTime2 = 300;
					directE2 = (int)Direct.HALT;
				}
				else if (elevator2.Top == floor3.Top && destination2[3] > 0)
				{
					if (downButton3.BackColor == System.Drawing.Color.Yellow || upButton3.BackColor == System.Drawing.Color.Yellow)
					{
						downButton3.BackColor = System.Drawing.SystemColors.Control;
						upButton3.BackColor = System.Drawing.SystemColors.Control;
					}
					else
					{
						if (directE2 == (int)Direct.DOWN)
							downButton3.BackColor = System.Drawing.SystemColors.Control;
						else
							upButton3.BackColor = System.Drawing.SystemColors.Control;
					}
					inButton33.Enabled = true;
					outButton34.Enabled = true;
					elevatorButton21.Enabled = true;
					elevatorButton22.Enabled = true;
					elevatorButton24.Enabled = true;
					elevatorButton23.Enabled = false;
					elevatorButton23.BackColor = System.Drawing.SystemColors.Control;
					destination2[3]--;
					suspendTime2 = 300;
					directE2 = (int)Direct.HALT;
				}
				else if (elevator2.Top == floor4.Top && destination2[4] > 0)
				{
					inButton43.Enabled = true;
					outButton44.Enabled = true;
					elevatorButton21.Enabled = true;
					elevatorButton22.Enabled = true;
					elevatorButton23.Enabled = true;
					downButton4.BackColor = System.Drawing.SystemColors.Control;
					elevatorButton24.Enabled = false;
					elevatorButton24.BackColor = System.Drawing.SystemColors.Control;
					destination2[4]--;
					suspendTime2 = 300;
					directE2 = (int)Direct.HALT;
				}
			}
		}
		private void moveUpDown ()
		{
			if (suspendTime1 > 0)
				suspendTime1--;
			if (suspendTime2 > 0)
				suspendTime2--;
			if (suspendTime1 == 0)
				elevator1.Top += directE1;
			if (suspendTime2 == 0)
				elevator2.Top += directE2;
		}
		private void setDirection()
		{
			if (suspendTime1 == 0)
			{
				if (directE1 != (int)Direct.DOWN)
				{
					for (int i = stateE1 + 1; i < 5; i++)
						if (destination1[i] > 0)
							directE1 = (int)Direct.UP;
				}
				if (directE1 != (int)Direct.UP)
				{
					for (int i = stateE1 - 1; i >= 1; i--)
						if (destination1[i] > 0)
							directE1 = (int)Direct.DOWN;
				}
			}
			if (suspendTime2 == 0)
			{
				if (directE2 != (int)Direct.DOWN)
				{
					for (int i = stateE2 + 1; i < 5; i++)
						if (destination2[i] > 0)
							directE2 = (int)Direct.UP;
				}
				if (directE2 != (int)Direct.UP)
				{
					for (int i = stateE2 - 1; i >= 1; i--)
						if (destination2[i] > 0)
							directE2 = (int)Direct.DOWN;
				}
			}
		}
		private void adjustProperty()
		{
			if (directE1 != (int)Direct.HALT)
			{
				if(floor1.Top != elevator1.Top)
				{
					inButton11.Enabled = false;
					outButton12.Enabled = false;
				}
				if(floor2.Top != elevator1.Top)
				{
					inButton21.Enabled = false;
					outButton22.Enabled = false;
				}
				if(floor3.Top != elevator1.Top)
				{
					inButton31.Enabled = false;
					outButton32.Enabled = false;
				}
				if(floor4.Top != elevator1.Top)
				{
					inButton41.Enabled = false;
					outButton42.Enabled = false;
				}
				inButton11.BackColor = System.Drawing.SystemColors.Control;
				outButton12.BackColor = System.Drawing.SystemColors.Control;
				inButton21.BackColor = System.Drawing.SystemColors.Control;
				outButton22.BackColor = System.Drawing.SystemColors.Control;
				inButton31.BackColor = System.Drawing.SystemColors.Control;
				outButton32.BackColor = System.Drawing.SystemColors.Control;
				inButton41.BackColor = System.Drawing.SystemColors.Control;
				outButton42.BackColor = System.Drawing.SystemColors.Control;
			}
			if (directE2 != (int)Direct.HALT)
			{
				if(floor1.Top != elevator2.Top)
				{
					inButton13.Enabled = false;
					outButton14.Enabled = false;
				}
				if(floor2.Top != elevator2.Top)
				{
					inButton23.Enabled = false;
					outButton24.Enabled = false;
				}
				if(floor3.Top != elevator2.Top)
				{
					inButton33.Enabled = false;
					outButton34.Enabled = false;
				}
				if(floor4.Top != elevator2.Top)
				{
					inButton43.Enabled = false;
					outButton44.Enabled = false;
				}
				inButton13.BackColor = System.Drawing.SystemColors.Control;
				outButton14.BackColor = System.Drawing.SystemColors.Control;
				inButton23.BackColor = System.Drawing.SystemColors.Control;
				outButton24.BackColor = System.Drawing.SystemColors.Control;
				inButton33.BackColor = System.Drawing.SystemColors.Control;
				outButton34.BackColor = System.Drawing.SystemColors.Control;
				inButton43.BackColor = System.Drawing.SystemColors.Control;
				outButton44.BackColor = System.Drawing.SystemColors.Control;
			}
		}
		private void suspendE1 ()
		{
			//Now elevator1 is in one of the floors
			if (elevator1.Top == floor1.Top)
			{
				stateE1 = 1;
				if (directE2 == (int)Direct.HALT)
				{
					inButton11.BackColor = System.Drawing.Color.Yellow;
					outButton12.BackColor = System.Drawing.Color.Yellow;
				}
			} 
			else if (elevator1.Top == floor2.Top)
			{
				stateE1 = 2;
				if (directE2 == (int)Direct.HALT)
				{
					inButton21.BackColor = System.Drawing.Color.Yellow;
					outButton22.BackColor = System.Drawing.Color.Yellow;
				}
			}
			else if (elevator1.Top == floor3.Top)
			{
				stateE1 = 3;
				if (directE2 == (int)Direct.HALT)
				{
					inButton31.BackColor = System.Drawing.Color.Yellow;
					outButton32.BackColor = System.Drawing.Color.Yellow;
				}
			}
			else if (elevator1.Top == floor4.Top)
			{
				stateE1 = 4;
				if (directE2 == (int)Direct.HALT)
				{
					inButton41.BackColor = System.Drawing.Color.Yellow;
					outButton42.BackColor = System.Drawing.Color.Yellow;
				}
			}
		}
		private void suspendE2 ()
		{
			if (elevator2.Top == floor1.Top)	//E2
			{
				stateE2 = 1;
				if (directE2 == (int)Direct.HALT)
				{
					inButton13.BackColor = System.Drawing.Color.Yellow;
					outButton14.BackColor = System.Drawing.Color.Yellow;
				}
			}
			else if (elevator2.Top == floor2.Top)
			{
				stateE2 = 2;
				if (directE2 == (int)Direct.HALT)
				{
					inButton23.BackColor = System.Drawing.Color.Yellow;
					outButton24.BackColor = System.Drawing.Color.Yellow;
				}
			}
			else if (elevator2.Top == floor3.Top)
			{
				stateE2 = 3;
				if (directE2 == (int)Direct.HALT)
				{
					inButton33.BackColor = System.Drawing.Color.Yellow;
					outButton34.BackColor = System.Drawing.Color.Yellow;
				}
			}
			else if (elevator2.Top == floor4.Top)
			{
				stateE2 = 4;
				if (directE2 == (int)Direct.HALT)
				{
					inButton43.BackColor = System.Drawing.Color.Yellow;
					outButton44.BackColor = System.Drawing.Color.Yellow;
				}
			}
		}

	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?