• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 15:14
CEST 21:14
KST 04:14
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Serral wins HomeStory Cup 2914Serral wins Maestros of the Game 243ByuL, and the Limitations of Standard Play3Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12
Community News
IntoTheTV X SOOP SC2 League : Weekly & Monthly4Clem: "I don't have that much hope in Blizzard"5ZeroSpace Early Access is Now Live!34Weekly Cups (July 13-19): Terran & Protoss rise; Zerg falters2Balance hotfix patch 5.0.16b (July 16)103
StarCraft 2
General
Clem: "I don't have that much hope in Blizzard" Balance hotfix patch 5.0.16b (July 16) How would you feel about frequent/monthly balance patches for SC2? 3kb/s downloading patch..... are we back to 1998? Reynor: GSL Loss Wasn't About Preparation Format
Tourneys
PIG STY FESTIVAL 8.0! (13 - 23 August) RSL Revival: Season 6 - Qualifiers and Main Event IntoTheTV X SOOP SC2 League : Weekly & Monthly INu's Battles#18 - Cure, herO, Rogue & ByuN Master Swan Open (Global Bronze-Master 2)
Strategy
[G] Having the right mentality to improve
Custom Maps
[M] (2) Industrial Park New Map Maker - Looking for Advice - Love or Hate
External Content
Mutation # 536 Railroad Switch The PondCast: SC2 News & Results Mutation # 535 Assembly of Vengeance Mutation # 534 Burning Evacuation
Brood War
General
BW General Discussion ASL22 General Discussion BGH Auto Balance -> http://bghmmr.eu/ Recent recommended BW games screpdb: new Starcraft reporting tool
Tourneys
2v2v2v2 Tournament Star Con San Diego 2026 Escore Tournament - Season 3 [Megathread] Daily Proleagues
Strategy
Simple Questions, Simple Answers PvT advise for noobs Fighting Spirit mining rates Creating a full chart of Zerg builds
Other Games
General Games
Path of Exile ZeroSpace Early Access is Now Live! Stormgate/Frost Giant Megathread General RTS Discussion Thread Nintendo Switch Thread
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Power Rank TL Mafia Community Thread NeO.D_StephenKing vs This Guy From 1 Million Dance
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread Artificial Intelligence Thread European Politico-economics QA Mega-thread How to buy a book - shipping from Korea to Europe
Fan Clubs
The IdrA Fan Club The HerO Fan Club!
Media & Entertainment
Movie Discussion! Anime Discussion Thread Series you have seen recently... [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread 2026-27 Football Thread placeholder TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Simple Questions Simple Answers FPS when play League Of Legend on laptop
TL Community
Northern Ireland Global Starcraft The Automated Ban List
Blogs
Games, Hormones, and "Dark" …
TrAiDoS
Hello guys!
LIN1s
ASL S22 English Commentary…
namkraft
Poker (part 2)
Nebuchad
An Exploration of th…
waywardstrategy
Customize Sidebar...

Website Feedback

Closed Threads



Active: 6073 users

The Big Programming Thread - Page 20

Forum Index > General Forum
Post a Reply
Prev 1 18 19 20 21 22 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
Yukidasu
Profile Blog Joined September 2009
Australia125 Posts
August 11 2010 15:44 GMT
#381
I'd suggest making an empty map with only two bases (no cliffs, obstacles), and making it zergling rush or something. The trick to making it simple is to avoid situations where you'd need to make difficult decisions depending on what you see (like stay or run based on units seen and positioning), which are compounded by having lots of different unit types and longer games where you need to recognize more enemy things.

A simple speed zergling rush with a-move should work decently for the amount of effort needed, and then you can add intelligent stuff if you have time.
Lost in a groundless dream. You can't fly if there's nowhere to fall.
Badjas
Profile Blog Joined October 2008
Netherlands2038 Posts
August 11 2010 16:27 GMT
#382
I think you can get a bit more advanced than executing a zergling rush. A zergling rush involves only harvesting, growing overlords, zerglings and drones, a spawning pool and an extractor, with a very basic army control. Rather than demonstrating that you can win with an AI bot, I think it is much more useful in terms of an AI class that you demonstrate:
- Intelligent building placement
- Supporting a concept of build order (alternatively, have the build order be complete deduced but that's rather hard)
- Intelligent army composition and placement
- Scouting

Most of the logic needed has a spatial aspect to it.
Building placement logic depends on race played. The penalty for expanding building space for zerg is the greatest so there the focus will be on a tight defense/simcity. Terran on the other hand has a higher priority in placing buildings for a smart greater range of vision around the base, although of course balanced with a good simcity to protect key buildings and workers.

Intelligent army composition. Here some statistics of the game must be taken in to account, like which unit does what damage to what unit and some soft factors for mobility and build time perhaps. Based on the information that you got, and how much one can afford to keep on going with a certain plan or deviate, build units.

Those units must be placed on the map somewhere, which is a separate problem. If you have a logic that gives you the best army composition, then that logic will overlap somewhat in functional appearance as to how to place those units then. Ideally you'd want some soft squishy logic figure everything out, like distance from ramps to make, and if making a concave is smart and such. In terms of an AI class, you can go for that. In terms of making a successful AI, better hardcode this stuff because you ain't gonna peg this one (okay okay, I am making premature assumptions here).

Scouting involves spatial discovery with a risk/reward evaluation. Since reward evaluation will be insanely hard (depending also on how the build order is executed as well as decision making for army composition later on) it makes sense to link the amount of risk you're willing to take inversely with the time that the game is playing. BWAPI should, perhaps with a support library, give you a map with the general map structure and starting locations. Luxuries that regular players have as well, which are free for your exploitation.

Now if you want to make a very dynamic and soft coded AI bot that does anything good, 11 to 12 weeks isn't going to scratch the surface of that. My approach would be to get the most rudimentary thing running in every department, like what would be needed for the zergling rush and then capitalize on one or perhaps two segments as far as you think you can make it. If you have to write a plan beforehand on what you plan to finish, then that's a bit tough to determine beforehand so I guess better be safe than sorry on your promises. One thing to note, if you start out with the zergling rush, an obvious expansion would be the execution of more complex build orders. Preferably with soft logic in the sense that you can evaluate the benefits of saving up minerals for building a structure sooner rather than later in a point system comparable to the otherwise good sides of having a stronger economy from building more workers, and things like that.

I have not played around with BWAPI, I have seen some nice projects coming along for it though. Most of them initially dealt with unit micro, which is another area that can be interesting but most of the benefits came from abusing the insane APM a computer can wrench from the cpu. I'd suggest you contact those who've played with BWAPI before for more info, obviously.
I <3 the internet, I <3 you
stafu
Profile Blog Joined January 2009
Australia1196 Posts
August 11 2010 16:54 GMT
#383
Thanks Badjas, that's insanely helpful : ) I had thought about just making a standard rushing AI to demonstrate "look! it beats the computer!", but I would much prefer to do something a bit more macro and decision-making oriented. I guess that'll depend on how much time I have available for it, but you're right, starting with a rush is probably going to be the best way to get used to BWAPI and get a feel for what I can do. I'm pretty set on basing it solely on Terran, just because it's going to make building placement a bit simpler, as well as a pretty straightforward macro mechanic and some well-rounded simple unit compositions.

Again, thank you. Awesome post : ) I'll have to post my results on TL (as long as it's not [too much of] a failure :p)
Dave[9]
Profile Blog Joined October 2003
United States2365 Posts
August 12 2010 04:02 GMT
#384
So i've got an excel question.

I've got a set amount of data in an excel sheet that I would like to create possibly either a VBA program or C++ program that would as you questions, and then fill out that information accordingly in the spreadsheet in the correct rows. Is this possible? I know that it is possible to create surveys and whatnot with excel, but how can I.."tell the survey to record the results in a spreadsheet?" There will be some other issues as well, say in the program I ask "Is your major math?", select yes, but in that I have to put in the names of the classes I am taking, which means for one row, I would have to have split cells along the way to accomodate them being organized under "math major". I have a feeling if I can get some help in knowing how to create this kind of survey or program to fill information in a spreadsheet.

Say my survey goes as this(it's not really going to be used as a survey, but it will act like one, the purpose is the same.).

1. What is your class number? [user enters class number]
2. Are you a Math Major? [User selects yes or no]
3. How many classes are you taking? [number that tells you how many cells to create to fill in each one for each class, this is where the splitting cells in a row and whatnot comes in]
4. What classes are you taking? [User enters data that will fill in the data accordingly]

Can anyone show me a demo of this to expand on?
http://www.teamliquid.net/forum/viewmessage.php?topic_id=104154&currentpage=316#6317
AssuredVacancy
Profile Blog Joined September 2008
United States1167 Posts
August 12 2010 04:58 GMT
#385
On August 12 2010 13:02 Dave[9] wrote:
So i've got an excel question.

I've got a set amount of data in an excel sheet that I would like to create possibly either a VBA program or C++ program that would as you questions, and then fill out that information accordingly in the spreadsheet in the correct rows. Is this possible? I know that it is possible to create surveys and whatnot with excel, but how can I.."tell the survey to record the results in a spreadsheet?" There will be some other issues as well, say in the program I ask "Is your major math?", select yes, but in that I have to put in the names of the classes I am taking, which means for one row, I would have to have split cells along the way to accomodate them being organized under "math major". I have a feeling if I can get some help in knowing how to create this kind of survey or program to fill information in a spreadsheet.

Say my survey goes as this(it's not really going to be used as a survey, but it will act like one, the purpose is the same.).

1. What is your class number? [user enters class number]
2. Are you a Math Major? [User selects yes or no]
3. How many classes are you taking? [number that tells you how many cells to create to fill in each one for each class, this is where the splitting cells in a row and whatnot comes in]
4. What classes are you taking? [User enters data that will fill in the data accordingly]

Can anyone show me a demo of this to expand on?


I'm sure there are online questionnaire creators that you can use? Otherwise I don't think excel is the best tool to make this in
We spend our youth attaining wealth, and our wealth attaining youth.
catamorphist
Profile Joined May 2010
United States297 Posts
August 12 2010 05:13 GMT
#386
The demo is called Google Docs.

http://googledocs.blogspot.com/2008/02/stop-sharing-spreadsheets-start.html
http://us.battle.net/sc2/en/profile/281144/1/catamorphist/
Loser777
Profile Blog Joined January 2008
1931 Posts
August 12 2010 05:33 GMT
#387
On August 11 2010 09:54 dvide wrote:
There are several problems here. Your use of fstream::eof() is flawed. See here for why:
http://stackoverflow.com/questions/1039667/why-does-stdfstream-set-the-eof-bit-the-way-it-does
http://stackoverflow.com/questions/730910/ifstream-object-eof-not-working

Secondly you should probably use: std::vector<BankAccount*> bankAccounts;

This will save you a lot of trouble. It uses a dynamic array internally, meaning you can insert any number of elements into the vector (using the push_back member function) and it will resize itself automatically at runtime to fit. In your case, if there is not exactly 10 bank accounts stored inside your file then there will be a problem here. For example, if there are 11 bank accounts in the file then your code will insert the last one into the 11th element of the array, which is undefined behaviour.

If there are less than 10 bank accounts stored inside your file, during clean-up you will be deleting a bank account that was never created. You will be calling delete on an uninitialised pointer, which again is undefined behaviour. You could initialise all bankAccount elements to NULL before you read the file, in which case your code would be fine so long as there are always <= 10 bank accounts in your file. Calling the delete operator on a NULL pointer is safe.

But again a normal C++ programmer wouldn't do it this way. Infact, a normal C++ wouldn't even use std::vector if they were able. They would rather use something like Boost's ptr_vector for this task, which is a class that owns the pointers internally and handles clean-up for you in its destructor (a popular C++ idiom called RAII, if you're interested). It also provides a nicer interface to your elements than an std::vector of pointers. This is probably not something you should focus on though until you are comfortable with what is actually going on. But just know that it's not always this difficult in C++ once you start using the proper tools for the job at hand


EDIT: How a C++ programmer would write this: http://codepad.org/Qs7nNq3R

Also, if you don't want to use stringstream I would recommend sscanf instead of atoi. At least that way you can check for formatting errors properly. atoi simply returns 0 on error, so if 0 is a valid value you won't know if it's a true error or not. However, when you gain more knowledge, you should be aware of the security problems with scanf (namely buffer overflows).

Hope this helps

Thanks! I'll try to digest some of that... in Java I at least got to use ArrayLists... I guess Vectors are an analog to ArrayLists
6581
Dave[9]
Profile Blog Joined October 2003
United States2365 Posts
August 12 2010 05:33 GMT
#388
On August 12 2010 14:13 catamorphist wrote:
The demo is called Google Docs.

http://googledocs.blogspot.com/2008/02/stop-sharing-spreadsheets-start.html


Almost, but it isn't quite what I want. Google Docs will display what I want in a spreadsheet, but the format is not of what I need it to be in.

What I basically want is a form like google docs that will fill in cells of a preexisting worksheet.
http://www.teamliquid.net/forum/viewmessage.php?topic_id=104154&currentpage=316#6317
Craton
Profile Blog Joined December 2009
United States17302 Posts
August 12 2010 05:46 GMT
#389
A cursory glance at Google shows that there exists ArrayLists for java (I'm pretty sure I've used them in the past), but Vectors perform a similar role.

If you use anything that is synchronized, you need to do so with the
utmost care or it will come back and bite you at some inopportune time
later. Vector, as an example, is prone to deadlock in some rather
trivial two-thread use cases in which an unsynchronized ArrayList
would perform perfectly.

If you do not desperately _need_ a synchronized list, you should
always go for an unsynchronized ArrayList. If you do need one that is
synchronized, you may want to used a Collections.synchronizedList()
although on 1.4.2 that synchronization seems slightly buggy (not sure
if it's fixed in 5.0). Vector might be more functional.
twitch.tv/cratonz
dnosrc
Profile Joined May 2009
Germany454 Posts
August 12 2010 18:46 GMT
#390
Thanks to this thread for showing me ProjectEuler. I am at 201/299 now :D

If anyone needs help or wants to work with me on the harder ones just pm.
Frigo
Profile Joined August 2009
Hungary1023 Posts
Last Edited: 2010-09-10 09:08:40
September 10 2010 09:08 GMT
#391
Whoever tries to solve problem 272 of PE, don't forget the 9, or you shall suffer for days.
http://www.fimfiction.net/user/Treasure_Chest
Adeny
Profile Blog Joined January 2009
Norway1233 Posts
September 23 2010 16:01 GMT
#392
Question time! I have no idea how to google for this one, so here goes:

int a = 1 ? 2 : 3

What does it do? Or what is it called so I can google it up.
Kentor *
Profile Blog Joined December 2007
United States5784 Posts
Last Edited: 2010-09-23 16:09:54
September 23 2010 16:09 GMT
#393
On September 24 2010 01:01 Adeny wrote:
Question time! I have no idea how to google for this one, so here goes:

int a = 1 ? 2 : 3

What does it do? Or what is it called so I can google it up.

http://en.wikipedia.org/wiki/?:

or search ternary operator. basically a shorthand for an if else.
haduken
Profile Blog Joined April 2003
Australia8267 Posts
September 23 2010 16:11 GMT
#394
I *think* that is a short hand C statement.

It's equivalent to

if(1==true)
{2}
else
{3}

Correct me if I'm wrong. Its being a while.
Rillanon.au
Adeny
Profile Blog Joined January 2009
Norway1233 Posts
September 23 2010 16:41 GMT
#395
Gotcha, thanks. TL to the rescue!
Frigo
Profile Joined August 2009
Hungary1023 Posts
Last Edited: 2010-09-23 17:28:32
September 23 2010 17:27 GMT
#396
No, it's not equivalent, but very close. It's basically a conditional assignment.
a = b ? c : d; is the same as
if( b )
a = c;
else
a = d;

http://www.fimfiction.net/user/Treasure_Chest
tofucake
Profile Blog Joined October 2009
Hyrule19230 Posts
September 23 2010 17:42 GMT
#397
On September 24 2010 01:01 Adeny wrote:
Question time! I have no idea how to google for this one, so here goes:

int a = 1 ? 2 : 3

What does it do? Or what is it called so I can google it up.

That particular instance is the same as int a = 2, although Frigo has it spot on:


On September 24 2010 02:27 Frigo wrote:
No, it's not equivalent, but very close. It's basically a conditional assignment.
a = b ? c : d; is the same as
if( b )
a = c;
else
a = d;


Liquipediaasante sana squash banana
Adeny
Profile Blog Joined January 2009
Norway1233 Posts
Last Edited: 2010-09-23 21:26:32
September 23 2010 18:49 GMT
#398
+ Show Spoiler +
Not in C# it isn't! (I think, because 1 doesn't == true in C# if that's what you're refering to). Anyways the numbers were just examples. Now, onwards, to another question! Using C# btw.

So I've got a LAMP set up on VMware, which I want my .net app to communicate to, so far so good. Now, my choices are OleDB, ODBC or NET connector, fair enough. I went ahead and picked OleDB because frankly it was the first result in google, and this tutorial I found seems reasonable. So I guess my question is wtf is a connector? Actually that's not really my question it obviously connects MySQL and .NET but is it installed on the server with MySQL or the server with the .NET app? Because I'm only able to find a windows executable for it, surely there must be a linux version if it's supposed to be installed on the MySQL side.


Scratch all of that, got it working. Downloaded this https://cherrycitysoftware.com/CCS/Providers/ProvMySQL.aspx on .net application server.
Adeny
Profile Blog Joined January 2009
Norway1233 Posts
September 26 2010 14:02 GMT
#399
Let's ask some more questions! Weeee! Not going to edit because no one will answer if it doesn't get bumped.

This time, how do I sockets? Relax, I'll go more in depth, here's my current set up:

VM Linux with MySQL <- Server application (C#) <- Client application(C#). All well and good, in fact I can register and "log in" based on data from the database. However I'm stuck when it comes to handling multiple user connections. Now, I obviously want threads, but how do I "manage" the connections?

I'm thinking I should keep an array of users that connect, then make a separate thread for each user of course, and then dispose of the threads that aren't in use because users disconnected.

Makes sense right? But how do I go about doing that? I.E. Do I make one "master socket" that everyone connects to, then make a new thread every time someone connects to it, and somehow automagically transfer that client over to the new socket?

All in all I am confuse.
goswser
Profile Blog Joined May 2009
United States3548 Posts
September 26 2010 14:20 GMT
#400
Wow, wish I noticed this thread last year when I was in AP Computer Science, I always wanted to learn more languages than java and vb (only languages I know), but never knew how to get started. This thread is awesome, thanks to everyone involved!
say you were born into a jungle indian tribe where food was scarce...would you run around from teepee to teepee stealing meat scraps after a day lazying around doing nothing except warming urself by a fire that you didn't even make yourself? -rekrul
Prev 1 18 19 20 21 22 1032 Next
Please log in or register to reply.
Live Events Refresh
Monday Night Weeklies
16:00
#60
RotterdaM1142
TaKeTV 469
TKL 375
IndyStarCraft 278
SteadfastSC198
BRAT_OK 144
ZombieGrub101
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 1142
ByuN 523
TKL 375
IndyStarCraft 278
SteadfastSC 198
BRAT_OK 144
ZombieGrub101
ProTech74
RushiSC 21
StarCraft: Brood War
Calm 4170
Mini 560
EffOrt 266
ggaemo 169
Mong 47
yabsab 24
sorry 13
Dota 2
Gorgc5075
monkeys_forever252
Counter-Strike
kRYSTAL_75
Super Smash Bros
C9.Mang0181
Heroes of the Storm
Liquid`Hasu322
MindelVK8
Other Games
Grubby3810
Beastyqt695
ceh9593
B2W.Neo453
elazer315
XaKoH 191
Pyrionflax143
Livibee130
Hui .125
UpATreeSC110
JuggernautJason65
Mew2King53
Trikslyr53
Organizations
Other Games
BasetradeTV61
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 17 non-featured ]
StarCraft 2
• kabyraGe 161
• StrangeGG 36
• Reevou 4
• IndyKCrew
• Migwel
• AfreecaTV YouTube
• sooper7s
• intothetv
• Kozan
• LaughNgamezSOOP
StarCraft: Brood War
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• C_a_k_e 2093
League of Legends
• TFBlade989
Other Games
• imaqtpie871
• Shiphtur506
Upcoming Events
Sparkling Tuna Cup
14h 46m
INu's Battles
15h 46m
Cure vs herO
ByuN vs Rogue
PiGosaur Cup
1d 4h
The PondCast
1d 14h
Kung Fu Cup
1d 15h
Patches Events
1d 20h
Replay Cast
2 days
CrankTV Team League
2 days
OSC
2 days
Replay Cast
3 days
[ Show More ]
Escore
3 days
CrankTV Team League
3 days
Replay Cast
4 days
Afreeca Starleague
4 days
RSL Revival
4 days
ByuN vs SHIN
Solar vs Lambo
WardiTV Summer Champion…
4 days
Afreeca Starleague
5 days
RSL Revival
5 days
Clem vs Serral
herO vs Rogue
WardiTV Summer Champion…
5 days
WardiTV Weekly
6 days
Liquipedia Results

Completed

Acropolis #4
SCTL 2026 Spring
Eternal Conflict S2 Finale

Ongoing

CSL 2026 Summer (S21)
KCM Race Survival 2026 Season 3
RSL Revival: Season 6
CranK Gathers Season 4: BW vs SC2 Team League
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026

Upcoming

Escore Tournament S3: W5
ASL Season 22: Qualifier #1
ASL Season 22: Qualifier #2
Acropolis #5
CSLAN 4
ASL Season 22
Acropolis #5 - TRS
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
PiG Sty Festival 8.0
Light Tournament 2026
ESL Pro League Season 24
Stake Ranked Episode 4
Logitech G Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #5
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.