红绿灯模拟

  1 unit TrafficLight3;
  2
  3 interface
  4
  5 uses
  6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7   Dialogs, StdCtrls, ExtCtrls;
  8
  9 type
 10   TForm1 = class(TForm)
 11     Shape1: TShape;
 12     Shape2: TShape;
 13     Shape3: TShape;
 14     Panel1: TPanel;
 15     Label1: TLabel;
 16     Timer4: TTimer;
 17     Label2: TLabel;
 18     procedure Timer4Timer(Sender: TObject);
 19   private
 20     { Private declarations }
 21   public
 22     { Public declarations }
 23   end;
 24
 25 var
 26   Form1: TForm1;
 27
 28 implementation
 29
 30 {$R *.dfm}
 31 {
 32 procedure TForm1.Timer1Timer(Sender: TObject);
 33 begin
 34   if label1.Caption<>‘1‘ then
 35   label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1)
 36   else
 37   begin
 38     Shape1.Brush.Color:=clSilver;
 39     Shape3.Brush.Color:=clSilver;
 40     Shape2.Brush.Color:=clYellow;
 41     Timer2.Enabled:=True;
 42     Timer1.Enabled:=False;
 43     Timer3.Enabled:=False;
 44     Label1.Caption:=‘4‘;
 45
 46   end;
 47 end;
 48
 49
 50 procedure TForm1.Timer2Timer(Sender: TObject);
 51 begin
 52      if label1.Caption<>‘1‘ then
 53   label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1)
 54   else
 55   begin
 56     Shape2.Brush.Color:=clSilver;
 57     Shape3.Brush.Color:=clSilver;
 58     Shape1.Brush.Color:=clRed;
 59     Timer1.Enabled:=True;
 60     Timer2.Enabled:=False;
 61     Timer3.Enabled:=False;
 62     Label1.Caption:=‘5‘;
 63
 64   end;
 65 end;
 66
 67 procedure TForm1.Timer3Timer(Sender: TObject);
 68 begin
 69    if label1.Caption<>‘1‘ then
 70   label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1)
 71   else
 72   begin
 73     Shape1.Brush.Color:=clSilver;
 74     Shape2.Brush.Color:=clSilver;
 75     Shape3.Brush.Color:=clGreen;
 76     Timer3.Enabled:=True;
 77     Timer2.Enabled:=False;
 78     Timer1.Enabled:=False;
 79     Label1.Caption:=‘6‘;
 80
 81   end;
 82 end;
 83
 84 }
 85
 86
 87 var
 88     n:Integer=0;
 89 procedure TForm1.Timer4Timer(Sender: TObject);
 90 begin
 91   n:=n+1;
 92   Label2.Caption:=IntToStr(n);
 93   if n<=10  then
 94
 95  begin
 96
 97     Shape2.Brush.Color:=clSilver;
 98     Shape3.Brush.Color:=clSilver;
 99     Shape1.Brush.Color:=clGreen;
100    if label1.Caption<>‘1‘ then
101      label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1)
102    else
103    begin
104
105     Label1.Caption:=‘5‘;
106    end;
107     end;
108
109  if (n>5) and (n<=10) then
110
111  begin
112     if n mod 2=0 then
113       begin
114       Shape1.Brush.Color:=clGreen;
115       Shape3.Brush.Color:=clSilver;
116       Shape2.Brush.Color:=clBlack;
117     end
118    else
119    begin
120
121
122     Shape1.Brush.Color:=clGreen;
123     Shape3.Brush.Color:=clSilver;
124     Shape2.Brush.Color:=clYellow;
125        end;
126    if label1.Caption<>‘1‘ then
127      label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1)
128     else
129      begin
130        Label1.Caption:=‘10‘;
131       end;
132
133   end;
134
135   if (n>10) and (n<=20) then
136  begin
137     Shape2.Brush.Color:=clSilver;
138     Shape1.Brush.Color:=clSilver;
139     Shape3.Brush.Color:=clRed;
140    if label1.Caption<>‘1‘ then
141   label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1)
142   else
143   begin
144
145     Label1.Caption:=‘10‘;
146     n:=0;
147   end;
148
149  end;
150 end;
151
152 end.

时间: 2024-10-24 12:23:31

红绿灯模拟的相关文章

前端要给力之:红绿灯大战中的火星生命-Promise

目录 目录 传说的开始 看到winter的代码我的第一反应是全无promise的精髓 其实我了解Promise也是新近的事情 我与Promise后来发生的故事 红绿灯大战的亲历实录 Promise写出来怎么会是这个样子 欢迎回到火星 感谢米粽粽同学提到我的一篇旧文 第一步的抽象 一点说明前提 重新定义问题 Promise的编程基础之逻辑过程 如何确认一个数据就绪 然后then只能处理一个数据 最后任何情况下then总是立即返回一个promise 解决问题的方法 得到一些基础件 如何在Promis

python之 多线程(二)

GIL全局解释器锁: 在Cpython 解释器中,同一个进程下开启的多线程,同一时刻只能有一个线程执行,无法利用多核优势. 所有的python代码都是交给解释器解释的,在同一进程中的多个线程以及解释器自带的垃圾回收线程是共享解释器资源的,共享就意味着竞争,竞争就会出现问题,比如说python线程想要执行一个一段代码,垃圾回收线程又想回收这段代码,这样就会出现错误.这时候必须有一种机制,保证数据安全,就是将这种并发的状态改为串行的状态.这种机制就是加锁处理,保证解释器同一时间只能执行一个任务的代码

【Python下进程同步之互斥锁、信号量、事件机制】 -- 2019-08-16 17:58:28

原文: http://blog.gqylpy.com/gqy/229 " 一.锁机制:??multiprocess.Lock 上篇博客中,我们千方百计实现了程序的异步,让多个任务同时在几个进程中并发处理,但它们之间的运行没有顺序.尽管并发编程让我们能更加充分的利用io资源,但是也给我我们带来了新问题,多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题. 例: # 多进程抢占输出资源 from multiprocessing import Process from os import

DOM事件练习 I

目录 input框动态显示事件 红绿灯模拟 顶部广告栏关闭 鼠标悬停IMG上时,更换另一张图片 模态框案例 模态框案例 input框动态显示事件 1 <head> 2 <meta charset="UTF-8"> 3 <title>动态显示时间</title> 4 <style> 5 input{width:200px;} 6 </style> 7 </head> 8 <body> 9 &l

【Python下进程同步之互斥锁、信号量、事件机制】 &#173437;

原文: http://blog.gqylpy.com/gqy/229 " 一.锁机制:??multiprocess.Lock 上篇博客中,我们千方百计实现了程序的异步,让多个任务同时在几个进程中并发处理,但它们之间的运行没有顺序.尽管并发编程让我们能更加充分的利用io资源,但是也给我我们带来了新问题,多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题. 例: # 多进程抢占输出资源 from multiprocessing import Process from os import

java多线程模拟红绿灯案例

代码Lighter.java: 1 package pack1; 2 /** 3 * 灯线程 4 * @author Administrator 5 * 6 */ 7 public class Lighter extends Thread{ 8 //代表灯当前的状态(这里只考虑红绿两种状态) 9 public String state; 10 public void run(){ 11 while (true){ 12 try { 13 //初始状态设为红灯,且红灯时常为10s 14 state

模拟红绿灯交替指示编程思路

自动循环显示,红灯12秒倒计时,直行箭头为红色,红灯倒计时到1秒时候,黄灯开始3秒闪烁,黄灯3秒结束后 ,绿灯开始显示,红灯灭,直行箭头变为绿色,12秒倒计时,依次循环.视频教程链接请点击观看 原文地址:http://blog.51cto.com/13172026/2151851

模拟红绿灯(递归与队列)

模仿交通信号灯,最简单的处理方式不过是一个简单的递归 function traffic(num) { var signal = ['红', '黄', '蓝']; num = num < (signal.length - 1) ? (num + 1) : 0; setTimeout(() => { console.log(signal[num]); deng(num); }, 1000); } 非常简单的一个功能,突然想到了队列的先进后出,蛮可以用队列的方式再升级一下,顺便巩固下队列的知识 创建

asp.net C# 控制台模拟红绿灯(交通信号灯)

一.需求分析 通过控制台输入绿灯,黄灯,红灯显示时间,然后倒计时,周而复始. 二.运行效果 1.输入显示时间 2.绿灯,黄灯,红灯,倒计时周而复始 三.实现代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApp1 { class