• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 22:37
CEST 04:37
KST 11:37
  • 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
Code S Season 1 (2026) - RO4 & Finals Preview4[ASL21] Ro4 Preview: On Course12Code S Season 1 - RO8 Preview7[ASL21] Ro8 Preview Pt2: Progenitors8Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13
Community News
Code S Season 1 (2026) - RO8 Results2Weekly Cups (May 4-10): Clem, MaxPax, herO win1Maestros of The Game 2 announcement and schedule !11Weekly Cups (April 27-May 4): Clem takes triple0RSL Revival: Season 5 - Qualifiers and Main Event12
StarCraft 2
General
Team Liquid Map Contest #22 - The Finalists Code S Season 1 (2026) - RO4 & Finals Preview Code S Season 1 (2026) - RO8 Results Code S Season 1 (2026) - RO12 Results MaNa leaves Team Liquid
Tourneys
GSL Code S Season 1 (2026) Sparkling Tuna Cup - Weekly Open Tournament KSL Week 89 2026 GSL Season 2 Qualifiers Maestros of The Game 2 announcement and schedule !
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players
External Content
The PondCast: SC2 News & Results Mutation # 526 Rubber and Glue Mutation # 525 Wheel of Misfortune Mutation # 524 Death and Taxes
Brood War
General
vespene.gg — BW replays in browser Data needed BGH Auto Balance -> http://bghmmr.eu/ Pros React to: TvT Masterclass in FlaSh vs Light BW General Discussion
Tourneys
[ASL21] Semifinals B [BSL22] RO8 Bracket Stage + Another TieBreaker [ASL21] Ro8 Day 4 Escore Tournament StarCraft Season 2
Strategy
Muta micro map competition Fighting Spirit mining rates [G] Hydra ZvZ: An Introduction Simple Questions, Simple Answers
Other Games
General Games
Warcraft III: The Frozen Throne Nintendo Switch Thread Path of Exile Stormgate/Frost Giant Megathread Starcraft Tabletop Miniature Game
Dota 2
The Story of Wings Gaming
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread European Politico-economics QA Mega-thread YouTube Thread Russo-Ukrainian War Thread UK Politics Mega-thread
Fan Clubs
The herO Fan Club!
Media & Entertainment
[Manga] One Piece Anime Discussion Thread [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread McBoner: A hockey love story Formula 1 Discussion
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
Travel Agencies vs Online Booking Platforms The Automated Ban List
Blogs
Why RTS gamers make better f…
gosubay
How EEG Data Can Predict Gam…
TrAiDoS
ramps on octagon
StaticNine
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1567 users

The Big Programming Thread - Page 805

Forum Index > General Forum
Post a Reply
Prev 1 803 804 805 806 807 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.
Manit0u
Profile Blog Joined August 2004
Poland17743 Posts
November 27 2016 17:22 GMT
#16081
On November 28 2016 02:16 travis wrote:
What does this do:


int i = 0

for(int j = 0: j < 10; j++) {
for(i++; i < 10; i++) {
print hi
} }


I guess you meant there to be "print i" not "print hi". It would simply print out 123456789.
Time is precious. Waste it wisely.
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
November 27 2016 17:26 GMT
#16082
naw the print statement was in there just so that there would be something inside
the question was more about the looping
I was actually trying to do a basic bubble sort, but I figured it out

outer loop needs to be:

for(int i=0; i < array length; i++)

and then inner loop is:

for(int j=1; j < (array length - i); j++)
Mr. Wiggles
Profile Blog Joined August 2010
Canada5894 Posts
November 27 2016 19:00 GMT
#16083
On November 27 2016 18:51 Aerisky wrote:
Show nested quote +
On November 27 2016 03:44 Nesserev wrote:
On November 27 2016 03:32 phar wrote:
Anyways, how about that bike shed?

First quality post in a while

EDIT: Anyone got any recommended reads that really blew them away recently?

Just read "Story of Your Life" by Ted Chiang (short story on which Arrival was based) which was really great.

JK but I actually read https://learnpythonthehardway.org/book/nopython3.html recently, and found it pretty interesting since I generally like python 3. I was blown away as I really felt some of his concerns were over, uh, blown, and didn't realize it was that big of an issue (is python actually a dying language)? Not sure whence this rant came, tbh. What do you guys think?

I don't feel like I'm experienced enough to have an informed opinion, but other than better error messages and what I've heard was rather bungled handling of the transition from python 2 to 3, I don't really feel like there's that much doom and gloom to be had regarding python 3.

Maybe the guy has had lots of problems with string encoding in his own work, but based on my own personal experience, I have to disagree with the thrust of his argument, and most of his conclusions.

Firstly, I don't know enough about the Python VM/compiler internals to be able say how hard it would have been to include backwards-compatibility from the start, versus only supporting Python 3. As for the conversion argument, from my own experience, porting projects to Python 3 has been pretty easy, and most of the work is in auditing the code to take advantage of new Python 3 features.

Secondly, I don't think implicit conversions between byte sequences and Unicode strings are safe in general. This only works if you're operating entirely in ASCII, or if you didn't need a string in the first place. In Unicode, a byte != a code point, so turning your Unicode string into a sequence of bytes and then trying to print it is going to work, but will result in garbled messages. String and byte sequences are semantically different, and I think it makes sense to separate the two and force explicit conversions when needed.

I agree that having multiple string formatting choices as we do now is a smell, and goes against the "there should be one obvious way to do it" principle of Python.

Lastly, I would question how many people have to actually work with multiple encodings and converting between them on a regular basis. Most of my professional work with Python is with building/supporting a large distributed, automated, test framework, and I basically never had to touch strings. I also concurrently used Python 2 and 3, and found very little mental switching needed between them, besides missing some features from Python 3.

On another note, this sentence made me burst out laughing:

Now, I fear that everyone who currently codes Python 2 is simply going to move to a more stable language like Go, Rust, Clojure, or Elixir.

I could maybe see some Python programmers moving to Go, but when his argument is that having a couple of static string formats is confusing enough to kill Python and drive beginners from the language, saying they'll go to one of these other languages is hilarious.

I mean, Rust doesn't even let you index into Strings, because they're always valid UTF-8, and the semantics of indexing are unclear: https://doc.rust-lang.org/std/string/struct.String.html . You have to convert the string using either as_bytes() or chars() to get iterators over the bytes or characters. There's also no implicit conversion the other way, from a u8[] to a std::String. This is just strings too, before you get into some of the more confusing to grok things like the borrow checker and lifetimes.

Never mind that these languages aren't even necessarily targeting the same design space as Python is either. It's like saying, "Now, I fear that everyone who currently codes Python 2 is simply going to move to a more stable language like Ruby, C, Haskell, or Erlang.". It's just listing languages, I don't see how there's some logical transition to any of these.

If I was a Python language contributor, who was worried about someone else coming and gobbling up my users, I'd probably be most scared of Go, or else Julia from the scientific side of things. The reasons to be scared also aren't related to having multiple static string types either.
you gotta dance
Nesserev
Profile Blog Joined January 2011
Belgium2760 Posts
Last Edited: 2016-11-27 19:35:48
November 27 2016 19:32 GMT
#16084
--- Nuked ---
TheEmulator
Profile Blog Joined July 2010
28100 Posts
November 27 2016 19:37 GMT
#16085
I like Zed Shaw and what he's done (I've read LPTHW for example), but sometimes you just have to ignore him
Administrator
Nesserev
Profile Blog Joined January 2011
Belgium2760 Posts
November 27 2016 19:42 GMT
#16086
--- Nuked ---
Prillan
Profile Joined August 2011
Sweden350 Posts
November 27 2016 19:59 GMT
#16087
On November 28 2016 02:16 travis wrote:
edit: there is something magical about asking a question and then instantly figuring out the answer

https://en.wikipedia.org/wiki/Rubber_duck_debugging
TheBB's sidekick, aligulac.com | "Reality is frequently inaccurate." - Douglas Adams
Targe
Profile Blog Joined February 2012
United Kingdom14103 Posts
November 27 2016 23:11 GMT
#16088
am i good to ask why a bug is happening in my code here even though the program its in is part of my coursework?
im not asking for a solution to my coursework, just cant work out why the bug is happening
11/5/14 CATACLYSM | The South West's worst Falco main
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
November 27 2016 23:26 GMT
#16089
On November 28 2016 08:11 Targe wrote:
am i good to ask why a bug is happening in my code here even though the program its in is part of my coursework?
im not asking for a solution to my coursework, just cant work out why the bug is happening


I don't think most people here really care (in my experience), so it's up to your personal integrity.
I ask questions about my coursework sometimes, when I do it's generally because I think it isn't really cheating or that my school's requirements are being constricting to my growth.
Targe
Profile Blog Joined February 2012
United Kingdom14103 Posts
Last Edited: 2016-11-27 23:56:51
November 27 2016 23:33 GMT
#16090
On November 28 2016 08:26 travis wrote:
Show nested quote +
On November 28 2016 08:11 Targe wrote:
am i good to ask why a bug is happening in my code here even though the program its in is part of my coursework?
im not asking for a solution to my coursework, just cant work out why the bug is happening


I don't think most people here really care (in my experience), so it's up to your personal integrity.
I ask questions about my coursework sometimes, when I do it's generally because I think it isn't really cheating or that my school's requirements are being constricting to my growth.

great, thanks

considering the end result of the coursework is to produce a simple c compiler, one bug isnt the biggest detriment to me doing it all (i often search stackoverflow for the solutions to bugs)

spoilered the relevant code here (i think its enough?), language is C

basically the variables in two instances of mainClosure seem to be different when called from set_up_global() and main() even though im acquiring them the same way through get_func_binding() in both cases and im returning the TOKEN* used to call get_func_binding() in set_up_global() to main() in order to call get_func_binding() again

+ Show Spoiler +


TOKEN* set_up_global(NODE* tree, FRAME* theFrame) {
TOKEN* main;
if (tree->left-> type == '~') {
printf("got BRANCH\n");
set_up_global(tree->right, theFrame);
set_up_global(tree->left, theFrame);
}
else if (tree->type == 'D') {
printf("got DECLARATION\n");
//print_tree(tree->left->left);//return type
//print_tree(tree->left->right->left);//function name
TOKEN* nameToken = (TOKEN*)tree->left->right->left->left;

char testString[5];
sprintf(testString, nameToken->lexeme);
if (strcmp(testString, "main") == 0) {
printf("MAIN FOUND\n");
main = nameToken;
}
printf("nameToken name is: ");
printf(nameToken->lexeme);
printf("\n");
//printf("name: %s\n", nameToken->lexeme);
//print_tree(tree->left->right->right);//formals
//print_tree(tree->right);//body
add_function_binding(theFrame, nameToken,
(NODE *)tree->left->right->right, (NODE *)tree->right);
printf("making mainClosure\n");
struct closure mainClosure = get_func_binding(theFrame, main);
print_tree(mainClosure.body);

} else if (tree->type == '~') {
printf("got VAR\n");
TOKEN* val = (TOKEN*)tree->right->right->left;
printf("bindingtest=%d\n", val->value);
int theVal = val->value;
print_tree(tree->right->right);

if (tree->right->right->type == '+' || tree->right->right->type == '-' ||
tree->right->right->type == '*' || tree->right->right->type == '/') {
printf("PLUS\n");
int l = interpret(tree->right->right, theFrame);
printf("l=%d\n", l);
theVal = l;
}

add_binding(theFrame, (TOKEN*)tree->right->left->left, theVal);
//print_tree(tree->right->right);//value
//print_tree(tree->right->left);//var name
}

return main;
}


int main(int argc, char** argv)
{
if (argc>1 && strcmp(argv[1],"-d")==0) yydebug = 1;
init_symbtable();

// head = (listnode*)malloc(sizeof(listnode));
// FRAME* main = (FRAME*)malloc(sizeof(FRAME)); //setup main scope
// main->next = global; //link main and global frames

// TOKEN* testtoken = lookup_token("z"); //testing to see if frames work
// add_binding(main,testtoken,5);

NODE* tree;

int r;
printf("--C COMPILER\n");
yyparse();
tree = ans;
printf("parse finished with %p\n", tree);
print_tree(tree);
printf("\n\n-----\n\n");
print_tree(tree->right->right);

FRAME* g = (FRAME*)malloc(sizeof(FRAME));
TOKEN* mainToken = set_up_global(tree ,g);
//printf(mainToken->lexeme);
struct closure mainClosure = get_func_binding(g, mainToken);
printf("PRINTING MAIN\n");
//print_tree(mainClosure.formals);
//print_tree(mainClosure.body);
//r = interpret(,g);
// printf("%d\n",r);
//compile(tree->right);
return 0;
}



EDIT: i think i found why its not working? its due to the fact the function recursively calls itself so the TOKEN* main that gets returned might not necessarily have been assigned a value?
11/5/14 CATACLYSM | The South West's worst Falco main
tofucake
Profile Blog Joined October 2009
Hyrule19213 Posts
Last Edited: 2016-11-28 00:22:08
November 28 2016 00:21 GMT
#16091
The homework rule is to avoid situations like

I have this homework problem:

>homework problem<

please give me code for it


If you've already got an answer, or if you want direction in how to approach the homework/quiz/test/schoolwork/whatever, that's different than just asking for the answer to a problem. We don't mind helping people find how to solve a problem, or even giving loads of examples on how problems can be approached. Don't be scared
Liquipediaasante sana squash banana
Targe
Profile Blog Joined February 2012
United Kingdom14103 Posts
November 28 2016 00:31 GMT
#16092
guess i got worried after seeing stuff like "homework thread" in blog comments lol

i dont think its even possible for me to ask questions like the example you gave at this stage in my degree tbh, all my coursework now is a bit beyond simple solutions
11/5/14 CATACLYSM | The South West's worst Falco main
Aerisky
Profile Blog Joined May 2012
United States12129 Posts
November 28 2016 00:33 GMT
#16093
@Nesserev and Mr. Wiggles whoa, thanks for the really detailed responses. I agree, yeah. The late start of Python 3 was definitely in part the fault of the maintainers/designers to an extent, but it overall seems to be headed in the right direction. I also got the impression that Zed has some beef based on some conversations with the Python team that didn't go very well w.r.t. backwards compatibility and the other points mentioned.
Jim while Johnny had had had had had had had; had had had had the better effect on the teacher.
meatpudding
Profile Joined March 2011
Australia520 Posts
November 28 2016 00:47 GMT
#16094
On November 28 2016 08:33 Targe wrote:
Show nested quote +
On November 28 2016 08:26 travis wrote:
On November 28 2016 08:11 Targe wrote:
am i good to ask why a bug is happening in my code here even though the program its in is part of my coursework?
im not asking for a solution to my coursework, just cant work out why the bug is happening


I don't think most people here really care (in my experience), so it's up to your personal integrity.
I ask questions about my coursework sometimes, when I do it's generally because I think it isn't really cheating or that my school's requirements are being constricting to my growth.

great, thanks

considering the end result of the coursework is to produce a simple c compiler, one bug isnt the biggest detriment to me doing it all (i often search stackoverflow for the solutions to bugs)

spoilered the relevant code here (i think its enough?), language is C

basically the variables in two instances of mainClosure seem to be different when called from set_up_global() and main() even though im acquiring them the same way through get_func_binding() in both cases and im returning the TOKEN* used to call get_func_binding() in set_up_global() to main() in order to call get_func_binding() again

+ Show Spoiler +


TOKEN* set_up_global(NODE* tree, FRAME* theFrame) {
TOKEN* main;
if (tree->left-> type == '~') {
printf("got BRANCH\n");
set_up_global(tree->right, theFrame);
set_up_global(tree->left, theFrame);
}
else if (tree->type == 'D') {
printf("got DECLARATION\n");
//print_tree(tree->left->left);//return type
//print_tree(tree->left->right->left);//function name
TOKEN* nameToken = (TOKEN*)tree->left->right->left->left;

char testString[5];
sprintf(testString, nameToken->lexeme);
if (strcmp(testString, "main") == 0) {
printf("MAIN FOUND\n");
main = nameToken;
}
printf("nameToken name is: ");
printf(nameToken->lexeme);
printf("\n");
//printf("name: %s\n", nameToken->lexeme);
//print_tree(tree->left->right->right);//formals
//print_tree(tree->right);//body
add_function_binding(theFrame, nameToken,
(NODE *)tree->left->right->right, (NODE *)tree->right);
printf("making mainClosure\n");
struct closure mainClosure = get_func_binding(theFrame, main);
print_tree(mainClosure.body);

} else if (tree->type == '~') {
printf("got VAR\n");
TOKEN* val = (TOKEN*)tree->right->right->left;
printf("bindingtest=%d\n", val->value);
int theVal = val->value;
print_tree(tree->right->right);

if (tree->right->right->type == '+' || tree->right->right->type == '-' ||
tree->right->right->type == '*' || tree->right->right->type == '/') {
printf("PLUS\n");
int l = interpret(tree->right->right, theFrame);
printf("l=%d\n", l);
theVal = l;
}

add_binding(theFrame, (TOKEN*)tree->right->left->left, theVal);
//print_tree(tree->right->right);//value
//print_tree(tree->right->left);//var name
}

return main;
}


int main(int argc, char** argv)
{
if (argc>1 && strcmp(argv[1],"-d")==0) yydebug = 1;
init_symbtable();

// head = (listnode*)malloc(sizeof(listnode));
// FRAME* main = (FRAME*)malloc(sizeof(FRAME)); //setup main scope
// main->next = global; //link main and global frames

// TOKEN* testtoken = lookup_token("z"); //testing to see if frames work
// add_binding(main,testtoken,5);

NODE* tree;

int r;
printf("--C COMPILER\n");
yyparse();
tree = ans;
printf("parse finished with %p\n", tree);
print_tree(tree);
printf("\n\n-----\n\n");
print_tree(tree->right->right);

FRAME* g = (FRAME*)malloc(sizeof(FRAME));
TOKEN* mainToken = set_up_global(tree ,g);
//printf(mainToken->lexeme);
struct closure mainClosure = get_func_binding(g, mainToken);
printf("PRINTING MAIN\n");
//print_tree(mainClosure.formals);
//print_tree(mainClosure.body);
//r = interpret(,g);
// printf("%d\n",r);
//compile(tree->right);
return 0;
}



EDIT: i think i found why its not working? its due to the fact the function recursively calls itself so the TOKEN* main that gets returned might not necessarily have been assigned a value?


I'm not sure exactly if this is your problem, but g isn't initialised before it's passed to set_up_global. Also, in set_up_global, anything that changes the pointer theFrame is only going to act locally, and not change the object pointed to by g. I'm not sure what your problem is, but I would recommend initialising g.
Be excellent to each other.
Manit0u
Profile Blog Joined August 2004
Poland17743 Posts
Last Edited: 2016-11-28 01:31:25
November 28 2016 01:24 GMT
#16095
I think that the first thing you should work on is structuring your data properly:


tree->left->right->left->left


Holy hell...

Also, may I ask why do you want to introduce closures in C? C is not a functional language and trying to make it so isn't going to help you.

Edit: I assume you have seen this already?
Time is precious. Waste it wisely.
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
Last Edited: 2016-11-28 03:45:45
November 28 2016 01:56 GMT
#16096
ungraded lab exercise at my school
we are doing threading

the idea in this excersize is to replace all the values in a 2 dimensional array with the square root of each value

but in this class, we are doing it by making height number threads, and each thread will square root every width value

so, I made ProcessRow, which has the runnable for my thread behavior

but what do I put into my main method and "//do stuff here"? The directions say I need to create an "array of threads".
I know I need to do something like.. new thread. which I guess I will put in every index. and then I need to go through the indexes and do that index.start. Also I then need to "join" the threads before it gets to the timer.

I know I am basically asking someone to do this part of the work for me, but yeah, it's a bit confusing.


+ Show Spoiler +


public class MathWithMultipleThreads {

private static Random random = new Random();

private static double[][] makeArray(int height, int width) {
double[][] answer = new double[height][width];
for (int row = 0; row < height; row++) {
for (int col = 0; col < width; col++) {
answer[row][col] = random.nextDouble();
}
}
return answer;
}

public static void main(String[] args) throws InterruptedException {
double[][] array = makeArray(1000, 1000);
long start = System.nanoTime();

//do stuff here



long end = System.nanoTime();
System.out.println((end - start)/1000000000.0);
}

class ProcessRow implements Runnable {

double[] arrayRow;

public ProcessRow(double[] rows) {
arrayRow = rows;
}

@Override
public void run() {

for (int col = 0; col < arrayRow.length; col++){
arrayRow[col] = Math.sqrt(arrayRow[col]);
}


}

}
}


tofucake
Profile Blog Joined October 2009
Hyrule19213 Posts
November 28 2016 03:20 GMT
#16097
On November 28 2016 09:31 Targe wrote:
guess i got worried after seeing stuff like "homework thread" in blog comments lol

i dont think its even possible for me to ask questions like the example you gave at this stage in my degree tbh, all my coursework now is a bit beyond simple solutions

Just follow the thread for a few days and you'll see how it works. It's a lot of Travis along for homework help :p
Liquipediaasante sana squash banana
Blitzkrieg0
Profile Blog Joined August 2010
United States13132 Posts
November 28 2016 03:26 GMT
#16098
Was all that code provided? I feel like the Thread should be setup in a different way, but it may just make more sense in my mind that way.
I'll always be your shadow and veil your eyes from states of ain soph aur.
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
Last Edited: 2016-11-28 03:34:47
November 28 2016 03:33 GMT
#16099
On November 28 2016 12:20 tofucake wrote:
Show nested quote +
On November 28 2016 09:31 Targe wrote:
guess i got worried after seeing stuff like "homework thread" in blog comments lol

i dont think its even possible for me to ask questions like the example you gave at this stage in my degree tbh, all my coursework now is a bit beyond simple solutions

Just follow the thread for a few days and you'll see how it works. It's a lot of Travis along for homework help :p



I like to think of it as I am a driving force of the thread.


On November 28 2016 12:26 Blitzkrieg0 wrote:
Was all that code provided? I feel like the Thread should be setup in a different way, but it may just make more sense in my mind that way.




This is what was provided

+ Show Spoiler +


public class MathWithMultipleThreads {

private static Random random = new Random();

private static double[][] makeArray(int height, int width) {
double[][] answer = new double[height][width];
for (int row = 0; row < height; row++) {
for (int col = 0; col < width; col++) {
answer[row][col] = random.nextDouble();
}
}
return answer;
}

public static void main(String[] args) throws InterruptedException {
double[][] array = makeArray(1000, 1000);
long start = System.nanoTime();

//do stuff here



long end = System.nanoTime();
System.out.println((end - start)/1000000000.0);
}
}



but they also basically told us to create an inner class that implements runnable
Blitzkrieg0
Profile Blog Joined August 2010
United States13132 Posts
November 28 2016 03:36 GMT
#16100
so what you wrote doesn't actually access 'array' that was created so you're doing the square root on different data.
I'll always be your shadow and veil your eyes from states of ain soph aur.
Prev 1 803 804 805 806 807 1032 Next
Please log in or register to reply.
Live Events Refresh
OSC
00:00
OSC Elite Rising Star #19
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
PiGStarcraft365
RuFF_SC2 180
WinterStarcraft99
Ketroc 63
StarCraft: Brood War
GuemChi 6777
Artosis 675
Noble 19
Dota 2
monkeys_forever512
NeuroSwarm134
LuMiX1
League of Legends
JimRising 725
Counter-Strike
taco 776
Other Games
summit1g17603
tarik_tv7241
Maynarde129
Organizations
Other Games
gamesdonequick1008
BasetradeTV228
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• Hupsaiya 102
• davetesta38
• CranKy Ducklings SOOP24
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Other Games
• Scarra1563
Upcoming Events
Replay Cast
6h 23m
Wardi Open
9h 23m
Monday Night Weeklies
13h 23m
Replay Cast
21h 23m
The PondCast
1d 7h
Kung Fu Cup
1d 8h
GSL
2 days
Replay Cast
2 days
GSL
3 days
WardiTV Spring Champion…
3 days
[ Show More ]
Replay Cast
3 days
Sparkling Tuna Cup
4 days
WardiTV Spring Champion…
4 days
Replay Cast
4 days
RSL Revival
5 days
Classic vs SHIN
Rogue vs Bunny
BSL
5 days
Replay Cast
5 days
Afreeca Starleague
6 days
Flash vs Soma
RSL Revival
6 days
BSL
6 days
Patches Events
6 days
Liquipedia Results

Completed

Escore Tournament S2: W7
2026 GSL S1
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
YSL S3
SCTL 2026 Spring
RSL Revival: Season 5
Heroes Pulsing #1
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2

Upcoming

Escore Tournament S2: W8
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
WardiTV Spring 2026
2026 GSL S2
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 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.