• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 07:35
CEST 13:35
KST 20:35
  • 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
[ASL20] Ro24 Preview Pt2: Take-Off7[ASL20] Ro24 Preview Pt1: Runway132v2 & SC: Evo Complete: Weekend Double Feature4Team Liquid Map Contest #21 - Presented by Monster Energy9uThermal's 2v2 Tour: $15,000 Main Event18
Community News
Weekly Cups (Aug 18-24): herO dethrones MaxPax6Maestros of The Game—$20k event w/ live finals in Paris30Weekly Cups (Aug 11-17): MaxPax triples again!13Weekly Cups (Aug 4-10): MaxPax wins a triple6SC2's Safe House 2 - October 18 & 195
StarCraft 2
General
Geoff 'iNcontroL' Robinson has passed away A Eulogy for the Six Pool Weekly Cups (Aug 18-24): herO dethrones MaxPax 2v2 & SC: Evo Complete: Weekend Double Feature The GOAT ranking of GOAT rankings
Tourneys
WardiTV Mondays Maestros of The Game—$20k event w/ live finals in Paris RSL: Revival, a new crowdfunded tournament series Sparkling Tuna Cup - Weekly Open Tournament Monday Nights Weeklies
Strategy
Custom Maps
External Content
Mutation # 488 What Goes Around Mutation # 487 Think Fast Mutation # 486 Watch the Skies Mutation # 485 Death from Below
Brood War
General
No Rain in ASL20? Joined effort [ASL20] Ro24 Preview Pt2: Take-Off BW General Discussion Flash On His 2010 "God" Form, Mind Games, vs JD
Tourneys
[ASL20] Ro24 Group F [IPSL] CSLAN Review and CSLPRO Reimagined! [Megathread] Daily Proleagues [ASL20] Ro24 Group E
Strategy
Simple Questions, Simple Answers Fighting Spirit mining rates [G] Mineral Boosting Muta micro map competition
Other Games
General Games
General RTS Discussion Thread Stormgate/Frost Giant Megathread Nintendo Switch Thread Dawn of War IV Path of Exile
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread Things Aren’t Peaceful in Palestine The year 2050 European Politico-economics QA Mega-thread
Fan Clubs
INnoVation Fan Club SKT1 Classic Fan Club!
Media & Entertainment
Anime Discussion Thread Movie Discussion! [Manga] One Piece [\m/] Heavy Metal Thread
Sports
Formula 1 Discussion 2024 - 2026 Football Thread TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
High temperatures on bridge(s) Gtx660 graphics card replacement Installation of Windows 10 suck at "just a moment"
TL Community
The Automated Ban List TeamLiquid Team Shirt On Sale
Blogs
Evil Gacha Games and the…
ffswowsucks
Breaking the Meta: Non-Stand…
TrAiDoS
INDEPENDIENTE LA CTM
XenOsky
[Girl blog} My fema…
artosisisthebest
Sharpening the Filtration…
frozenclaw
ASL S20 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1293 users

C Programming Practice - Page 2

Blogs > CecilSunkure
Post a Reply
Prev 1 2 3 4 Next All
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
November 03 2012 12:22 GMT
#21
On November 03 2012 11:07 phar wrote:
Show nested quote +
On November 03 2012 11:00 uberMatt wrote:
!dontcastmalloc

'const' in c and c++ are fundamentally different, you might want to look up the difference before writing a c tutorial

Yes

http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc

But for the purposes of a teaching a first year some basic pointer stuff, it's probably ok to include ugly hack code in the parts they're not even going to be modifying.

Actually it's pretty problematic if you show beginners bad code. They might think it's the right way to do it.
If you have a good reason to disagree with the above, please tell me. Thank you.
Danglars
Profile Blog Joined August 2010
United States12133 Posts
November 03 2012 13:04 GMT
#22
On November 03 2012 21:22 spinesheath wrote:
Show nested quote +
On November 03 2012 11:07 phar wrote:
On November 03 2012 11:00 uberMatt wrote:
!dontcastmalloc

'const' in c and c++ are fundamentally different, you might want to look up the difference before writing a c tutorial

Yes

http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc

But for the purposes of a teaching a first year some basic pointer stuff, it's probably ok to include ugly hack code in the parts they're not even going to be modifying.

Actually it's pretty problematic if you show beginners bad code. They might think it's the right way to do it.

Always 10 times as much time spent on the pedagogy of pointers and type-casting (How its best taught, how to best assist students in not developing bad habits and unexpected behavior headaches) than on the learning. I enjoyed the challenges, for one. Frankly, an investigation into the superfluous steps and the extent to which they assist readability is helpful for any student regardless. Anyone even surprised this is how Cecil was taught it?
Great armies come from happy zealots, and happy zealots come from California!
TL+ Member
]343[
Profile Blog Joined May 2008
United States10328 Posts
November 03 2012 16:46 GMT
#23
On November 03 2012 20:28 ragnorr wrote:
Show nested quote +
On November 03 2012 18:17 ]343[ wrote:
lol, initially for #3 I did
+ Show Spoiler +


void swapInt(int *a, int *b) {
int temp = *a;
a = b;
b = &temp;
}


but of course that didn't work for #4 (since it doesn't actually swap the contents of the pointers... though I don't think #3 made that clear.)

Also wtf in-place n log n sorting algorithms are way harder than expected [except heapsort I guess...]

You aint exchanging the value the pointer points to. It should look like this
+ Show Spoiler +

void swapInt(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}


yep, I realized that
Writer
Sawamura
Profile Blog Joined August 2010
Malaysia7602 Posts
November 03 2012 17:09 GMT
#24
now if could write some C++ program practice ^_^ hehehe thanks for the practice anyway 5/5
BW/KT Forever R.I.P KT.Violet dearly missed ..
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
November 03 2012 19:15 GMT
#25
On November 04 2012 02:09 Sawamura wrote:
now if could write some C++ program practice ^_^ hehehe thanks for the practice anyway 5/5

I could do that. I'm thinking of some object oriented C first though. You know, virtualizing some C++ features in C.
teamamerica
Profile Blog Joined July 2010
United States958 Posts
November 03 2012 21:48 GMT
#26
On November 03 2012 20:28 ragnorr wrote:
Show nested quote +
On November 03 2012 18:17 ]343[ wrote:
lol, initially for #3 I did
+ Show Spoiler +


void swapInt(int *a, int *b) {
int temp = *a;
a = b;
b = &temp;
}


but of course that didn't work for #4 (since it doesn't actually swap the contents of the pointers... though I don't think #3 made that clear.)

Also wtf in-place n log n sorting algorithms are way harder than expected [except heapsort I guess...]

You aint exchanging the value the pointer points to. It should look like this
+ Show Spoiler +

void swapInt(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}


Obv you guys should swap like:

void swapInt (int *a, int *b) {
*a += *b;
*b = *a - *b;
*a = *a - *b;
}
SAVE THAT STACK SPACE.



RIP GOMTV. RIP PROLEAGUE.
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
November 03 2012 21:54 GMT
#27
On November 04 2012 06:48 teamamerica wrote:
Show nested quote +
On November 03 2012 20:28 ragnorr wrote:
On November 03 2012 18:17 ]343[ wrote:
lol, initially for #3 I did
+ Show Spoiler +


void swapInt(int *a, int *b) {
int temp = *a;
a = b;
b = &temp;
}


but of course that didn't work for #4 (since it doesn't actually swap the contents of the pointers... though I don't think #3 made that clear.)

Also wtf in-place n log n sorting algorithms are way harder than expected [except heapsort I guess...]

You aint exchanging the value the pointer points to. It should look like this
+ Show Spoiler +

void swapInt(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}


Obv you guys should swap like:

void swapInt (int *a, int *b) {
*a += *b;
*b = *a - *b;
*a = *a - *b;
}
SAVE THAT STACK SPACE.




Lol. That works, but you might as well use some bit ops instead. That however doesn't work with data types that don't support the minus operator like that.
teamamerica
Profile Blog Joined July 2010
United States958 Posts
November 03 2012 22:10 GMT
#28
Ya this or even XOR swap is useless but still a fun question to ask people lol. Also this will die with larger numbers but anyway.

You should use swap with a temp. variable in almost any situation I can think of and not try to get in the way of compilers today ^_^
RIP GOMTV. RIP PROLEAGUE.
Lysenko
Profile Blog Joined April 2010
Iceland2128 Posts
Last Edited: 2012-11-03 22:26:34
November 03 2012 22:25 GMT
#29
On November 04 2012 04:15 CecilSunkure wrote:
Show nested quote +
On November 04 2012 02:09 Sawamura wrote:
now if could write some C++ program practice ^_^ hehehe thanks for the practice anyway 5/5

I could do that. I'm thinking of some object oriented C first though. You know, virtualizing some C++ features in C.


I was on my way to a much longer post, but I don't want to get in the way of what you're doing here with a lot of negativity, so I'll just ask. Who learns C today, absent a specific need to write embedded code, modify a UNIX or Linux kernel, or write a driver?

I'm speaking as someone who paid several years of bills as a C programmer, working on both embedded applications and desktop applications. This was, however, 17 years ago, before (as far as I have personally seen, which is why I'm asking) the entire world moved on to C++.



** I mean, I can see doing it out of nostalgia, or because I got a cheap deal on some single-chip-computer development board, but that's about it. Is this a topic of interest for typical, highly-motivated CS students these days? I'm not saying it's bad, I just don't get it.
http://en.wikipedia.org/wiki/Lysenkoism
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
Last Edited: 2012-11-03 22:33:18
November 03 2012 22:32 GMT
#30
On November 04 2012 07:25 Lysenko wrote:
Show nested quote +
On November 04 2012 04:15 CecilSunkure wrote:
On November 04 2012 02:09 Sawamura wrote:
now if could write some C++ program practice ^_^ hehehe thanks for the practice anyway 5/5

I could do that. I'm thinking of some object oriented C first though. You know, virtualizing some C++ features in C.


I was on my way to a much longer post, but I don't want to get in the way of what you're doing here with a lot of negativity, so I'll just ask. Who learns C today, absent a specific need to write embedded code, modify a UNIX or Linux kernel, or write a driver?

I'm speaking as someone who paid several years of bills as a C programmer, working on both embedded applications and desktop applications. This was, however, 17 years ago, before (as far as I have personally seen, which is why I'm asking) the entire world moved on to C++.



** I mean, I can see doing it out of nostalgia, or because I got a cheap deal on some single-chip-computer development board, but that's about it. Is this a topic of interest for typical, highly-motivated CS students these days? I'm not saying it's bad, I just don't get it.

Everyone at my university learns C and then C++. I myself took it a bit further and started mimicking C++ features in C before I swapped to C++. It's just another way of learning.

Edit:
So for example if I were to have someone make a struct object and mimic C++ vtables and inheritance, they could learn a whole lot about how C++ works as well as solidify and understanding of memory management at a low level.
Lysenko
Profile Blog Joined April 2010
Iceland2128 Posts
Last Edited: 2012-11-03 22:35:39
November 03 2012 22:32 GMT
#31
On November 04 2012 06:48 teamamerica wrote:
Show nested quote +
On November 03 2012 20:28 ragnorr wrote:
On November 03 2012 18:17 ]343[ wrote:
lol, initially for #3 I did
+ Show Spoiler +


void swapInt(int *a, int *b) {
int temp = *a;
a = b;
b = &temp;
}


but of course that didn't work for #4 (since it doesn't actually swap the contents of the pointers... though I don't think #3 made that clear.)

Also wtf in-place n log n sorting algorithms are way harder than expected [except heapsort I guess...]

You aint exchanging the value the pointer points to. It should look like this
+ Show Spoiler +

void swapInt(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}


Obv you guys should swap like:

void swapInt (int *a, int *b) {
*a += *b;
*b = *a - *b;
*a = *a - *b;
}
SAVE THAT STACK SPACE.






I like this for saving stack space:


void swapInt (int *a, int *b) {
register int c;

c = *b;
*b = *a;
*a = c;
}


(Although, most modern compilers will use a register for c at most optimization levels even if you leave the keyword out, and others ignore the keyword and do what they want.)

Edit: This has the advantage that you can easily replace "int" with "unsigned int" and get good results. The addition/subtraction trick is clever, but whether you can get away with it with unsigned ints is probably implementation-dependent.
http://en.wikipedia.org/wiki/Lysenkoism
Lysenko
Profile Blog Joined April 2010
Iceland2128 Posts
Last Edited: 2012-11-03 22:40:01
November 03 2012 22:33 GMT
#32
On November 04 2012 07:32 CecilSunkure wrote:
Everyone at my university learns C and then C++. I myself took it a bit further and started mimicking C++ features in C before I swapped to C++. It's just another way of learning.


That's cool. This is like full blast-from-the-past mode for me.

Edit: I don't know that I agree with teaching C to people relatively new to software development so early. It's a language that's so detail-oriented and mistake-prone that the fiddly details inhibit people getting to the bigger concepts of what they're trying to do.

However, if you want to select out the people with the most potential for future success as cutting-edge software engineers, it might be a decent scheme to find them. More so than using Java as a first language, which many schools do.
http://en.wikipedia.org/wiki/Lysenkoism
pigmanbear
Profile Blog Joined August 2011
Angola2010 Posts
November 03 2012 22:38 GMT
#33
lol i c u ("C!")
teamamerica
Profile Blog Joined July 2010
United States958 Posts
November 03 2012 22:50 GMT
#34
On November 04 2012 07:32 Lysenko wrote:
Show nested quote +
On November 04 2012 06:48 teamamerica wrote:
On November 03 2012 20:28 ragnorr wrote:
On November 03 2012 18:17 ]343[ wrote:
lol, initially for #3 I did
+ Show Spoiler +


void swapInt(int *a, int *b) {
int temp = *a;
a = b;
b = &temp;
}


but of course that didn't work for #4 (since it doesn't actually swap the contents of the pointers... though I don't think #3 made that clear.)

Also wtf in-place n log n sorting algorithms are way harder than expected [except heapsort I guess...]

You aint exchanging the value the pointer points to. It should look like this
+ Show Spoiler +

void swapInt(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}


Obv you guys should swap like:

void swapInt (int *a, int *b) {
*a += *b;
*b = *a - *b;
*a = *a - *b;
}
SAVE THAT STACK SPACE.






I like this for saving stack space:


void swapInt (int *a, int *b) {
register int c;

c = *b;
*b = *a;
*a = c;
}


(Although, most modern compilers will use a register for c at most optimization levels even if you leave the keyword out, and others ignore the keyword and do what they want.)

Edit: This has the advantage that you can easily replace "int" with "unsigned int" and get good results. The addition/subtraction trick is clever, but whether you can get away with it with unsigned ints is probably implementation-dependent.



Hmm I guess given your background in embedded (and older compilers) you've actually had a need to do this but it seems strange to me because
1) you're not calling 'c' often which is the reason I've read you apply register for
2) register is just a hint and doesn't guarantee anything
3) this might move a variable that's actually being called often out of a register
3) compilers are smarter and will handle this for you anyway
(all my c knowledge comes from bruce eckel thinking in c++, but I know that even in c, register doesn't promise anything).
RIP GOMTV. RIP PROLEAGUE.
Lysenko
Profile Blog Joined April 2010
Iceland2128 Posts
Last Edited: 2012-11-03 23:12:08
November 03 2012 23:05 GMT
#35
On November 04 2012 07:50 teamamerica wrote:
Hmm I guess given your background in embedded (and older compilers) you've actually had a need to do this but it seems strange to me because
1) you're not calling 'c' often which is the reason I've read you apply register for
2) register is just a hint and doesn't guarantee anything
3) this might move a variable that's actually being called often out of a register
3) compilers are smarter and will handle this for you anyway
(all my c knowledge comes from bruce eckel thinking in c++, but I know that even in c, register doesn't promise anything).


Generally, I agree with each of your points. I consider what I posted as academic an exercise as using adds-and-subtracts, because neither one makes for maintainable code, and while stack space can be at a premium sometimes, one int is rarely a make or break issue (even when you have a hard limit of 32k or less of stack space, as you do in some embedded applications.)

In embedded applications, though, a few things work differently than you might expect. First, if you are working with extremely limited stack space or RAM, as is often the case, you'll probably rely on disabling optimizations for critical code so that you get very predictable results at the machine level, and use compiler extensions that can directly force a variable into a particular register. GNU C has these, for example. Compiler optimization is fantastic, but if you're trying to put exactly the right bit in the right place you can sometimes find your intentions completely optimized out of the code if you're not careful.

One strategy I've seen used in embedded applications is to reserve a couple of registers for use as short-term temporary variable space, then manually assign a variable like c (in this example) to one of them for the duration of the function. Of course, doing something like that means that you have to make rules for yourself like "don't assume that value will be valid across a function call."

Also, for this particular function, in an embedded application, I'd look to see whether the processor itself has an instruction for swapping two values in main memory, or maybe a swap to accumulator function (an accumulator being a register on some processors that's specifically designated as such short-term temporary storage, possibly with special instruction support compared to other registers.) If so, implementing that function in assembly code might make sense.

For just about all the other cases out there, particularly if you're letting the compiler optimize freely, I'd just go ahead and use the code I posted, probably with the "register" keyword omitted. I might also consider defining the function with the "inline" keyword, which should allow the code to be better optimized where it's convenient and less optimized where it's not, particularly if a global optimizer is in use.

Edit: Mostly, optimizations don't really matter that much unless you're focusing on a small bit of code that takes up most of your application's processing time. Usually, in embedded situations, you'd want to pick and choose optimizations, because some optimize for space, and some for speed, and often getting your generated machine code smaller is more important than making it faster, to fit on an EPROM for instance. That would be an example where using "inline" might be a huge mistake.
http://en.wikipedia.org/wiki/Lysenkoism
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
Last Edited: 2012-11-03 23:16:07
November 03 2012 23:14 GMT
#36
On November 04 2012 07:33 Lysenko wrote:
Show nested quote +
On November 04 2012 07:32 CecilSunkure wrote:
Everyone at my university learns C and then C++. I myself took it a bit further and started mimicking C++ features in C before I swapped to C++. It's just another way of learning.


That's cool. This is like full blast-from-the-past mode for me.

Edit: I don't know that I agree with teaching C to people relatively new to software development so early. It's a language that's so detail-oriented and mistake-prone that the fiddly details inhibit people getting to the bigger concepts of what they're trying to do.

However, if you want to select out the people with the most potential for future success as cutting-edge software engineers, it might be a decent scheme to find them. More so than using Java as a first language, which many schools do.

I'm always hearing about how poor graduates are that learn at "java schools" from a lot of respectable people, including current Microsoft employees and other industry veterans. Everyone here that learns by hitting the ground running in C seems to do very well once they've graduated. Seeing my school's alumni success makes it only natural for myself to advocate the same learning style.

As for the detail oriented ways of C, I feel the little fiddly details are things need to be mastered before anything else. When we started learning there weren't "bigger concepts" at all. The fundamentals were the concepts, so nothing was missed.
Lysenko
Profile Blog Joined April 2010
Iceland2128 Posts
Last Edited: 2012-11-03 23:59:48
November 03 2012 23:42 GMT
#37
On November 04 2012 08:14 CecilSunkure wrote:
As for the detail oriented ways of C, I feel the little fiddly details are things need to be mastered before anything else. When we started learning there weren't "bigger concepts" at all. The fundamentals were the concepts, so nothing was missed.


I've heard the same things too about the use of Java at some schools.

I think my point may not have been clear about the issues with C as a first language. The "fiddly details" in C are mainly either syntactic elements that make the code difficult to read and bugs difficult to locate, or completely manual memory management. Neither of these aid, for example, teaching skills like structured programming, algorithms, or data structures.

For those two specific reasons, using C shields the student from too little, using Java shields them from too much. The possible benefit to using C is that the more talented students will enjoy the extra details even if they're extraneous to what you're trying to teach.

Anyway, the success post-graduation of a CS program is far more determined by the students the school admits than by any curriculum choice.

Interestingly, MIT, Caltech, and Harvey Mudd College (where Day[9], qxc, and I went) have all switched to using Python for their introductory computer science classes.

Apologies for getting off-topic.

Edit: I suspect top schools are moving to Python because it in one stroke eliminates the problem of good students not turning in homework over a misplaced semicolon they can't locate.
http://en.wikipedia.org/wiki/Lysenkoism
Arnstein
Profile Blog Joined May 2010
Norway3381 Posts
November 04 2012 00:01 GMT
#38
I will learn C next semester, so I will check this out then! Thanks a lot!
rsol in response to the dragoon voice being heard in SCII: dragoon ai reaches new lows: wanders into wrong game
zhurai
Profile Blog Joined September 2010
United States5660 Posts
November 04 2012 07:54 GMT
#39
after having to do tracing in my c programming class probably a year ago...

I really
really
...

REALLY HATE pointers lol

(now I just program random scripts in python...)
Twitter: @zhurai | Site: http://zhurai.com
]343[
Profile Blog Joined May 2008
United States10328 Posts
November 04 2012 08:29 GMT
#40
On November 04 2012 07:10 teamamerica wrote:
Ya this or even XOR swap is useless but still a fun question to ask people lol. Also this will die with larger numbers but anyway.

You should use swap with a temp. variable in almost any situation I can think of and not try to get in the way of compilers today ^_^


Hmm, shouldn't XOR swap work in basically all cases? o.o
Writer
Prev 1 2 3 4 Next All
Please log in or register to reply.
Live Events Refresh
Afreeca Starleague
10:00
Round of 24 / Group F
hero vs Alone
Royal vs Barracks
Afreeca ASL 8371
sctven
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Harstem 272
StarCraft: Brood War
Britney 31050
Calm 12217
Sea 3247
Jaedong 2943
Bisu 2720
Rain 2130
Flash 1908
Horang2 1563
BeSt 734
EffOrt 637
[ Show more ]
actioN 501
ZerO 397
Pusan 353
Mini 296
Larva 270
ggaemo 194
Hyun 193
Mong 172
Soulkey 142
Last 126
Hyuk 114
Backho 84
PianO 72
ToSsGirL 59
Liquid`Ret 41
TY 39
soO 36
Killer 36
JYJ35
Sharp 35
Icarus 22
ajuk12(nOOB) 19
Sacsri 18
Terrorterran 14
NaDa 13
Sexy 13
JulyZerg 12
SilentControl 10
scan(afreeca) 10
HiyA 8
ivOry 6
Beast 3
Light 0
Dota 2
Dendi607
qojqva545
XaKoH 335
BananaSlamJamma195
XcaliburYe149
KheZu57
Counter-Strike
olofmeister1852
fl0m1774
x6flipin495
edward32
Other Games
singsing2061
B2W.Neo1155
crisheroes325
Pyrionflax325
Fuzer 267
SortOf157
ArmadaUGS34
Dewaltoss23
MindelVK9
Organizations
StarCraft: Brood War
UltimateBattle 215
lovetv 8
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• StrangeGG 64
• LUISG 29
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV263
League of Legends
• Jankos795
Upcoming Events
Replay Cast
12h 25m
The PondCast
22h 25m
WardiTV Summer Champion…
23h 25m
Clem vs Classic
herO vs MaxPax
Replay Cast
1d 12h
LiuLi Cup
1d 23h
MaxPax vs TriGGeR
ByuN vs herO
Cure vs Rogue
Classic vs HeRoMaRinE
Cosmonarchy
2 days
OyAji vs Sziky
Sziky vs WolFix
WolFix vs OyAji
BSL Team Wars
2 days
Team Hawk vs Team Dewalt
BSL Team Wars
2 days
Team Hawk vs Team Bonyth
SC Evo League
3 days
TaeJa vs Cure
Rogue vs threepoint
ByuN vs Creator
MaNa vs Classic
Maestros of the Game
3 days
ShoWTimE vs Cham
GuMiho vs Ryung
Zoun vs Spirit
Rogue vs MaNa
[ Show More ]
[BSL 2025] Weekly
3 days
SC Evo League
4 days
Maestros of the Game
4 days
SHIN vs Creator
Astrea vs Lambo
Bunny vs SKillous
HeRoMaRinE vs TriGGeR
BSL Team Wars
4 days
Team Bonyth vs Team Sziky
BSL Team Wars
4 days
Team Dewalt vs Team Sziky
Monday Night Weeklies
5 days
Replay Cast
5 days
Sparkling Tuna Cup
5 days
Liquipedia Results

Completed

CSLAN 3
uThermal 2v2 Main Event
HCC Europe

Ongoing

Copa Latinoamericana 4
BSL 20 Team Wars
KCM Race Survival 2025 Season 3
BSL 21 Qualifiers
ASL Season 20
CSL Season 18: Qualifier 1
Acropolis #4 - TS1
CSL Season 18: Qualifier 2
SEL Season 2 Championship
WardiTV Summer 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1
BLAST.tv Austin Major 2025

Upcoming

CSL 2025 AUTUMN (S18)
LASL Season 20
BSL Season 21
BSL 21 Team A
Chzzk MurlocKing SC1 vs SC2 Cup #2
RSL Revival: Season 2
Maestros of the Game
EC S1
Sisters' Call Cup
IEM Chengdu 2025
PGL Masters Bucharest 2025
MESA Nomadic Masters Fall
Thunderpick World Champ.
CS Asia Championships 2025
Roobet Cup 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
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 © 2025 TLnet. All Rights Reserved.