473,836 Members | 1,553 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Logic question...

I am writing a game and I am having a challenge with my combat
function. All I want to do is find out how to group pieces that are in
the same space. There are two sides and all the units that are in the
same space fight. I want to add up the attack factors and defending
factors in the same space then figure out the odds so I can roll
against an odds table. Basically each piece holds its own x and y loc.
Here is what I have right now:

void fight(vector<un it>& at, vector<unit>& dt,
board * b , terrain * trn ){

vector<fightcla ssfighting;

/* adds attacking units to the fightclass vector if units are in the
same space they are to grouped in the same fight class elemet of
the
vector. */

for(int atu = 0; atu != at.size(); atu++){
if(fighting.siz e() == 0){
fightclass ft;
ft.addAu(at[atu]);
fighting.push_b ack(ft);
} else {
for(int lp = 0; lp != fighting.size() ; lp++){
if(at[atu].getXloc() != fighting[lp].getX() &&
at[atu].getYloc() != fighting[lp].getY()){
fightclass ft;
ft.addAu(at[atu]);
fighting.push_b ack(ft);
} else {
fighting[lp].addAu(at[atu]);
}
}
}
}
/* Adds defending units to the fightclass array. If x and y locs are
the same as attacking locations (are in the same space) they are
added to array for combat */

for(int dtu = 0; dtu != dt.size(); dtu++){
for(int lp = 0; lp != fighting.size() ; lp++){
if(dt[dtu].getXloc() == fighting[lp].getX() &&
dt[dtu].getYloc() == fighting[lp].getY()){
fighting[lp].addDu(dt[dtu]);
}
}
}

// Combat routine

for(int lp = 0; lp != fighting.size() ; lp++){ //handles combat
if(fighting[lp].canfight()){
int df = b->GetSpace(fight ing[lp].getX(), fighting[lp].getY());
float odds =
fighting[lp].getAtk()/fighting[lp].getDef();
//gets the defense bonus for the terrain in the space where
//combat takes place
int roll = rand() - trn[df].defend();
//get the die roll modified for terrain
odds = fighting[lp].getAtk() / fighting[lp].getDef();
//gets the attack to defence ratio.
if(odds < .5){
MessageBox(NULL , "Fighting! 1:3", "Info!", MB_OK);
return;
}
if(odds < 1){
MessageBox(NULL , "Fighting! 1:2", "Info!", MB_OK);
return;
}
if(odds < 2){
MessageBox(NULL , "Fighting! 1:1", "Info!", MB_OK);
return;
}
if(odds < 3){
MessageBox(NULL , "Fighting! 2:1", "Info!", MB_OK);
return;
}
if(odds < 4){
MessageBox(NULL , "Fighting! 3:1", "Info!", MB_OK);
return;
}
if(odds < 5){
MessageBox(NULL , "Fighting! 4:1", "Info!", MB_OK);
return;
}
if(odds < 6){
MessageBox(NULL , "Fighting! 5:1", "Info!", MB_OK);
return;
}

}
}
for(int lp = 0; lp != fighting.size() ; lp++){
fighting[lp].done();
}
fighting.clear( );
}

class fightclass{
/* Fightclass holds two arrays of units. The two arrays represent
units
in the same space elgible for combat. Array at represents the
attacking
forces and dt represents the defending units */
int xl;
int yl;

bool sides2; /* indicates if there are units in both attack and
defend
if there are units in both attack and defend then
combat
is to take place between the opposing sides. */

vector<unit>at; //attack units
vector<unit>dt; //defending units

public:
fightclass();
void addAu(unit au); //adds an addacking unit
void addDu(unit du); //adds a defending unit
int getX(){return xl;} //return the x coord
int getY(){return yl;} //returns the y coord
float getAtk(); //returns the total attack factors for one space
float getDef(); //returns the total defending factors for one space
bool canfight(); //if there are both attacking and defending units
void done(); //clears vectores after the turn

};

fightclass::fig htclass(){
xl = 0;
yl = 0;
}

void fightclass::add Au(unit u){
at.push_back(u) ;
xl = u.getXloc();
yl = u.getYloc();

}

void fightclass::add Du(unit u){

dt.push_back(u) ;

}

bool fightclass::can fight(){
if(at.size() && dt.size()){
return true;
}else {return false;}
}

float fightclass::get Atk(){
float total;
for(int lp = 0; lp != at.size(); lp++){
total +=at[lp].getAttack();
}
return total;
}

I know the logic is not the best but it is the best I can do. This is
tricky and I am pretty confused. I would like to find some way of
making the logic steps easier. There may be some simple error that I
overlooked or it can be totally screwed up.

Sep 4 '06
73 4319

Nathan Mates wrote:
In article <11************ **********@e3g2 000cwe.googlegr oups.com>,
JoeC <en*****@yahoo. comwrote:
Not the whole game but this function. I am not a profetional
programmer but I do the best I can. I am wrighting this conbat
routine and it seems very complex and I have trouble keeping track
of what I am doing. That is not good. I am wondering if there is
an easier way to do what I am doing. I have been adding to my game,
what I am doing appears to work.

Managing "who's where" is best separated from the "combat routine."
Most games have some code (and data structures) dedicated to keeping
track of units on the map. This means that units know where they are,
and the map manager also knows which units are where. If your map is
just a 2D array of a fixed, "reasonable " size (under a million
entries), you can just make a 2D array of entries, and each entry is
just a linked list of all units in that cell. If you're working on
PCs, just burn some memory upfront, and work on optimizing it later--
plenty of data structures exist to manage sparse datasets.

You should also separate out code to to map manager so that you can
say "find all units within radius R of point X,Y" and it'll go do that
for you. That's code for the map manager, not a "combat routine," as
you'll probably want your UI code to be able to do the same thing--
clicking on a square selects all units in that square, or shift-drag
selects all units in a user-specified rectangle. If you're going to
use the same kinds of functionality in multiple places, then break it
out to a common place.

Nathan Mates

--
Thanks for the advice. I am not realy sure how to implement that into
my program. I would have to seem some kind of example of how to do
that. I hope my program is not too far along to impleent a map handler.

Sep 7 '06 #21
[Please trim irrelevant quotes from your posts!]

JoeC wrote:
...What my problem is is that I
program in a vaccuum, I don't have people with more experience letting
me know that there are better ways to do what I am trying to do.
Do you have any Users Groups near you? (or maybe a college?)

--
Phlip
http://www.greencheese.us/ZeekLand <-- NOT a blog!!!
Sep 7 '06 #22
In article <11************ **********@e3g2 000cwe.googlegr oups.com>,
JoeC <en*****@yahoo. comwrote:
> Managing "who's where" is best separated from the "combat routine."
Most games have some code (and data structures) dedicated to keeping
track of units on the map. This means that units know where they are,
and the map manager also knows which units are where. If your map is
just a 2D array of a fixed, "reasonable " size (under a million
entries), you can just make a 2D array of entries, and each entry is
just a linked list of all units in that cell. If you're working on
PCs, just burn some memory upfront, and work on optimizing it later--
plenty of data structures exist to manage sparse datasets.
>Thanks for the advice. I am not realy sure how to implement that
into my program. I would have to seem some kind of example of how
to do that. I hope my program is not too far along to impleent a
map handler.
My description above is more or less what you need to do, written
out in English. Just turn it into code -- you need a 2D array of all
possible map locations (if the map is laid out like a chessboard of
discrete locations), and for each location, a list of what's in it.
When a unit moves, it removes itself from its old location, and adds
itself at the new location. Each of these things I've mentioned is a
short bit of code.

Think about how you'd do this for a chessboard (i.e. 8x8, but allow
multiple pieces per square), and extend that for your program.

Nathan Mates
--
<*Nathan Mates - personal webpage http://www.visi.com/~nathan/
# Programmer at Pandemic Studios -- http://www.pandemicstudios.com/
# NOT speaking for Pandemic Studios. "Care not what the neighbors
# think. What are the facts, and to how many decimal places?" -R.A. Heinlein
Sep 7 '06 #23

Phlip wrote:
[Please trim irrelevant quotes from your posts!]

JoeC wrote:
...What my problem is is that I
program in a vaccuum, I don't have people with more experience letting
me know that there are better ways to do what I am trying to do.

Do you have any Users Groups near you? (or maybe a college?)
Not that I am awaire of. I do live in a large city and I am sure there
are some here but I don't know how to find them.

Sep 7 '06 #24
JoeC wrote:
>Do you have any Users Groups near you? (or maybe a college?)
Not that I am awaire of. I do live in a large city and I am sure there
are some here but I don't know how to find them.
Uhhh, Google?

--
Phlip
http://www.greencheese.us/ZeekLand <-- NOT a blog!!!
Sep 8 '06 #25

Phlip wrote:
JoeC wrote:
Do you have any Users Groups near you? (or maybe a college?)
Not that I am awaire of. I do live in a large city and I am sure there
are some here but I don't know how to find them.

Uhhh, Google?
Ill give that a try. I often don't find sarch engines very helpful.
It often takes a while to find what I am looking for.

Sep 8 '06 #26
In article <11************ **********@b28g 2000cwb.googleg roups.com>,
JoeC <en*****@yahoo. comwrote:
>I have posted this question on several pages and I have gotten some
advice. The problem is that I am not sure how to implement that
advice. I used my knowlege of programming to write this program. If I
could have done better I would have. I han't seen examples of games to
study and get ideas.
A bit of poking online would find you LOTS of source code to study
and get ideas. http://www.sourceforge.net/ has lots (12292!) of games
listed, of varying quality. http://www.liberatedgames.com/ has a lot
of games that used to be under commercial licenses, and are now opened
up for download (sometimes completely, sometimes source code only).
Find a game similar to what you're trying to do (I'm guessing
turnbased strategy), and look at it. In short, if you're asking "how
was this done," then there's a million resources online that google or
the like will find for you.

>Most of what I see is how to create better and better graphics. I
started this by asking how to do a map game. I got some ideas and
wrote my game. I created all the libraries I could then made the
game. I think I would have to re-do the whole game if I want to
change the design. I try to include lessons I have learned to my
projects but my experience is limited.
Everyone's second project is better than their first. That's
natural in programming. And, don't worry about reinventing the wheel.
Commercial games do that all the time as game engines are written and
discarded quite often. (I think a lot of the rewrites are just
ego-stroking, but some are necessary.) Once you get better, you'll be
able to crank out the support code on autopilot.

You can also learn a bit by cleaning up your code as you go along.
Adding in a map manager (which I've suggested) can be done without
tossing out lots of code. This is called 'refactoring', which you can
look up online to get references and resources.

>My ultimate goal is to get a job that involves programming so I can be
around people who program. The challenge is getting my skills up so
that I can get a job. I am also debating taking programming classes
but I am often told that I have the knowlege that is taught. when I do
searches for class I see C++ part 1 and 2 and may be 3. How much can
you learn in three classes. I would like to find classes in design
patterns and how to design a program. Learn some rules and methods for
problem solving.
Don't knock courses until you've taken them. And, while familiarity
with design patterns is good, a just as critical tool for professional
programmers is how to turn an idea or outline from others into
code. Professional games are done with LARGE teams these days, and
that includes programmers. As the new guy on a team, you'll probably
initially do a lot of "here's an idea, go write it." Teams need to see
what one's skills are in writing code, following directions, before
you can really go up the ladder. Design patterns can be learned from
books or online; ability to write code to a spec comes from lots of
practice.

When I've described a map manager in previous postings, I described
what it needed to do-- store who's where on the map. I didn't spell
out every last function, or even write out a header file for you to
fill in the implementation. It's up to you to see how useful such a
thing would be (or not useful), and implement it on your own.

Nathan Mates
--
<*Nathan Mates - personal webpage http://www.visi.com/~nathan/
# Programmer at Pandemic Studios -- http://www.pandemicstudios.com/
# NOT speaking for Pandemic Studios. "Care not what the neighbors
# think. What are the facts, and to how many decimal places?" -R.A. Heinlein
Sep 8 '06 #27
In article <11************ **********@m79g 2000cwm.googleg roups.com>,
JoeC <en*****@yahoo. comwrote:
>Uhhh, Google?
>Ill give that a try. I often don't find sarch engines very helpful.
It often takes a while to find what I am looking for.
Like coding, the more practice you have in using search engines,
the better the results. Perhaps if you post what you're searching for,
people can suggest some more useful search terms. Perhaps if you'd be
willing to disclose what city you live in in your posts here, you
might just get some more useful suggestions from people. As long as
you stay in a shell where you don't say much, don't want to try to do
any searches, and expect others to read your mind, it'll be a LOT
harder to get quality help. The online world works a certain way, and
the more you work with the system, the more you get out of it.

Nathan Mates
--
<*Nathan Mates - personal webpage http://www.visi.com/~nathan/
# Programmer at Pandemic Studios -- http://www.pandemicstudios.com/
# NOT speaking for Pandemic Studios. "Care not what the neighbors
# think. What are the facts, and to how many decimal places?" -R.A. Heinlein
Sep 8 '06 #28

Nathan Mates wrote:
In article <11************ **********@b28g 2000cwb.googleg roups.com>,
JoeC <en*****@yahoo. comwrote:
I have posted this question on several pages and I have gotten some
advice. The problem is that I am not sure how to implement that
advice. I used my knowlege of programming to write this program. If I
could have done better I would have. I han't seen examples of games to
study and get ideas.

A bit of poking online would find you LOTS of source code to study
and get ideas. http://www.sourceforge.net/ has lots (12292!) of games
listed, of varying quality. http://www.liberatedgames.com/ has a lot
of games that used to be under commercial licenses, and are now opened
up for download (sometimes completely, sometimes source code only).
Find a game similar to what you're trying to do (I'm guessing
turnbased strategy), and look at it. In short, if you're asking "how
was this done," then there's a million resources online that google or
the like will find for you.

Most of what I see is how to create better and better graphics. I
started this by asking how to do a map game. I got some ideas and
wrote my game. I created all the libraries I could then made the
game. I think I would have to re-do the whole game if I want to
change the design. I try to include lessons I have learned to my
projects but my experience is limited.

Everyone's second project is better than their first. That's
natural in programming. And, don't worry about reinventing the wheel.
Commercial games do that all the time as game engines are written and
discarded quite often. (I think a lot of the rewrites are just
ego-stroking, but some are necessary.) Once you get better, you'll be
able to crank out the support code on autopilot.

You can also learn a bit by cleaning up your code as you go along.
Adding in a map manager (which I've suggested) can be done without
tossing out lots of code. This is called 'refactoring', which you can
look up online to get references and resources.

My ultimate goal is to get a job that involves programming so I can be
around people who program. The challenge is getting my skills up so
that I can get a job. I am also debating taking programming classes
but I am often told that I have the knowlege that is taught. when I do
searches for class I see C++ part 1 and 2 and may be 3. How much can
you learn in three classes. I would like to find classes in design
patterns and how to design a program. Learn some rules and methods for
problem solving.

Don't knock courses until you've taken them. And, while familiarity
with design patterns is good, a just as critical tool for professional
programmers is how to turn an idea or outline from others into
code. Professional games are done with LARGE teams these days, and
that includes programmers. As the new guy on a team, you'll probably
initially do a lot of "here's an idea, go write it." Teams need to see
what one's skills are in writing code, following directions, before
you can really go up the ladder. Design patterns can be learned from
books or online; ability to write code to a spec comes from lots of
practice.

When I've described a map manager in previous postings, I described
what it needed to do-- store who's where on the map. I didn't spell
out every last function, or even write out a header file for you to
fill in the implementation. It's up to you to see how useful such a
thing would be (or not useful), and implement it on your own.

Nathan Mates

I have done search in the past and have been disapointed with the
result. I did find one site, www.planetsourceceode.com where I have
posted my work. It has taken a great deal of work to get to the point
I am now. I am trying to keep my game as simple as possible. In a
previous work I created a grid of space objects where the pieces
resided but it became buggy trying to put in and take out the pieces as
they moved. I have each piece keep track of its own location and draw
themselvs.

Still there is a great deal of advice in this post and I will get back
to it and study it furter. I am proud of my programming skills, I did
this game in win32 the graphic interface I know best and have the
resource for. A map manager is an intersting idea, I will have to take
a while and see if I can create one. One thing I know I need to do is
create a coord struct. I have one written, it is very simple. I have
several ideas to make the program better and I have to get to writing
them.

I know that games are huge projects and I could never hope to create a
prefetional game myself. I do think I can create the basics of one. I
do have a large idea for a complete game but I am far from being able
to create it. Right now I am working on the basics. The best I can do
is write what I can then ask for help when I run into problems. I am
also awaire of my shortcommings and I do what I can to work on my
weaknesses.

I would be very happy if I can learn the skills necessary to just get a
job at the lowest level. As with any profetion you learn as you go.
There is no subsitute for experience.

Sep 8 '06 #29
In article <11************ **********@i3g2 000cwc.googlegr oups.com>,
JoeC <en*****@yahoo. comwrote:
>I have done search in the past and have been disapointed with the
result. I did find one site, www.planetsourceceode.com where I have
posted my work. It has taken a great deal of work to get to the point
I am now. I am trying to keep my game as simple as possible. In a
previous work I created a grid of space objects where the pieces
resided but it became buggy trying to put in and take out the pieces as
they moved. I have each piece keep track of its own location and draw
themselvs.
All games are a lot of work. This is why the usual advice given on
game development newsgroups is to work on simple games, like pong,
breakout, Tetris, or the like as your first title, just to get a feel
for game development, the language(s) you're using, and understanding
just how much time/work is involved in simple games. Now that you've
bitten off a large project, the question becomes: how to get it on
track, runnable, etc.

I do recommend that you try and resurrect that old code for where
objects resided, and get it debugged and functional. That's your basic
map manager, and it's certainly cleaner to get it working than make
all your attack code duplicate the same work. As to the bugs in moving
pieces, the usual logic is to remove the piece from its old location,
do the move, and then add the piece at its new location. (Or, tell the
map manager the old & new locations). If you haven't already, start
throwing in a lot of assert/_ASSERTE/whatevers into the code, so that
if things aren't as "expected," then you can get the opportunity to
drop into the debugger then and there. Additionally, if you write
things cleanly, you can take your map manager and put it into a short
workout program that tests its functionality. Personally, I'm in favor
of lots of assert bombs in the code to stop ASAP on issues.

Nathan Mates
--
<*Nathan Mates - personal webpage http://www.visi.com/~nathan/
# Programmer at Pandemic Studios -- http://www.pandemicstudios.com/
# NOT speaking for Pandemic Studios. "Care not what the neighbors
# think. What are the facts, and to how many decimal places?" -R.A. Heinlein
Sep 11 '06 #30

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

60
7330
by: Fotios | last post by:
Hi guys, I have put together a flexible client-side user agent detector (written in js). I thought that some of you may find it useful. Code is here: http://fotios.cc/software/ua_detect.htm The detector requires javascript 1.0 to work. This translates to netscape 2.0 and IE 3.0 (although maybe IE 2.0 also works with it)
6
1571
by: Ted Singh | last post by:
(I apologize in advance if this is an obvious question, my experience is more with console or client-only apps) I am trying to build an web-based HTML UI, which will work with a web-server on the same machine (i.e., http://localhost/...). However, I do not want the logic source to be visible to the user to prevent customer support problems, intellectual property issues, etc. The requirements strictly call for a web-based UI running...
0
1907
by: Tony Johansson | last post by:
Hello Experts! I reading a book called programming with design pattern revealed by Tomasz Muldner and here I read something that sound strange. "Exception are divided into logic errors and runtime errors. Logic errors represent static errors that can be prevented and detected at compile time. Runtime errors represent dynamic errors that can be detected only at runtime."
2
1510
by: Simon Harvey | last post by:
Hi all, I was wondering how most developers handle the initial startup of their Windows Forms applications? When you make an application in Visual Studio, the IDE places Main in the form that VS makes for you. When I make my applications I sometimes feel uneasy about leaving the startup logic in the Form - it sort of seems the wrong place for it. I'm by no means an expert on such things (which is why I'm writing this post), but it...
3
1530
by: mca | last post by:
Hi everyone, I'm new to asp.net and i have a question about separating the html code from the programming code. i have an unknown numbers of entries in my table. I want to make a hyperlink for every entry in my table. So i query the database and get for example 3 entries back. So in a while loop i can make 3 hyperlinks with response.write(.......) etc.
24
14422
by: cassetti | last post by:
Here's the issue: I have roughly 20 MS excel spreadsheets, each row contains a record. These records were hand entered by people in call centers. The problem is, there can and are duplicate phone numbers, and emails and addresses even person names. I need to sift through all this data (roughly 300,000+ records and use fuzzy logic to break it down, so that i have only unique records.
6
2012
by: Simon Harvey | last post by:
Hi everyone, We have a need to make a Windows Forms (2.0) client application that will be installed on our clients site. The data that the application uses needs to be centrally available to a potentially large number of other sites, which would seem to leave us with our traditional approach, or having a central database server on a dedicated server someplace.
14
3576
by: rabbitrun | last post by:
Hi Everyone, I work for a financial company. I am planning to give a presentation to rest of the development team (15 people) here on moving server side logic to client-side javascript for an internal intranet application rewrite. This approach will definitely stir up hot debate from hardcore server-side Java folks who wants to do UI stuff even on the server!. Since I am pretty much known as the JS or UI Guy of the group, my Boss...
29
2238
by: Brad Pears | last post by:
Here is a simple OO design question... I have a Contract class. The user can either save an existing contract or they start off fresh with a blank contract, fill in the data and then save a "new" contract. I have a method in my contract class called "Save" which is called like this... dim oContract as new Contract
15
2444
by: bruno.desthuilliers | last post by:
On 27 juin, 18:09, "John Salerno" <johnj...@NOSPAMgmail.comwrote: For which definitions of "content" and "logic" ??? The point of mvc is to keep domain logic separated from presentation logic, not to remove logic from presentation (which just couldn't work). Templating systems are for presentation logic. Whether they work by embedding an existing complete programmation language or by providing they're own specialised mini-language (or...
0
9814
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10838
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
10585
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10250
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7788
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6977
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
1
4447
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4010
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3111
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.