• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 12:16
CEST 18:16
KST 01:16
  • 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
[ASL21] Ro4 Preview: On Course0Code S Season 1 - RO8 Preview6[ASL21] Ro8 Preview Pt2: Progenitors8Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13[ASL21] Ro8 Preview Pt1: Inheritors16
Community News
Maestros of The Game 2 announcement and schedule !7Weekly Cups (April 27-May 4): Clem takes triple0RSL Revival: Season 5 - Qualifiers and Main Event12Code S Season 1 (2026) - RO12 Results12026 GSL Season 1 Qualifiers25
StarCraft 2
General
Code S Season 1 - RO8 Preview Behind the Blue - Team Liquid History Book Weekly Cups (April 27-May 4): Clem takes triple Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool Code S Season 1 (2026) - RO12 Results
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament Sea Duckling Open (Global, Bronze-Diamond) Maestros of The Game 2 announcement and schedule ! GSL Code S Season 1 (2026) RSL Revival: Season 5 - Qualifiers and Main Event
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players
External Content
Mutation # 524 Death and Taxes The PondCast: SC2 News & Results Mutation # 523 Firewall Mutation # 522 Flip My Base
Brood War
General
Quality of life changes in BW that you will like ? Why there arent any 256x256 pro maps? RepMastered™: replay sharing and analyzer site BGH Auto Balance -> http://bghmmr.eu/ [ASL21] Ro4 Preview: On Course
Tourneys
[ASL21] Ro8 Day 3 [Megathread] Daily Proleagues [ASL21] Ro8 Day 4 Escore Tournament StarCraft Season 2
Strategy
Fighting Spirit mining rates Simple Questions, Simple Answers Muta micro map competition What's the deal with APM & what's its true value
Other Games
General Games
Warcraft III: The Frozen Throne Stormgate/Frost Giant Megathread Path of Exile Nintendo Switch Thread Daigo vs Menard Best of 10
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
Russo-Ukrainian War Thread US Politics Mega-thread The Letting Off Steam Thread European Politico-economics QA Mega-thread UK Politics Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece [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
The Automated Ban List
Blogs
How EEG Data Can Predict Gam…
TrAiDoS
ramps on octagon
StaticNine
Funny Nicknames
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1729 users

Java Problem

Blogs > Iankill
Post a Reply
Iankill
Profile Blog Joined February 2008
Canada109 Posts
January 26 2009 18:33 GMT
#1
I'm having a problem with a java for loop.
public int Value()
{
for (int i=0; i < Hand.size(); i++)
{

System.out.println(i);
System.out.println(Hand.size());
totalHandValue = 8;
}

return totalHandValue;
}
That is the method and i have used the same loop throughout different parts and classes of my program. But this one for some reason whenever you first run it, it prints
0
2
1
2
0
2
1
2
0
2
1
2
the 0s and 1s should not alternate like that the two is also just to tell you how many cards are in the hand. It is a method of a black jack program to add all the cards together. another strange thing is that when you use this a second time it works the way it is supposed to and prints
0
1
2
3
4
and so on.

So if anyone can help it would be appreciated.

Avidkeystamper
Profile Blog Joined June 2008
United States8556 Posts
January 26 2009 18:37 GMT
#2
"another strange thing is that when you use this a second time it works the way it is supposed to and prints
0
1
2
3
4
and so on.
"
Shoudn't this method print out (assuming Hand.size()==x)
0
x
1
x
2
x
...
x
x
8
?
Jaedong
Iankill
Profile Blog Joined February 2008
Canada109 Posts
January 26 2009 18:41 GMT
#3
Well yes it does when used

Welcome to Black Jack
JACK of Hearts
XXXXXXX

4 of Hearts
9 of Diamonds

0
2
1
2
0
2
1
2
0
2
1
2
The value of your hand 8
Hit[H] or Stick[S]
h
4 of Hearts
9 of Diamonds
6 of Hearts

0
3
1
3
2
3
The value of your hand 8
Hit[H] or Stick[S]
The x is just the number of cards in the hand and it is increased when you Hit. I just have System.out.println(Hand.size()); in the method right now to check it.
MER
Profile Joined June 2008
Bulgaria125 Posts
January 26 2009 18:52 GMT
#4
well, you should give more info on how u use the method. The method outputs what Avidkeystamper said. Maybe the first time Hand.size() == 2 and you call the method several times by mistake
Iankill
Profile Blog Joined February 2008
Canada109 Posts
January 26 2009 19:10 GMT
#5
I use the method in my code only in those two places so far.

System.out.println ("The value of your hand " + playerHand.Value());
System.out.println ("Hit[H] or Stick[S]");
hOrS = scan.nextLine();
playerHand.addCard(Deck1.deal());
while (hOrS.equalsIgnoreCase("h") == true && hOrS.equalsIgnoreCase("s") == false)
{
System.out.println(playerHand.ArraytoString());
System.out.println("The value of your hand " + playerHand.Value());
System.out.println("Hit[H] or Stick[S]");
hOrS = scan.nextLine();
playerHand.addCard(Deck1.deal());
}

The method is also to add up the number of cards in the hand which it doesn't do,
because the i variable in the for loop alternates when it is called, and when added it adds
the first two cards together 5 times until 1 and 0 stop alternating.
0
2
1
2
0
2
1
2
0
2
1
2
the 2 is hand.size();
and the 0 and 1 are i. i shouldn't be alternating variables like that because in a for loop i is incremented at the end of it each time, not added them subtracted, also if it was doing that why doesn't it become a infinite loop.

dyodyo
Profile Blog Joined December 2005
Philippines578 Posts
January 26 2009 19:42 GMT
#6
Are you sure that you have copy/pasted the exact code? This kind of error is mainly due to some typing mistake. Also I guess you should just label what's i and whats HandValue() in the debug output so that you're sure that what you're looking at is "i" and not some other variable.
TeamLiquid CJ Entusman #26
AssuredVacancy
Profile Blog Joined September 2008
United States1167 Posts
January 26 2009 19:43 GMT
#7
Have you tried to assign hand.value() to a local variable, and in the for loop, use i<variable instead of i<hand.value()?
We spend our youth attaining wealth, and our wealth attaining youth.
MER
Profile Joined June 2008
Bulgaria125 Posts
Last Edited: 2009-01-26 19:50:49
January 26 2009 19:46 GMT
#8
On January 27 2009 04:10 Iankill wrote:
I use the method in my code only in those two places so far.

System.out.println ("The value of your hand " + playerHand.Value());
System.out.println ("Hit[H] or Stick[S]");
hOrS = scan.nextLine();
playerHand.addCard(Deck1.deal());
while (hOrS.equalsIgnoreCase("h") == true && hOrS.equalsIgnoreCase("s") == false)
{
System.out.println(playerHand.ArraytoString());
System.out.println("The value of your hand " + playerHand.Value());
System.out.println("Hit[H] or Stick[S]");
hOrS = scan.nextLine();
playerHand.addCard(Deck1.deal());
}

I presume this is the code that outputs the second part of your previous post:

0
2
1
2
The value of your hand 8
Hit[H] or Stick[S]
h
4 of Hearts
9 of Diamonds
6 of Hearts

0
3
1
3
2
3
The value of your hand 8
Hit[H] or Stick[S]


The wrong output is in the first part:

Welcome to Black Jack
JACK of Hearts
XXXXXXX

4 of Hearts
9 of Diamonds


0
2
1
2
0
2
1
2



Can you post this code too.
MasterOfChaos
Profile Blog Joined April 2007
Germany2896 Posts
January 26 2009 19:47 GMT
#9
Replace
System.out.println(i);
System.out.println(Hand.size());
by
System.out.println("i:"+i);
System.out.println("size:"+Hand.size());

and then post again what the output should look like and how it looks like. For me it looks like it is doing what it should do.
LiquipediaOne eye to kill. Two eyes to live.
MER
Profile Joined June 2008
Bulgaria125 Posts
January 26 2009 19:54 GMT
#10
On January 27 2009 04:47 MasterOfChaos wrote:
Replace
System.out.println(i);
System.out.println(Hand.size());
by
System.out.println("i:"+i);
System.out.println("size:"+Hand.size());

and then post again what the output should look like and how it looks like. For me it looks like it is doing what it should do.


I think his problem is that in the beginning playerHand.Value(); is called not once but three times for some reason.
RaGe
Profile Blog Joined July 2004
Belgium9950 Posts
January 26 2009 20:00 GMT
#11
On January 27 2009 04:10 Iankill wrote:
I use the method in my code only in those two places so far.

System.out.println ("The value of your hand " + playerHand.Value());
System.out.println ("Hit[H] or Stick[S]");
hOrS = scan.nextLine();
playerHand.addCard(Deck1.deal());
while (hOrS.equalsIgnoreCase("h") == true && hOrS.equalsIgnoreCase("s") == false)
{
System.out.println(playerHand.ArraytoString());
System.out.println("The value of your hand " + playerHand.Value());
System.out.println("Hit[H] or Stick[S]");
hOrS = scan.nextLine();
playerHand.addCard(Deck1.deal());
}

The method is also to add up the number of cards in the hand which it doesn't do,
because the i variable in the for loop alternates when it is called, and when added it adds
the first two cards together 5 times until 1 and 0 stop alternating.
0
2
1
2
0
2
1
2
0
2
1
2
the 2 is hand.size();
and the 0 and 1 are i. i shouldn't be alternating variables like that because in a for loop i is incremented at the end of it each time, not added them subtracted, also if it was doing that why doesn't it become a infinite loop.



wait

you dont understand why they alternate like that?

everytime you execute the for loop, it prints i, then the handsize which is 2. It terminates after the 1, 2 print because the next value for i (2) is obviously not smaller than handsize

you should look at your own code lol
Moderatorsometimes I get intimidated by the size of my right testicle
ExaltedElegance
Profile Joined December 2008
United States81 Posts
January 26 2009 20:03 GMT
#12
Um, all that method is doing at all is printing the numbers from 0 to however large your hand size is. There is no point in the method where you're actually doing anything with WHAT the cards are. I'm assuming that there's some sort of array or ArrayList where the cards are kept. In that case, shouldn't the method look more like:

public int value(){

for(int i = 0; i < Hand.size(); i++) totalHandValue += Hand[i];
return totalHandValue;
}
True beauty is micro in Starcraft.
Iankill
Profile Blog Joined February 2008
Canada109 Posts
Last Edited: 2009-01-26 20:41:14
January 26 2009 20:39 GMT
#13
On January 27 2009 04:47 MasterOfChaos wrote:
Replace
System.out.println(i);
System.out.println(Hand.size());
by
System.out.println("i:"+i);
System.out.println("size:"+Hand.size());

and then post again what the output should look like and how it looks like. For me it looks like it is doing what it should do.

i tried this and it gave me this
+ Show Spoiler +
Welcome to Black Jack
2 of Spades
XXXXXXX

7 of Hearts
5 of Hearts

i:0
size:2
i:1
size:2
i:0
size:2
i:1
size:2
i:0
size:2
i:1
size:2
The value of your hand 8
Hit[H] or Stick[S]


I am also using a ArrayList if that helps anyone.
Also here is the code of the driver class

+ Show Spoiler +
import java.util.*;
public class BlackJackDriver
{
public static void main(String[] args)
{
boolean playGame = true, blackJack = false;
card flipcard;
String hOrS;
Scanner scan = new Scanner(System.in);
System.out.println("Welcome to Black Jack");
do
{
DeckOfCards Deck1 = new DeckOfCards();
Deck1.Shuffle();
BlackJackHand dealerHand = new BlackJackHand (Deck1.deal(), Deck1.deal());
BlackJackHand playerHand = new BlackJackHand (Deck1.deal(), Deck1.deal());
dealerHand.flip(0);
System.out.println(dealerHand.ArraytoString());
System.out.println(playerHand.ArraytoString());
if (dealerHand.BlackJackCheck(dealerHand) == 0)
{

blackJack = true;
System.out.println("Dealer Wins");
playGame = false;
}
if (playerHand.BlackJackCheck(playerHand) == 0)
{
blackJack = true;
System.out.println("Player Wins");
playGame = false;
}
else
{

System.out.println ("The value of your hand " + playerHand.Value());
System.out.println ("Hit[H] or Stick[S]");
hOrS = scan.nextLine();
playerHand.addCard(Deck1.deal());
while (hOrS.equalsIgnoreCase("h") == true && hOrS.equalsIgnoreCase("s") == false)
{
System.out.println(playerHand.ArraytoString());
System.out.println("The value of your hand " + playerHand.Value());
System.out.println("Hit[H] or Stick[S]");
hOrS = scan.nextLine();
playerHand.addCard(Deck1.deal());
}
dealerHand.flip(0);
System.out.println("Dealers cards " + dealerHand.ArraytoString());
System.out.println("The value of the dealers hand " + dealerHand.Value());
while(dealerHand.Value() <= 16);
{
dealerHand.addCard(Deck1.deal());
System.out.println("Dealers cards " + dealerHand.ArraytoString());
System.out.println("The value of the dealers hand " + dealerHand.Value());
}
}

}
while(playGame == true);
}
}




the hand class

+ Show Spoiler +
import java.util.*;
public class BlackJackHand
{
private ArrayList<card> Hand = new ArrayList<card>();
private card card1, card2, cardi, valueHolder, aceCard, toStringCard, cardViewed;
private int cardsInHand, handValue, handAdd, totalHandValue, handcheck;
private String stringHolder;
private ArrayList<String> toStringArray = new ArrayList<String>();
private int i = 0;

public BlackJackHand(card card1, card card2)
{
Hand.add(card1);
Hand.add(card2);
}
public ArrayList addCard(card cardi)
{
Hand.add(cardi);
return Hand;
}
public int Value()
{
for (int i=0; i < Hand.size(); i++)
{

System.out.println("i:"+i);
System.out.println("size:"+Hand.size());
totalHandValue = 8;
}

return totalHandValue;
}

public int handSize()
{
cardsInHand = Hand.size();
return cardsInHand;
}

public int reduceHand(card aceCard)
{
if (handValue > 21 && aceCard.toInt(aceCard) == 11)
{
handValue = handValue - 10;
return handValue;
}
else
return handValue;
}
public String ArraytoString()
{
for (int i=0; i<Hand.size(); i++)
{
toStringCard = Hand.get(i);
System.out.println (toStringCard.toString(toStringCard));
}
return " ";


}
public String compareTo(BlackJackHand dealerHand, BlackJackHand playerHand)
{
if (dealerHand.Value() >= playerHand.Value())
{
return ("Dealer Wins");
}
else
return ("Player Wins");


}

public int BlackJackCheck(BlackJackHand Hand1)
{
if (Hand1.Value() == 21)
{
return 0;
}
else
return 1;


}

public ArrayList flip(int handPlace)
{
cardViewed = Hand.remove(handPlace);
cardViewed.flip();
Hand.add(cardViewed);
return Hand;
}


}


I didn't include the card or the deck class but if anyone wants me to put them up as well i will.
Also i found that it proubably doesn't have anything to do with the for loop in the value class but i can't find where i called the value class three times or
Malongo
Profile Blog Joined November 2005
Chile3472 Posts
January 26 2009 20:46 GMT
#14
No way to help you unless you post the full code with all the classes, also note that the problem for the first loop may be
a)In the main class (like running the loop n times)
b)the Hand.size() method, maybe the method changes the class variable you use for the class hand.
As i dont have access to that info i can help.
Also you may want to put a "home made" debugger: put some variable in the loop and watch how it changes throught your code once it runs.
Help me! im still improving my English. An eye for an eye makes the whole world blind. M. G.
MER
Profile Joined June 2008
Bulgaria125 Posts
Last Edited: 2009-01-26 20:55:26
January 26 2009 20:49 GMT
#15
OK, the reason for the triple output in the beginning is because the method Value() is called within BlackJackCheck(). And you call BlackJackCheck() in the beginning twice. Problem solved .

BTW, since you use the method Value() frequently, it might be a good idea to keep the value in a member variable and recalculate it each time you change the hand.
Iankill
Profile Blog Joined February 2008
Canada109 Posts
January 26 2009 20:56 GMT
#16
On January 27 2009 05:49 MER wrote:
OK, the reason for the triple output in the beginning is because the method Value() is called within BlackJackCheck(). And you call BlackJackCheck() in the beginning twice. Problem solved .


Thanks but i also just figured this out but commenting everything out until it worked.
Also thanks to everyone who helped.
I've also decided to attach the rest of the code if any of you guys want to screw around with it. Also
I will post the finished product later tonight but don't expect a GUI just yet.
deck of cards class
+ Show Spoiler +
import java.util.*;
import java.util.Random;
public class DeckOfCards
{
private final int DECK = 52;
card[] cards = new card[DECK];
private int suit = 0;
String cardchecker1;
private int cardnum = 1,cardsLeft;
private ArrayList<card> finaldeck = new ArrayList<card>();
private Random gen = new Random();
private card placeholder, cardholder, dealcard;



public DeckOfCards()
{
finaldeck = create();



}
public void cardchecker()
{
for (int i=0; i<finaldeck.size(); i++)
{

cardholder = finaldeck.get(i);
System.out.println (cardholder.toString(cardholder));
}

}
public ArrayList create()
{
for (int i=0; i<cards.length; i++)
{
cards[i] = new card(cardnum, suit);
if (i == 12)
{ suit++;
cardnum = 0;
}
if (i == 25)
{ suit++;
cardnum = 0;
}
if (i == 38)
{ suit++;
cardnum = 0;
}

else
{
suit = suit;
}
finaldeck.add(cards[i]);
cardnum++;

}
return finaldeck;

}

public ArrayList Shuffle()
{
for(int i=0; i<9001;i++)
{
placeholder = finaldeck.get(gen.nextInt(52));
finaldeck.remove(placeholder);
finaldeck.add(gen.nextInt(52), placeholder);
}
return finaldeck;
}

public card deal()
{
dealcard = finaldeck.remove(0);
return dealcard;
}
public int cardsleft()
{
cardsLeft = finaldeck.size();
return cardsLeft;
}

}



card class
+ Show Spoiler +
public class card
{
public final int SPADES = 0, HEARTS = 1, DIAMONDS = 2, CLUBS = 3;
// Codes for the 4 suits.
public final int ACE = 1,JACK = 11, QUEEN = 12, KING = 13;
// Codes for the non-numeric cards.
// Cards 2 through 10 have their
// numerical values for their codes.
private boolean isFlipped = false;

private String cardstring;


private final int cardSuit; // The suit of this card, one of the constants
// SPADES, HEARTS, DIAMONDS, CLUBS.

private final int cardValue; // The value of this card, from 1 to 11.

public card(int theValue, int theSuit)
{
// Construct a card with the specified value and suit.
// Value must be between 1 and 13. Suit must be between
// 0 and 3. If the parameters are outside these ranges,
// the constructed card object will be invalid.
cardValue = theValue;
cardSuit = theSuit;
}
public int integerValue()
{
if (cardValue == ACE) // returns the ACE card value
return 11;
if (cardValue == KING) // returns the KING card value
return 10;
if (cardValue == QUEEN) // returns the QUEEN card value
return 10;
if (cardValue == JACK) // returns the JACK card value
return 10;
else
return cardValue;
}


public String value() //A method that returns the value of a card
{
if (cardValue == ACE) // returns the ACE card value
return ("ACE");
if (cardValue == KING) // returns the KING card value
return ("KING");
if (cardValue == QUEEN) // returns the QUEEN card value
return ("QUEEN");
if (cardValue == JACK) // returns the JACK card value
return ("JACK");
else
cardstring = Integer.toString(cardValue); // returns the card value of the numerical types
return cardstring;
}
public String suit() // A method that returns the suit of a card
{
if (cardSuit == 0) //returns Spades
return ("Spades");
if (cardSuit == 1) // returns Hearts
return ("Hearts");
if (cardSuit == 2) // returns Diamonds
return ("Diamonds");
else //returns Clubs
return ("Clubs");
}
public int compareTo (card firstCard, card secondCard) // A method that compares two cards
{
if (firstCard.integerValue() >= secondCard.integerValue()) // checks if the first card is greater than second card
return 1; // returns 1 if the first card is greater than the second
if (firstCard.integerValue() <= secondCard.integerValue()) // checks if the first card is less than the second card
return -1; // returns -1 if the first card is less than the second
else
return 0; // returns 0 if the cards are equal
}
public void flip() // a method to flip a card over
{
if (isFlipped == true) // checks if card is already flipped
isFlipped = false; // if card is flipped it flips it right side up
else
isFlipped = true; // flips card over so no value can be shown
}
public String toString(card playerCard) // A toString method
{
if (isFlipped == true)
return ("XXXXXXX"); //returns XXXXXXX if card is Flipped
else
return (playerCard.value() + " of " + playerCard.suit());
//returns card value and suit
}
public int toInt(card playerCard)
{
if ((playerCard.value()).equalsIgnoreCase("ace") == true ) // returns the ACE card value
return 11;
if (playerCard.integerValue() == KING) // returns the KING card value
return 10;
if (playerCard.integerValue() == QUEEN) // returns the QUEEN card value
return 10;
if (playerCard.integerValue() == JACK) // returns the JACK card value
return 10;
else
return playerCard.integerValue();

}
}











armed_
Profile Joined November 2008
Canada443 Posts
Last Edited: 2009-01-26 21:06:50
January 26 2009 21:06 GMT
#17
The first two prints of "0, 2, 1, 2" are from
+ Show Spoiler +
if (dealerHand.BlackJackCheck(dealerHand) == 0)
{

blackJack = true;
System.out.println("Dealer Wins");
playGame = false;
}
if (playerHand.BlackJackCheck(playerHand) == 0)
{
blackJack = true;
System.out.println("Player Wins");
playGame = false;
}

When the if statements are being evaluated BlackJackCheck is called, which calls Value, which has the side effect of printing those numbers.

Regardless, your code makes no sense. Value just prints out 0, x, 1, x ... x-1, x(x being Hand.size()) and then returns 8. It always returns 8, it doesn't do anything that adds up the value of your hand.

Edit: I should really start refreshing threads before posting my replies. ;P
Malongo
Profile Blog Joined November 2005
Chile3472 Posts
January 26 2009 21:07 GMT
#18
You may want to try the "switch case" command instead of those ugly nested "if" but thats just for a better code presentation (check suns java tutorial for use), also remeber to put class names with upper first letter. There are some other nice commands that simplify code and remember to use proper identation when managing loops, that help you to look for errors (like putting a tab space to separate the inside of a loop). Good luck.
Help me! im still improving my English. An eye for an eye makes the whole world blind. M. G.
Please log in or register to reply.
Live Events Refresh
WardiTV Invitational
12:00
Wardi Spring Cup
ByuN vs Rogue
Solar vs Ryung
Zoun vs Percival
Cure vs SHIN
WardiTV1263
TKL 311
Ryung 238
IndyStarCraft 213
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
TKL 311
Ryung 238
IndyStarCraft 213
Rex 134
Railgan 94
BRAT_OK 59
MindelVK 27
StarCraft: Brood War
EffOrt 1582
BeSt 830
ZerO 504
Rush 224
hero 187
Mind 127
Bonyth 83
Shinee 63
Sea.KH 60
Nal_rA 56
[ Show more ]
Pusan 38
Movie 34
sorry 31
Rock 24
EG.Machine 22
GoRush 14
IntoTheRainbow 11
Dota 2
Gorgc6171
XaKoH 405
syndereN315
LuMiX1
Counter-Strike
fl0m2639
Heroes of the Storm
Khaldor419
Other Games
gofns16212
singsing2040
FrodaN1572
B2W.Neo1204
Liquid`RaSZi1135
Happy371
Hui .269
monkeys_forever201
KnowMe157
ArmadaUGS127
elazer60
ZerO(Twitch)24
Beastyqt1
Organizations
Other Games
gamesdonequick2709
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 15 non-featured ]
StarCraft 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Nemesis3507
• Jankos1829
• TFBlade1151
Other Games
• WagamamaTV393
• Shiphtur243
Upcoming Events
BSL
2h 44m
Dewalt vs DragOn
Aether vs Jimin
GSL
15h 44m
Afreeca Starleague
17h 44m
Soma vs Leta
Wardi Open
19h 44m
Monday Night Weeklies
23h 44m
OSC
1d 7h
CranKy Ducklings
1d 17h
Afreeca Starleague
1d 17h
Light vs Flash
Replay Cast
2 days
Replay Cast
3 days
[ Show More ]
The PondCast
3 days
Replay Cast
4 days
RSL Revival
4 days
Korean StarCraft League
5 days
RSL Revival
5 days
BSL
6 days
GSL
6 days
Cure vs TBD
TBD vs Maru
Liquipedia Results

Completed

Escore Tournament S2: W6
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
SCTL 2026 Spring
RSL Revival: Season 5
2026 GSL S1
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

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