• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 08:57
CET 13:57
KST 21:57
  • 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
[ASL22] Finals Preview: Sweet Victory!12[ASL22] Ro4 Preview: Mirror Mirror6[ASL22] Ro8 Preview: Within Reach5[ASL22] Ro8 Preview: In A Tizzy11[ASL22] Ro16 Preview: Holy Diver5
Community News
Weekly Cups (October 19-25): Clem triples first in 5.0.174Evil Geniuses - shutting down20ISSL (IntoTheTV x SOOP SC2 League): Premier5Weekly Cups (October 12-18): 5.0.17 era begins1[$1250] International ShieldBattery League92
StarCraft 2
General
How do you feel about the mass reverts in the 5.0.17 PTR? Weekly Cups (October 19-25): Clem triples first in 5.0.17 Evil Geniuses - shutting down REPORT: StarCraft 2: Remastered In Development No more SC2 streamers on team liquid?
Tourneys
2026 KungFu Cup Announcement RSL goes to London! 2026 Offline Finals Nov 21-22 ScienceCraft (October 24-25) - Live Event Sparkling Tuna Cup - Weekly Open Tournament ISSL (IntoTheTV x SOOP SC2 League): Premier
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
Simple Questions/Answers [G] How to playtest arcade maps [A] Nemrods 1/4 players
External Content
Mutation # 549 Endless Sparkles The PondCast: SC2 News & Results Mutation # 548 Shining Bright Mutation # 547 Temple Of Terror
Brood War
General
Starcraft player cRuZa Passed away. BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ Do we even care about balance? SCHNAIL now supports Remastered
Tourneys
KCM Race Survival 2026 Season 4 [BSL23] RO24 Group D - Sunday 21:00 CET [$1250] International ShieldBattery League [Megathread] Daily Proleagues
Strategy
50,000-Word Terran Builds Memo 2026-10-22 Cliff Jump Revisited (1 in a 1000 strategy) Simple Questions, Simple Answers
Other Games
General Games
Nintendo Switch Thread Stormgate/Frost Giant Megathread Mobile Legends: Bang Bang Armies of Exigo - YesYes? General RTS Discussion Thread
Dota 2
Dota 2 Champions League Season 3 Begins April 25!
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
Russo-Ukrainian War Thread Things Aren’t Peaceful in Palestine US Politics Mega-thread European Politico-economics QA Mega-thread The Chess Thread
Fan Clubs
Reynor Fan Club The Flash Fan Club Serral Fan Club
Media & Entertainment
Anime Discussion Thread Movie Discussion! [Manga] One Piece
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
Innovate or Game Over?
TrAiDoS
ShieldBattery on Mac
Kraekkling
[ASL22] Ro4 Day1 Ticket Giv…
bITt.mAN
Can Bots Beat Pros?? Starcr…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 17166 users

The Big Programming Thread - Page 410

Forum Index > General Forum
Post a Reply
Prev 1 408 409 410 411 412 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.
ThatGuy
Profile Blog Joined April 2008
Canada695 Posts
December 19 2013 03:41 GMT
#8181

// recursive computation of sum of ages of all players in the list
int sumAge(PlayerList list)
{
if(firstPlayer.getNext() == null)
{
return firstPlayer.getAge();
}
else
{
return head().getAge() + sumAge(tail());
}
}


plus


PlayerList tail()
{
PlayerList list = new PlayerList(head().getNext());
if(list.head() == null)
{
final PlayerList empty = new PlayerList();
return empty;
}
return list;
}


is absolutely gnarly logic. sumAge() always relies on the Player's getNext() to be null as a base case. However, in tail(), you check the same scenario, and return a new PlayerList with a null firstPlayer inside of it. So when you do the recursive call on sumAge(), the condition is now checking if a null object's getNext() is null...I don't really understand why this is even possible, lol. You really should be hitting NullReferenceExceptions, but maybe the StackOverflowError is resulting from this as a compensatory side effect somewhere?

It's dangerous to assume that objects being passed in are always going to be valid. You might prevent a lot of headaches if you check that firstPlayer itself is null instead.

On a side note, in tail(), why do you create another new list if the head is null? You're basically returning the exact same object.
ThatGuy
Profile Blog Joined April 2008
Canada695 Posts
Last Edited: 2013-12-19 03:43:42
December 19 2013 03:43 GMT
#8182
Oh and for future reference, one quick look at the call stack should answer your future stack overflow questions rather quickly .
Vilanoil
Profile Blog Joined July 2010
Germany47 Posts
December 19 2013 07:48 GMT
#8183
Okay i just took a look at the stack trace ( i think ?^^ ) it's like this :

+ Show Spoiler +


Exception in thread "main" java.lang.StackOverflowError
at PlayerList.<init>(PlayerList.java:12)
at PlayerList.tail(PlayerList.java:36)
at PlayerList.sumAge(PlayerList.java:115)
at PlayerList.sumAge(PlayerList.java:115)
at PlayerList.sumAge(PlayerList.java:115)
at PlayerList.sumAge(PlayerList.java:115)



Could the problem be that when i call the constructor with PlayerList( head().getNext()) and it is null that it causes problems?
I'm bit confused i have to try again later when i m back at home..
adwodon
Profile Blog Joined September 2010
United Kingdom592 Posts
December 19 2013 07:58 GMT
#8184
Hi guys, quick semi-programming question.

I've been set a task to document a section of our codebase, a server which displays IP Camera feeds and its interactions with a specific DLL which drives the station which provides the feeds.

I never did CS at university so I'm a little unsure about how to approach this, I submitted a first draft and got some useful feedback but for the final document I'd like to try and provide a more visual explanation, are there any tools for doing this? I know that Visual Studio Ultimate has tools for this but I'm only on professional, bearing in mind this is all written in C for Windows are there are good visualisation tools or should I just crack open paint / something to just make some diagrams?

Any advice or examples would be hugely appreciated thanks!
Sikian
Profile Blog Joined September 2011
Spain177 Posts
December 19 2013 08:12 GMT
#8185
@adwidon, I'm not sure if I really picked up on what you are looking for, but this might help: http://diagramo.com/ (or maybe just open-office draw!)

Hope it helps
Helping Starbow :: a.k.a. SoaH
Cyx.
Profile Joined November 2010
Canada806 Posts
December 19 2013 09:03 GMT
#8186
On December 19 2013 16:48 Vilanoil wrote:
Okay i just took a look at the stack trace ( i think ?^^ ) it's like this :

+ Show Spoiler +


Exception in thread "main" java.lang.StackOverflowError
at PlayerList.<init>(PlayerList.java:12)
at PlayerList.tail(PlayerList.java:36)
at PlayerList.sumAge(PlayerList.java:115)
at PlayerList.sumAge(PlayerList.java:115)
at PlayerList.sumAge(PlayerList.java:115)
at PlayerList.sumAge(PlayerList.java:115)



Could the problem be that when i call the constructor with PlayerList( head().getNext()) and it is null that it causes problems?
I'm bit confused i have to try again later when i m back at home..


Well, since this is pretty obviously (I think?) a homework assignment I'll stay in the spirit of not giving you the answer straight up, but here's a hint... think about which of your two sumAge functions gets called when you call sumAge(tail()). Especially important, make sure you're thinking about the implicit this - both in the definition and in the call ^^

also, I'm not a good Java programmer by any means so this might be more obvious if you've used the language a bit but why in all glorious hell have you defined two versions of all your methods?
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
Last Edited: 2013-12-19 15:29:52
December 19 2013 15:24 GMT
#8187
I know it's a slight detail, but I'd like to read some opinions. Let's say you need to count lines but you need to do something specific only for the 1st line, is it better to:


boolean firstLine = true;

while (some condition) {
if (firstLine) {
// do something
firstLine = false;
}
else {
// deal with next lines
}
}


or is it better to:


while (some condition) {
if (numberOfLines == 1) {
// do something
}
else {
// deal with next lines
}
}


As I said, I know it's a minor detail but I'd rather do it properly. I know people say "don't use magic numbers", hence my uncertainty here.
njt7
Profile Joined August 2012
Sweden769 Posts
Last Edited: 2013-12-19 15:46:39
December 19 2013 15:46 GMT
#8188
When talking about minor details I cant answer your question but I can add that I would rather see you name "numberOfLines" to something more describing such as "lineNumber". I know you might not have english as your first language but numberOfLines would to me be seen as the totalNumberOfLines. Maybe that is what you want I dunno it is hard to answer questions in a vacuum.

To your question again, if you are using your variable "numberOfLines" for something else as well I think the second option is best as you do not need to add another variable to keep track of.
"All the casters who flamed me ever for anything."
Yoshi-
Profile Joined October 2008
Germany10227 Posts
December 19 2013 15:52 GMT
#8189
Why even do that in the while loop?
Just do it before and then start the while loop at the second line
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
December 19 2013 16:02 GMT
#8190
On December 20 2013 00:46 njt7 wrote:
When talking about minor details I cant answer your question but I can add that I would rather see you name "numberOfLines" to something more describing such as "lineNumber". I know you might not have english as your first language but numberOfLines would to me be seen as the totalNumberOfLines. Maybe that is what you want I dunno it is hard to answer questions in a vacuum.

To your question again, if you are using your variable "numberOfLines" for something else as well I think the second option is best as you do not need to add another variable to keep track of.


Thanks, you have a point about naming.

On December 20 2013 00:52 Yoshi- wrote:
Why even do that in the while loop?
Just do it before and then start the while loop at the second line


Actually, yes. It would make more sense if I do it your way. Thanks.
Vilanoil
Profile Blog Joined July 2010
Germany47 Posts
December 19 2013 22:49 GMT
#8191
On December 19 2013 18:03 Cyx. wrote:
Show nested quote +
On December 19 2013 16:48 Vilanoil wrote:
Okay i just took a look at the stack trace ( i think ?^^ ) it's like this :

+ Show Spoiler +


Exception in thread "main" java.lang.StackOverflowError
at PlayerList.<init>(PlayerList.java:12)
at PlayerList.tail(PlayerList.java:36)
at PlayerList.sumAge(PlayerList.java:115)
at PlayerList.sumAge(PlayerList.java:115)
at PlayerList.sumAge(PlayerList.java:115)
at PlayerList.sumAge(PlayerList.java:115)



Could the problem be that when i call the constructor with PlayerList( head().getNext()) and it is null that it causes problems?
I'm bit confused i have to try again later when i m back at home..


Well, since this is pretty obviously (I think?) a homework assignment I'll stay in the spirit of not giving you the answer straight up, but here's a hint... think about which of your two sumAge functions gets called when you call sumAge(tail()). Especially important, make sure you're thinking about the implicit this - both in the definition and in the call ^^

also, I'm not a good Java programmer by any means so this might be more obvious if you've used the language a bit but why in all glorious hell have you defined two versions of all your methods?


Yes your right, i had to finish that exercise for my lab, but i stated that in the my first post
I really have to thank guys for your reply's, i just started it again from scratch and it works now. I realized that i made some mistakes at the call of tail().
I always called it with out an object ! so basically the method tried to create a tail and had nothing to work with.


why in all glorious hell have you defined two versions of all your methods?

For example my project:

int sumAge(PlayerList list){
//stuff
}

int sumAge(){
return sumAge(this);
}
// is called in main with
players.sumAge();

I'm not sure but it seems like that is a recursive call of sumAge() and that (this) is automatically referring to the list players.
Would be awesome if someone could explain this.
lannisport
Profile Joined February 2012
878 Posts
December 19 2013 23:48 GMT
#8192
So I've been learning python (My main book is "How to think like a Computer Scientist"). Eventually though I'd like to create a financial management app on Django. Can anyone recommend me a book or an online course that focuses on the web programming of things? Something that deals with databases, API integrations, Django stuff in particular?
Shikada
Profile Joined May 2012
Serbia976 Posts
December 20 2013 00:10 GMT
#8193
On December 20 2013 08:48 lannisport wrote:
So I've been learning python (My main book is "How to think like a Computer Scientist"). Eventually though I'd like to create a financial management app on Django. Can anyone recommend me a book or an online course that focuses on the web programming of things? Something that deals with databases, API integrations, Django stuff in particular?


Django is quite popular, you should be able to find beginner tutorials easily on the net. After that gets you started this book is very highly regarded, and is up to date too:

http://www.amazon.com/Two-Scoops-Django-Best-Practices/dp/1481879707/ref=sr_1_1?s=books&ie=UTF8&qid=1387497972&sr=1-1&keywords=django

Happy hacking
Maero
Profile Joined December 2007
349 Posts
December 20 2013 00:26 GMT
#8194
On December 20 2013 07:49 Vilanoil wrote:

int sumAge(PlayerList list){
//stuff
}

int sumAge(){
return sumAge(this);
}
// is called in main with
players.sumAge();

I'm not sure but it seems like that is a recursive call of sumAge() and that (this) is automatically referring to the list players.
Would be awesome if someone could explain this.


All this is really doing is giving you a shorthand to sum the ages of the PlayerList this method is being called from. Ex.

PlayerList a;
PlayerList b; // pretend these have stuff in it

a.sumAge(b); // performs the operation on PlayerList b (I assume summing up the ages...)
a.sumAge(); // calls the non-parameterized one, then falls back to the parameterized method

// Basically...

a.sumAge() == a.sumAge(a);


Let me know if that doesn't make sense! It seems like a strange implementation, but that is the literal way that it is working.
Cyx.
Profile Joined November 2010
Canada806 Posts
December 20 2013 01:11 GMT
#8195
On December 20 2013 09:26 Maero wrote:
Show nested quote +
On December 20 2013 07:49 Vilanoil wrote:

int sumAge(PlayerList list){
//stuff
}

int sumAge(){
return sumAge(this);
}
// is called in main with
players.sumAge();

I'm not sure but it seems like that is a recursive call of sumAge() and that (this) is automatically referring to the list players.
Would be awesome if someone could explain this.


All this is really doing is giving you a shorthand to sum the ages of the PlayerList this method is being called from. Ex.

PlayerList a;
PlayerList b; // pretend these have stuff in it

a.sumAge(b); // performs the operation on PlayerList b (I assume summing up the ages...)
a.sumAge(); // calls the non-parameterized one, then falls back to the parameterized method

// Basically...

a.sumAge() == a.sumAge(a);


Let me know if that doesn't make sense! It seems like a strange implementation, but that is the literal way that it is working.


But I guess the question is... good lord, why, please why something so awfully confusing? players.sumAge() will call sumAge(this)... calling players.sumAge(this) within that function just means you end up calling sumAge(this, this) basically. It's literally just adding an extra definition and extra confusion to something that should be one method. I see absolutely zero sense in doing it this way instead of just writing sumAge() to do the actual summing of ages, and then not bother with the definition that has an extra parameter (which never even gets used).
mcc
Profile Joined October 2010
Czech Republic4646 Posts
December 20 2013 01:14 GMT
#8196
On December 20 2013 00:24 darkness wrote:
I know it's a slight detail, but I'd like to read some opinions. Let's say you need to count lines but you need to do something specific only for the 1st line, is it better to:


boolean firstLine = true;

while (some condition) {
if (firstLine) {
// do something
firstLine = false;
}
else {
// deal with next lines
}
}


or is it better to:


while (some condition) {
if (numberOfLines == 1) {
// do something
}
else {
// deal with next lines
}
}


As I said, I know it's a minor detail but I'd rather do it properly. I know people say "don't use magic numbers", hence my uncertainty here.

As some pointed out, it is better to move the code outside of the loop if possible. But sometimes it is more trouble than it is worth and then your question is still valid. In those cases I would say if you already have some iteration count, just use it, otherwise use the bool as it is much clearer what the purpose of the condition is.

Possible scenario where moving code outside of the loop is maybe not the best idea :


boolean firstLine = true;

while (some condition) {
if (firstLine) {
// do something
firstLine = false;
}

// do something else for all lines including first
}


This often pops up when manipulating string and similar stuff. In this case moving the code for first line out of the loop necessitates duplication of code and in general I would say you should not do it.
lannisport
Profile Joined February 2012
878 Posts
December 20 2013 01:59 GMT
#8197
On December 20 2013 09:10 Shikada wrote:
Show nested quote +
On December 20 2013 08:48 lannisport wrote:
So I've been learning python (My main book is "How to think like a Computer Scientist"). Eventually though I'd like to create a financial management app on Django. Can anyone recommend me a book or an online course that focuses on the web programming of things? Something that deals with databases, API integrations, Django stuff in particular?


Django is quite popular, you should be able to find beginner tutorials easily on the net. After that gets you started this book is very highly regarded, and is up to date too:

http://www.amazon.com/Two-Scoops-Django-Best-Practices/dp/1481879707/ref=sr_1_1?s=books&ie=UTF8&qid=1387497972&sr=1-1&keywords=django

Happy hacking


Wow that's exactly what I was looking for thanks! There's even a chapter specifically on REST APIs.
Maero
Profile Joined December 2007
349 Posts
Last Edited: 2013-12-20 02:04:40
December 20 2013 02:02 GMT
#8198
On December 20 2013 10:11 Cyx. wrote:
Show nested quote +
On December 20 2013 09:26 Maero wrote:
On December 20 2013 07:49 Vilanoil wrote:

int sumAge(PlayerList list){
//stuff
}

int sumAge(){
return sumAge(this);
}
// is called in main with
players.sumAge();

I'm not sure but it seems like that is a recursive call of sumAge() and that (this) is automatically referring to the list players.
Would be awesome if someone could explain this.


All this is really doing is giving you a shorthand to sum the ages of the PlayerList this method is being called from. Ex.

PlayerList a;
PlayerList b; // pretend these have stuff in it

a.sumAge(b); // performs the operation on PlayerList b (I assume summing up the ages...)
a.sumAge(); // calls the non-parameterized one, then falls back to the parameterized method

// Basically...

a.sumAge() == a.sumAge(a);


Let me know if that doesn't make sense! It seems like a strange implementation, but that is the literal way that it is working.


But I guess the question is... good lord, why, please why something so awfully confusing? players.sumAge() will call sumAge(this)... calling players.sumAge(this) within that function just means you end up calling sumAge(this, this) basically. It's literally just adding an extra definition and extra confusion to something that should be one method. I see absolutely zero sense in doing it this way instead of just writing sumAge() to do the actual summing of ages, and then not bother with the definition that has an extra parameter (which never even gets used).


We completely agree! But he asked for an explanation of how it was working, so that's what I provided
The note at the end about it being a strange implementation was alluding to your point - there's no real good reason to put it together in that way and either one or the other would work fine (depending on how the method interacts with other PlayerList age sums).
Cyx.
Profile Joined November 2010
Canada806 Posts
December 20 2013 02:20 GMT
#8199
On December 20 2013 11:02 Maero wrote:
Show nested quote +
On December 20 2013 10:11 Cyx. wrote:
On December 20 2013 09:26 Maero wrote:
On December 20 2013 07:49 Vilanoil wrote:

int sumAge(PlayerList list){
//stuff
}

int sumAge(){
return sumAge(this);
}
// is called in main with
players.sumAge();

I'm not sure but it seems like that is a recursive call of sumAge() and that (this) is automatically referring to the list players.
Would be awesome if someone could explain this.


All this is really doing is giving you a shorthand to sum the ages of the PlayerList this method is being called from. Ex.

PlayerList a;
PlayerList b; // pretend these have stuff in it

a.sumAge(b); // performs the operation on PlayerList b (I assume summing up the ages...)
a.sumAge(); // calls the non-parameterized one, then falls back to the parameterized method

// Basically...

a.sumAge() == a.sumAge(a);


Let me know if that doesn't make sense! It seems like a strange implementation, but that is the literal way that it is working.


But I guess the question is... good lord, why, please why something so awfully confusing? players.sumAge() will call sumAge(this)... calling players.sumAge(this) within that function just means you end up calling sumAge(this, this) basically. It's literally just adding an extra definition and extra confusion to something that should be one method. I see absolutely zero sense in doing it this way instead of just writing sumAge() to do the actual summing of ages, and then not bother with the definition that has an extra parameter (which never even gets used).


We completely agree! But he asked for an explanation of how it was working, so that's what I provided
The note at the end about it being a strange implementation was alluding to your point - there's no real good reason to put it together in that way and either one or the other would work fine (depending on how the method interacts with other PlayerList age sums).


okie, cool =) I guess I just wasn't sure if it was like... a Java thing or something (I mostly use C++) or if it was as totally weird as it seemed. @Vilanoil: were you given the code like that (for your class) or did you write the whole PlayerList class yourself?
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
December 20 2013 03:14 GMT
#8200
Finished my term at Xtreme/Pivotal Labs! Great programming company in Toronto, visit them if you want a really good internship or a good full-time opportunity.
There is no one like you in the universe.
Prev 1 408 409 410 411 412 1032 Next
Please log in or register to reply.
Live Events Refresh
IntoTheTV X SOOP
20:00
Premier - Group D
SHIN vs GuMiho
Clem vs Classic
IntoTheiNu 1536
WardiTV831
Rex115
CranKy Ducklings79
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Lowko337
Rex 115
StarCraft: Brood War
Bisu 1375
Horang2 1197
actioN 999
Shuttle 713
Jaedong 647
Larva 567
FanTaSy 412
Mini 291
Stork 243
EffOrt 238
[ Show more ]
Snow 196
Last 159
Light 134
Mind 120
Hyun 72
Sea.KH 47
Barracks 46
Sharp 42
Mong 37
hero 31
910 29
ToSsGirL 28
sSak 27
Sacsri 21
Sexy 21
JYJ 19
Shine 17
Terrorterran 15
Free 13
soO 13
zelot 13
Noble 11
Icarus 5
Dota 2
Gorgc14473
Counter-Strike
olofmeister1252
Super Smash Bros
amsayoshi29
Other Games
singsing1679
B2W.Neo887
crisheroes320
DeMusliM280
dupreeh219
ArmadaUGS104
Organizations
Counter-Strike
PGL50335
StarCraft: Brood War
lovetv 7
[ Show 12 non-featured ]
StarCraft 2
• CranKy Ducklings SOOP8
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Stunt628
• TFBlade370
Other Games
• WagamamaTV200
Upcoming Events
OSC
1h 3m
OSC
9h 3m
GSL
23h 3m
Epic.LAN
1d
Replay Cast
1d 10h
Sparkling Tuna Cup
1d 21h
WardiTV Invitational
1d 23h
Epic.LAN
2 days
AI Arena Tournament
2 days
Yamato Cup
3 days
[ Show More ]
Map Test Tournament
3 days
WardiTV Weekly
3 days
Replay Cast
4 days
Rogue vs Classic
Patches Events
5 days
PiGosaur Cup
5 days
Kung Fu Cup
5 days
The PondCast
6 days
KCM Race Survival
6 days
Liquipedia Results

Completed

Proleague 2026-10-28
Blizzard Classic Cup 2026
HCC Season 3

Ongoing

Acropolis #5
KCM Race Survival 2026 Season 4
International ShieldBattery League
BSL Season 23
PGL Masters Bucharest 2026
Stake Ranked Episode 5
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026

Upcoming

IPSL Winter 2026-27
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
eXTREMESLAND 2026
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 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...

Disclosure: This page contains affiliate marketing links that support TLnet.

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.