• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 14:08
CEST 20:08
KST 03:08
  • 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
Weekly Cups (July 27-Aug 2): SHIN's big week0SC4ALL II: Brood War - $2500 - Dec 5-68SC4ALL II announced - $10,000 prize pool, Dec 5-64PIG STY FESTIVAL 8.0! (13 - 23 August)14Neeb returns to progaming; rejoins ONSYDE18
StarCraft 2
General
StarCraft 2 at SC4ALL II Invite #3/8 - Clem Balance hotfix patch 5.0.16b (July 16) Clem: "I don't have that much hope in Blizzard" Geoff 'iNcontroL' Robinson has passed away Neeb returns to progaming; rejoins ONSYDE
Tourneys
PIG STY FESTIVAL 8.0! (13 - 23 August) Tasteless Time Warp: SC Evo Showmatch (May 25) SC4ALL II announced - $10,000 prize pool, Dec 5-6 Sparkling Tuna Cup - Weekly Open Tournament RSL Revival: Season 6 - Qualifiers and Main Event
Strategy
[G] Having the right mentality to improve
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
The PondCast: SC2 News & Results Mutation # 537 Hostile Territory Mutation # 536 Railroad Switch Mutation # 535 Assembly of Vengeance
Brood War
General
Making an Online Broodwar Manager Game ASL22 General Discussion [Personal Project Share] Terran Defense v0.60 Data needed BGH Auto Balance -> http://bghmmr.eu/
Tourneys
SC4ALL II: Brood War - $2500 - Dec 5-6 KCM Race Survival 2026 Season 3 [Megathread] Daily Proleagues 2v2v2v2 Tournament
Strategy
Any training maps people recommend? Fighting Spirit mining rates Simple Questions, Simple Answers Odyssey Mineral Stack Saturation
Other Games
General Games
Stormgate/Frost Giant Megathread General RTS Discussion Thread Nintendo Switch Thread ZeroSpace Early Access is Now Live! Beyond All Reason
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish 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
The Games Industry And ATVI European Politico-economics QA Mega-thread US Politics Mega-thread Russo-Ukrainian War Thread Artificial Intelligence Thread
Fan Clubs
The Clem Fan Club INnoVation Fan Club The Scarlett Fan Club
Media & Entertainment
Anime Discussion Thread Movie Discussion! Series you have seen recently... [Req][Books] Good Fantasy/SciFi books
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion MLB/Baseball 2023 McBoner: A hockey love story
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
The Automated Ban List Northern Ireland Global Starcraft
Blogs
Please support my new stand…
Peanutsc
What is a Gamer?
TrAiDoS
Hello guys!
LIN1s
ASL S22 English Commentary…
namkraft
Poker (part 2)
Nebuchad
Customize Sidebar...

Website Feedback

Closed Threads



Active: 3180 users

The Big Programming Thread - Page 786

Forum Index > General Forum
Post a Reply
Prev 1 784 785 786 787 788 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.
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
October 24 2016 22:59 GMT
#15701
We had a few non-graded java recursion exercises on a handout today

one of them was to: "given a string, compute recursively a new string where identical chars that are adjacent in the original string are separated from each other by a "*"

for example, aabba would be ---> a*ab*ba

Wanted to know how any of you would do that. Here is my code if there are any critiques


private static String temp;
private static String newString = "";

public static String pairStar(String str) {

if(str.length() == 1) {
newString = newString + str;
return newString;
}

if(str.charAt(0) == str.charAt(1)) {
temp = str.charAt(0) + "*";
} else {
temp = Character.toString(str.charAt(0));
}

newString = newString + temp;

if(str.length() > 1) {
pairStar(str.substring(1));
}

return newString;

}
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2016-10-24 23:12:48
October 24 2016 23:08 GMT
#15702
Just a note that I'm not sure using static variables totally counts as recursion. The approach looks good though I have styling preferences.

Also would crash on empty string.
Don't need the temp variable, just append directly.
Would recommend StringBuilder.
There is no one like you in the universe.
AKnopf
Profile Blog Joined March 2011
Germany259 Posts
Last Edited: 2016-10-24 23:18:53
October 24 2016 23:18 GMT
#15703
While this is technically recursive, you still use those temp and newString variables outside of your recursion. Usually the solution that is aimed at with these kinds of excercises want you to solve the whole problem in the recursion itself; in a kind of functionally way. This means that your recursive function should have no side effects. I think the desired solution should only use input parameters, local variables and the return parameter.

Here is some pseudo code that might help you:



star(string):
if string.length == 1
return string
else
return star(string.first, string.rest)

star(char, string):
if char == string.frist
return char + "*" + star(string)
else
return char + star(string)


Notice that we have two overloads of the function "char":
- One with one parameter named string
- One with two parameters named char and string
Do not confuse the names with java types. I would strongly recommend you use only the type String in your solution. :-)

I guess this solution leaves something for discussion: Some people might find the indirect recursion (two functions call each other recursively) too difficult to understand and might want to write it all in one function.
The world - its a funny place
Acrofales
Profile Joined August 2010
Spain18405 Posts
Last Edited: 2016-10-24 23:27:40
October 24 2016 23:26 GMT
#15704
I tend to do recursion until 0, [] or "" for that very reason. I also agree with blisse that using a field to store your return value in is cheating.

I would probably do it as follows:


recursivestring(teststring);

String recursivestring(test) {
if test == null or test.size() = 0 return "";
else {
Char s = test.charAt(0)
String result = recursivestring(test.substring(1, test.size());
if result.size() = 0 return s;
if s.equals(result.charAt(0))
result = s + "*" + result;
else
result = s + result;
return result;
}


But in proper Java, rather than shitty pseudocode that i mashed up on my phone.

Ninja'd
raNazUra
Profile Joined December 2012
United States10 Posts
Last Edited: 2016-10-24 23:31:13
October 24 2016 23:27 GMT
#15705
On October 25 2016 07:59 travis wrote:
We had a few non-graded java recursion exercises on a handout today

one of them was to: "given a string, compute recursively a new string where identical chars that are adjacent in the original string are separated from each other by a "*"

for example, aabba would be ---> a*ab*ba

Wanted to know how any of you would do that. Here is my code if there are any critiques

+ Show Spoiler +

private static String temp;
private static String newString = "";

public static String pairStar(String str) {

if(str.length() == 1) {
newString = newString + str;
return newString;
}

if(str.charAt(0) == str.charAt(1)) {
temp = str.charAt(0) + "*";
} else {
temp = Character.toString(str.charAt(0));
}

newString = newString + temp;

if(str.length() > 1) {
pairStar(str.substring(1));
}

return newString;

}


Yeah, like Blisse, I'm not sure that using static variables would be ok. Technically, you're still using recursion, since you call the function from within itself, but it's not the cleanest solution.


public static String pairStar(String str) {
if (str.length() <= 1) {
return str;
}
if (str.charAt(0) == str.charAt(1)) {
return str.charAt(0) + "*" + pairStar(str.substring(1));
}
else {
return str.charAt(0) + pairStar(str.substring(1));
}
}


That would be the classic recursion way for me. You could make it a bit more concise:


public static String pairStar(String str) {
if (str.length() <= 1) {
return str;
}
String matchChar = str.charAt(0) == str.charAt(1) ? "*" : ""; // Or whatever Java's ternary operator is
return str.charAt(0) + matchChar + pairStar(str.substring(1));
}


and you could do some stuff to make it tail-recursive, but I'm not sure if Java is able to take advantage of that?

EDIT: AKnopf, I'm curious why you would use indirect recursion on a simple problem like this. Is there an inherent advantage to it, or do you just tend towards that kind of solution? Just curious.

Speak the truth, even if your voice shakes
Manit0u
Profile Blog Joined August 2004
Poland17821 Posts
Last Edited: 2016-10-24 23:50:34
October 24 2016 23:48 GMT
#15706

public static String parseStr(String str) {
if (str == null) {
return "";
}

if (str.length() < 2) {
return str;
}

if (str.charAt(0) == str.charAt(1)) {
return str.charAt(0) + "*" + parseStr(str.substring(1));
}

return str.charAt(0) + parseStr(str.substring(1));
}



and you could do some stuff to make it tail-recursive, but I'm not sure if Java is able to take advantage of that?


AFAIK Java doesn't support TRE. But that might've changed.
Time is precious. Waste it wisely.
Hhanh00
Profile Joined May 2016
34 Posts
Last Edited: 2016-10-25 01:24:44
October 25 2016 01:24 GMT
#15707
Java doesn't support TCO and won't anytime soon.

Using a functional language:


let pair() =
let rec pair_r(s: char list)(acc: char list) =
match s with
| a :: b :: xs ->
if a = b then pair_r s.Tail ('*' :: a :: acc) else pair_r s.Tail (a :: acc)
| [a] -> a :: acc
| [] -> acc
pair_r ['A'; 'A'; 'B'; 'C'; 'C'; 'D'] [] |> List.rev


Which is more elegant in my opinion (and tail recursive).

PS: Normally, you would use a foldr though.
Acrofales
Profile Joined August 2010
Spain18405 Posts
October 25 2016 08:27 GMT
#15708
On October 25 2016 10:24 Hhanh00 wrote:
Java doesn't support TCO and won't anytime soon.

Using a functional language:


let pair() =
let rec pair_r(s: char list)(acc: char list) =
match s with
| a :: b :: xs ->
if a = b then pair_r s.Tail ('*' :: a :: acc) else pair_r s.Tail (a :: acc)
| [a] -> a :: acc
| [] -> acc
pair_r ['A'; 'A'; 'B'; 'C'; 'C'; 'D'] [] |> List.rev


Which is more elegant in my opinion (and tail recursive).

PS: Normally, you would use a foldr though.

Yes. None of that exists in Java, though.

In general, I think learning/teaching recursion in Java is pretty shitty and I would never program the simple string replacement thingy like that in Java using recursion. Yes, it's possible, but it is clunky in comparison to a simple loop, and almost certainly far far slower as well. Whereas if you learn recursion in a language that was actually designed for it (I learned in Haskell), you can appreciate the elegance and power of the method. And then you learn about folds and your mind is blown completely (and your code will never ever be legible again to anybody).
Ilikestarcraft
Profile Blog Joined November 2004
Korea (South)17743 Posts
October 25 2016 09:12 GMT
#15709
I did not expect that last line lol
ils
"Nana is a goddess. Or at very least, Nana is my goddess." - KazeHydra
Manit0u
Profile Blog Joined August 2004
Poland17821 Posts
Last Edited: 2016-10-25 13:06:23
October 25 2016 12:52 GMT
#15710
I did a bit of experimentation out of curiosity:


public static String star(String s, String r) {
if (s.length() < 2) {
return r.length() == 0 ? s : r + s;
}

if (s.charAt(0) == s.charAt(1)) {
return star(s.substring(1), r + s.charAt(0) + "*");
}

return star(s.substring(1), r + s.charAt(0));
}


^ This is more elegant but produces 117 calls.


public static String star(String s) {
if (s.length() < 2) {
return s;
}

if (s.charAt(0) == s.charAt(1)) {
return s.charAt(0) + "*" + star(s.substring(1));
}

return s.charAt(0) + star(s.substring(1));
}


The uglier thing does only 87 calls.

Both tested with just "aabba".

I guess the difference is in the ternary operator. Not sure how to get rid of it though...
Time is precious. Waste it wisely.
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
October 25 2016 13:26 GMT
#15711
I've tried a few variations and compared them to the last posted, i.e. Manit0u's, since I was bored at work (tomorrow is my last day at my current job):

package test;

class Test
{
private static String StarStringBuilder(String input, int index, StringBuilder output)
{
if (index >= input.length()) return output.toString();
if (index > 0 && input.charAt(index) == input.charAt(index - 1))
{
output.append('*');
}
return StarStringBuilder(input, index + 1, output.append(input.charAt(index)));
}

private static String StarString(String input, int index, String output)
{
if (index >= input.length()) return output;
if (index > 0 && input.charAt(index) == input.charAt(index - 1))
{
output += '*';
}
return StarString(input, index + 1, output + input.charAt(index));
}

public static String Manit0uStar2(String s) {
if (s.length() < 2) {
return s;
}

if (s.charAt(0) == s.charAt(1)) {
return s.charAt(0) + "*" + Manit0uStar2(s.substring(1));
}

return s.charAt(0) + Manit0uStar2(s.substring(1));
}

public static String Manit0uStar1(String s, String r) {
if (s.length() < 2) {
return r.length() == 0 ? s : r + s;
}

if (s.charAt(0) == s.charAt(1)) {
return Manit0uStar1(s.substring(1), r + s.charAt(0) + "*");
}

return Manit0uStar1(s.substring(1), r + s.charAt(0));
}

public static void main(String[] args)
{
long startTime = 0;
long endTime = 0;

startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; ++i)
{
StarStringBuilder("aabba", 0, new StringBuilder());
}
endTime = System.currentTimeMillis();
System.out.printf("StringBuilder: ").println(endTime - startTime);

startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; ++i)
{
StarString("aabba", 0, "");
}
endTime = System.currentTimeMillis();
System.out.printf("String: ").println(endTime - startTime);

startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; ++i)
{
Manit0uStar1("aabba", "");
}
endTime = System.currentTimeMillis();
System.out.printf("Manit0u 1: ").println(endTime - startTime);

startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; ++i)
{
Manit0uStar2("aabba");
}
endTime = System.currentTimeMillis();
System.out.printf("Manit0u 2: ").println(endTime - startTime);
}
}


Result:
StringBuilder: 27
String: 44
Manit0u 1: 67
Manit0u 2: 82


StringBuilders are good.
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
October 25 2016 13:32 GMT
#15712
Except that you're doing this in Java with static input. The whole inner block can theoretically be optimized away entirely for all these loops (determine that there are no side effects and the return value is never used). At the very least the JIT and Branch Predictor will mess you up big time. In other words: This performance data is not representative.
If you have a good reason to disagree with the above, please tell me. Thank you.
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
Last Edited: 2016-10-25 13:43:46
October 25 2016 13:41 GMT
#15713
On October 25 2016 22:32 spinesheath wrote:
Except that you're doing this in Java with static input. The whole inner block can theoretically be optimized away entirely for all these loops (determine that there are no side effects and the return value is never used). At the very least the JIT and Branch Predictor will mess you up big time. In other words: This performance data is not representative.


Ok, static input removed, I'm now using a randomly generated string of 100 characters length.

	public static void main(String[] args)
{
long startTime = 0;
long endTime = 0;

int count = 0;
Random random = new Random();
StringBuilder randomStringBuilder = new StringBuilder();
for (int i = 0; i < 100; ++i)
{
randomStringBuilder.append((char)(random.nextInt(26) + (int)'a'));
}
String randomString = randomStringBuilder.toString();
System.out.println(randomString);

String check = StarStringBuilder(randomString, 0, new StringBuilder());

startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; ++i)
{
if (StarStringBuilder(randomString, 0, new StringBuilder()).equals(check))
{
++count;
}
}
endTime = System.currentTimeMillis();
System.out.printf("StringBuilder: ").println(endTime - startTime);

startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; ++i)
{
if (StarString(randomString, 0, "").equals(check))
{
++count;
}
}
endTime = System.currentTimeMillis();
System.out.printf("String: ").println(endTime - startTime);

startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; ++i)
{
if (Manit0uStar1(randomString, "").equals(check))
{
++count;
}
}
endTime = System.currentTimeMillis();
System.out.printf("Manit0u 1: ").println(endTime - startTime);

startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; ++i)
{
if (Manit0uStar2(randomString).equals(check))
{
++count;
}
}
endTime = System.currentTimeMillis();
System.out.printf("Manit0u 2: ").println(endTime - startTime);

System.out.println(StarStringBuilder(randomString, 0, new StringBuilder()).equals(StarString(randomString, 0, "")));
System.out.println(StarString(randomString, 0, "").equals(Manit0uStar1(randomString, "")));
System.out.println(Manit0uStar1(randomString, "").equals(Manit0uStar2(randomString)));
System.out.println(StarStringBuilder(randomString, 0, new StringBuilder()));
System.out.println(count);
}


Result:
qqzbgxoksvandahebthhpoxhiuiwfoxijgveoidclxudatdpolqilkjokwvlxdriblhwfdqsczmnjcxchtuefqdcxhkigvglqjin
StringBuilder: 107
String: 1205
Manit0u 1: 1134
Manit0u 2: 867
true
true
true
q*qzbgxoksvandahebth*hpoxhiuiwfoxijgveoidclxudatdpolqilkjokwvlxdriblhwfdqsczmnjcxchtuefqdcxhkigvglqjin
400000
slmw
Profile Blog Joined October 2010
Finland233 Posts
October 25 2016 13:57 GMT
#15714
That's still a static input in the context of the loops.
Manit0u
Profile Blog Joined August 2004
Poland17821 Posts
October 25 2016 13:59 GMT
#15715
Heh, just for fun:


<?php

function star($str)
{
return preg_replace_callback('/(.)\1+/', function($matches) {
return implode('*', str_split($matches[0], 1));
},
$str
);
}

$start = getrusage();

echo star('aabba') . PHP_EOL;

$end = getrusage();

function getRuntime($start, $end, $measurement)
{
return ($end["ru_{$measurement}.tv_sec"] * 1000 + intval($end["ru_{$measurement}.tv_usec"] / 1000))
- ($start["ru_{$measurement}.tv_sec"] * 1000 + intval($start["ru_{$measurement}.tv_usec"] / 1000));
}

echo "Process took ".getRuntime($start, $end, 'utime')."ms for computations".PHP_EOL;
echo "Process spent ".getRuntime($start, $end, 'stime')."ms in system calls".PHP_EOL;

// ---- OUTPUT ----
a*ab*ba
Process took 0ms for computations
Process spent 0ms in system calls


Does Java have equivalent of preg_replace_callback() from PHP?
Time is precious. Waste it wisely.
Acrofales
Profile Joined August 2010
Spain18405 Posts
October 25 2016 13:59 GMT
#15716
Lol. Travis, were you expecting this? :D
Manit0u
Profile Blog Joined August 2004
Poland17821 Posts
October 25 2016 14:26 GMT
#15717
On October 25 2016 22:59 Acrofales wrote:
Lol. Travis, were you expecting this? :D


Hehe. I guess that no one could've predicted that

Also, I've learned today that JVM has full support for dynamic typing, TCO and other funky shit - just not for Java
Time is precious. Waste it wisely.
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
October 25 2016 14:27 GMT
#15718
lol no this is great, love the participation.

I'll post the "hard" exercise that was included since you guys seem to enjoy this. I haven't tried it yet, I might this weekend but now I have to study for my calc 2 exam until friday.


Hard exercise:

Your method parameter is an array of ints. The method is a boolean. The goal is to look at the ints and see if you could possibly return 2 arrays from it, both having the same "total" within it.

For example if you were passed {2, 2} it would be true. {2, 3, 2, 3} would be true. {2, 3} would be false. {5, 2, 3} would be true. {5, 2, 4} would be false. {2, 6, 2, 2} would be true. Etc. Have fun!


Oh and it's supposed to use recursion, so no loops. You can make a recursive helper method, though.
Hhanh00
Profile Joined May 2016
34 Posts
October 25 2016 14:40 GMT
#15719
On October 25 2016 23:26 Manit0u wrote:
Show nested quote +
On October 25 2016 22:59 Acrofales wrote:
Lol. Travis, were you expecting this? :D


Hehe. I guess that no one could've predicted that

Also, I've learned today that JVM has full support for dynamic typing, TCO and other funky shit - just not for Java


JVM has no support for TCO. In Scala, TRE is done by the compiler but does not cover mutual recursion. That's why there are trampolines in scalaz.
Manit0u
Profile Blog Joined August 2004
Poland17821 Posts
October 25 2016 14:44 GMT
#15720
On October 25 2016 23:40 Hhanh00 wrote:
Show nested quote +
On October 25 2016 23:26 Manit0u wrote:
On October 25 2016 22:59 Acrofales wrote:
Lol. Travis, were you expecting this? :D


Hehe. I guess that no one could've predicted that

Also, I've learned today that JVM has full support for dynamic typing, TCO and other funky shit - just not for Java


JVM has no support for TCO. In Scala, TRE is done by the compiler but does not cover mutual recursion. That's why there are trampolines in scalaz.


But from what I've read most of the recursion in scala is translated into loops anyway.
Time is precious. Waste it wisely.
Prev 1 784 785 786 787 788 1032 Next
Please log in or register to reply.
Live Events Refresh
Next event in 5h 52m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ByuN 466
uThermal 278
BRAT_OK 89
ProTech72
RushiSC 24
MindelVK 15
EmSc Tv 12
StarCraft: Brood War
Britney 17298
firebathero 393
Soma 381
Rush 217
Dewaltoss 142
Larva 89
Mong 47
ZZZero.O 32
HiyA 28
Bale 25
[ Show more ]
Terrorterran 15
zelot 12
Sexy 11
Dota 2
qojqva2212
Counter-Strike
fl0m2183
byalli652
x6flipin579
Heroes of the Storm
Liquid`Hasu169
Other Games
Grubby3876
FrodaN1774
ceh9730
ArmadaUGS158
XaKoH 142
elazer133
C9.Mang0128
Trikslyr55
Mew2King55
UpATreeSC48
JuggernautJason0
Organizations
StarCraft 2
EmSc Tv 12
EmSc2Tv 12
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 18 non-featured ]
StarCraft 2
• StrangeGG 69
• Kozan
• sooper7s
• Migwel
• AfreecaTV YouTube
• LaughNgamezSOOP
• intothetv
• IndyKCrew
StarCraft: Brood War
• HerbMon 20
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• WagamamaTV587
• lizZardDota2145
League of Legends
• imaqtpie1758
• TFBlade917
Counter-Strike
• Nemesis2133
Other Games
• Shiphtur428
Upcoming Events
Replay Cast
5h 52m
Escore
15h 52m
IntoTheTV X SOOP
16h 52m
Big Brain Bouts
21h 52m
DnS vs Rex
Reynor vs Cure
Replay Cast
1d 5h
RSL Revival
1d 14h
herO vs SHIN
Clem vs Solar
Serral vs Rogue
Ladder Legends
1d 23h
Ladder Legends
2 days
RSL Revival
2 days
OSC
2 days
[ Show More ]
OSC
3 days
WardiTV Weekly
3 days
The Patches Monday
3 days
Sparkling Tuna Cup
4 days
PiG Sty Festival
4 days
PiGosaur Cup
5 days
Replay Cast
5 days
Kung Fu Cup
5 days
Replay Cast
6 days
The PondCast
6 days
Liquipedia Results

Completed

Proleague 2026-08-05
CranK Gathers Season 4: BW vs SC2 Team League
Eternal Conflict S2 Finale

Ongoing

KCM Race Survival 2026 Season 3
K-JUNGMAN
Acropolis #5
RSL Revival: Season 6
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

Upcoming

Escore Tournament S3: W6
Escore Tournament S3: W7
CSLAN 4
ASL Season 22
Escore Tournament S3: W8
Acropolis #5 - TRS
Blizzard Classic Cup 2026
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
PiG Sty Festival 8.0
Big Dog Cup 2026 Div 1
Thunderpick World Champ.
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
Esports World Cup 2026: LCQ
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.