Creating traffic simulator with VB .NET

  • Thread starter Wouter van Teijlingen
  • Start date
W

Wouter van Teijlingen

Dear Readers,

This is my first post to this group. I was pointed to this group in a
other vb group, so i have better luck here!

For my learning curve of VB .NET i want to make a traffic simulation
program. Before i start programming, i need to know if there even is a
possibility to make a algorithm in VB .NET that is able to let traffic
drive and making the lights go green, orange or red.

Thanks in advance,

Wouter van Teijlingen
 
L

Larry Serflaten

Wouter van Teijlingen said:
For my learning curve of VB .NET i want to make a traffic simulation
program. Before i start programming, i need to know if there even is a
possibility to make a algorithm in VB .NET that is able to let traffic
drive and making the lights go green, orange or red.


What sort of algorithm do you anticipate that may cause it trouble?
VB.Net is a programing language, after all....

LFS
 
C

Cor Ligthert

Wouter,

In addition to Larry, when you cannot do it with VBNet you probably cannot
do it with any programming language. Although there are languages which
better fit for special situations as deep in the operating system
programming and creating browser plugins.

I saw nedLinux in your email adress, there is a VBNet mono. Here we almost
all do VBNet microsoft (therefore is it a microsoft newsgroup). Most of us
don't know how VBNet in Mono is acting at the moment.

Just a little bit to get the traffic in the right direction.

Cor
 
W

Wouter van Teijlingen

Ok. But is it possible to make something that you can control the
traffic lights with button. So i press green then the traffic will start
driving? I press red it will stop?

My email ends with nedlinux, but i'm really using VB .NET 2003 here :)

Thanks,

Wouter van Teijlingen
The Netherlands
 
C

Cor Ligthert

Wouter,

You can control the RS232 port if you are asking that.
Mostly is that answered by Dick Grier in this newsgroup.

When you make a message like "how can I do the traffic lights using the comm
port or RS232" he will probably answer you because in my idea has he some
kind of filter on that in his newsreader.

This is his homepage
http://www.hardandsoftware.net/

There is a lot on MSDN, I never did this kind of things however here a
sample.
http://msdn.microsoft.com/library/d...ddk5/html/wce50conserialportdriversamples.asp

I hope this helps?

Cor
 
W

Wouter van Teijlingen

Cor said:
Wouter,

You can control the RS232 port if you are asking that.
Mostly is that answered by Dick Grier in this newsgroup.

When you make a message like "how can I do the traffic lights using the comm
port or RS232" he will probably answer you because in my idea has he some
kind of filter on that in his newsreader.

That's not what i mean. It has to be software only. Imagine the following:

I have train. When the train passes the train passage has to close. The
''battle trees'' have to be closed until the train is away. I don't want
to combine this with hardware at all (only the computer).

So when i press the button GREEN cars can ride. When i press RED, when
train comes by, cars must stop. So the train must comeby, let's say,
every five minutes.

I hope this makes things better understandable. Thank you for your help.

Bye,

Wouter van Teijlingen
 
W

Wouter van Teijlingen

Cor said:
Wouter,

You can control the RS232 port if you are asking that.
Mostly is that answered by Dick Grier in this newsgroup.

When you make a message like "how can I do the traffic lights using the comm
port or RS232" he will probably answer you because in my idea has he some
kind of filter on that in his newsreader.

That's not what i mean. It has to be software only. Imagine the following:

I have train. When the train passes the train passage has to close. The
''battle trees'' have to be closed until the train is away. I don't want
to combine this with hardware at all (only the computer).

So when i press the button GREEN cars can ride. When i press RED, when
train comes by, cars must stop. So the train must comeby, let's say,
every five minutes.

I hope this makes things better understandable. Thank you for your help.

Bye,

Wouter van Teijlingen
 
C

Cor Ligthert

Wouter,

That was what I understood, however there should be an interface between
your train and your computer in my opinion.

Or is it completly without any fysical beside the computer and is it
simulating.

I saw this link in another newsgroup by the way.
http://msdn.microsoft.com/msdnmag/issues/02/10/NETSerialComm/

This is with fysical, however I cannot keep it forever in my clipboard

:)

Cor
 
W

Wouter van Teijlingen

Cor said:
Wouter,

That was what I understood, however there should be an interface between
your train and your computer in my opinion.

Or is it completly without any fysical beside the computer and is it
simulating.

I want to make the program without any fysical connection. It's all
simulated on the computer. The train is simulated on the computer, the
trafficlights and battle tree's. Just everything. I wondered if this was
possible to make in VB .NET.

-- Wouter van Teijlingen
 
C

Cor Ligthert

Wouter,

I would not know now why not.

However are you thinking about a complete graphical interface, than I would
ask this as well in the newsgroup

news//news.microsoft.public.dotnet.framework.drawing

And tell than about the graphics you need.

Cor
 
A

Andy O'Neill

Wouter van Teijlingen said:
I want to make the program without any fysical connection. It's all
simulated on the computer. The train is simulated on the computer, the
trafficlights and battle tree's. Just everything. I wondered if this was
possible to make in VB .NET.

-- Wouter van Teijlingen

You can do it, but I think it'd be dead hard to do anything beyond trivial.
Not just in vb.net, in any language.

One road and one car would be kind of easy.
Say.
The car just goes left to right until it comes to the lights... then
reappears on the left of the picture.
The lights turn from red to amber to green....
The car stops if < so-many-pixels from the lights if they're red.
You can hard code all the tricky bits.
You need a car.jpg a background.jpg and three lights.jpg.
Or maybe one lights.jpg and you draw a green/red/amber bit on it.

More cars and more roads is hurting my head just thinking about it.

You're tallking the sort of programming that games designers do.
You need to think about collision detection between the cars.
How do the cars "know" which road they're on and where it goes.
How do they work out that there are lights ahead.
The algorithm woukd be really tricky.
I'm not exactly sure how games designers do this.
I think there's like a mathematical model they use controls the movement and
where stuff is and hence collision detection.
This model is then used by the graphics bits.
So the lights being green is (say) a Light_Colour property of that light
object the buncha-cars-on-that-road will check to see if they move. It's
also one of the properties the stuff does the graphics will check as it
decides which of three lights.jpg to stick in the picture.
You heave inheritance to make vehicles then cars/trucks inherit from that.

Simulation is hard though.
I would imagine the vast majority of us on this ng do business programming.
 
W

Wouter van Teijlingen

Cor said:
Wouter,

I would not know now why not.
Okay, thanks.
Now i can take a time to start thinking about the how the program should
be made.

-- Wouter van Teijlingen
 
C

Chris Dunaway

Andy said:
You can do it, but I think it'd be dead hard to do anything beyond
trivial.

I agree that the program he is describing will not be simple, VB.Net is
perfectly capable of doing complex programs.
One road and one car would be kind of easy.
Say.
The car just goes left to right until it comes to the lights... then
reappears on the left of the picture.
The lights turn from red to amber to green....
The car stops if < so-many-pixels from the lights if they're red.
You can hard code all the tricky bits.
You need a car.jpg a background.jpg and three lights.jpg.
Or maybe one lights.jpg and you draw a green/red/amber bit on it.

More cars and more roads is hurting my head just thinking about it.

You're tallking the sort of programming that games designers do.
You need to think about collision detection between the cars.

The cars behavior should not depend at all on the visual representation
on the screen. The car, the traffic light, the road, and all the other
items in the game would be defined as classes with separate properties.
The display on the screen would simply reflect the current state of
all the objects. Look up the Model - View - Controller design pattern.

How do the cars "know" which road they're on and where it goes.
How do they work out that there are lights ahead.

I'd imagine the network of roadways would be modelled with some sort of
graph structure. The cars would not have to know what is ahead, they
would just check to see if there is a light at their current location
and what it's state is (red, yellow, or green). Pick up a college
textbook on data structures. There is a lot of computer science theory
on graphs, trees, etc. that would be useful.
The algorithm woukd be really tricky.
I'm not exactly sure how games designers do this.
I think there's like a mathematical model they use controls the movement and
where stuff is and hence collision detection.
This model is then used by the graphics bits.

The algorithm would certainly be challenging, but each object could be
written to be independent. The car for example would have properties
such as speed, direction, etc. When the simulation is started, the car
would operate pretty much independent of the other vehicles. If two
cars happened to enter the same location, that would constitue a
collision.

I'm not clear if the original poster is trying to create some sort of
game (like Sim City) or a traffic simulator to simulate the flow of
traffic.
Simulation is hard though.
I would imagine the vast majority of us on this ng do business
programming.

It's definitely an app that would require careful design, but VB.Net is
more than capable of handling it, IMHO.

Cheers,

Chris
 
W

Wouter van Teijlingen

Chris said:
....usefull information....

It's definitely an app that would require careful design, but VB.Net is
more than capable of handling it, IMHO.
Yes! Thanks for this very informative reaction. I have programming
experience in C++ so working with classes should not be a typical pain
in the ass :).

I'm now busy with learning some specific syntax of vb (.net) and i
already like it. I like challenges so this will be great.

Thanks for the reactions,

-- Wouter van Teijlingen
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top