• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 10:29
CET 16:29
KST 00:29
  • 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
TL.net Map Contest #21: Winners11Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10[ASL20] Finals Preview: Arrival13TL.net Map Contest #21: Voting12[ASL20] Ro4 Preview: Descent11
Community News
[TLMC] Fall/Winter 2025 Ladder Map Rotation6Weekly Cups (Nov 3-9): Clem Conquers in Canada4SC: Evo Complete - Ranked Ladder OPEN ALPHA8StarCraft, SC2, HotS, WC3, Returning to Blizzcon!45$5,000+ WardiTV 2025 Championship7
StarCraft 2
General
[TLMC] Fall/Winter 2025 Ladder Map Rotation Mech is the composition that needs teleportation t Weekly Cups (Nov 3-9): Clem Conquers in Canada Craziest Micro Moments Of All Time? SC: Evo Complete - Ranked Ladder OPEN ALPHA
Tourneys
Constellation Cup - Main Event - Stellar Fest Tenacious Turtle Tussle Sparkling Tuna Cup - Weekly Open Tournament $5,000+ WardiTV 2025 Championship Merivale 8 Open - LAN - Stellar Fest
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 499 Chilling Adaptation Mutation # 498 Wheel of Misfortune|Cradle of Death Mutation # 497 Battle Haredened Mutation # 496 Endless Infection
Brood War
General
BW General Discussion FlaSh on: Biggest Problem With SnOw's Playstyle Terran 1:35 12 Gas Optimization BGH Auto Balance -> http://bghmmr.eu/ [ASL20] Ask the mapmakers — Drop your questions
Tourneys
[BSL21] RO32 Group D - Sunday 21:00 CET [BSL21] RO32 Group C - Saturday 21:00 CET [ASL20] Grand Finals [Megathread] Daily Proleagues
Strategy
Current Meta PvZ map balance How to stay on top of macro? Soma's 9 hatch build from ASL Game 2
Other Games
General Games
EVE Corporation Nintendo Switch Thread Stormgate/Frost Giant Megathread Should offensive tower rushing be viable in RTS games? 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
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread SPIRED by.ASL Mafia {211640}
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread The Games Industry And ATVI
Fan Clubs
White-Ra Fan Club The herO Fan Club!
Media & Entertainment
[Manga] One Piece Anime Discussion Thread Movie Discussion! Korean Music Discussion Series you have seen recently...
Sports
2024 - 2026 Football Thread Formula 1 Discussion NBA General Discussion MLB/Baseball 2023 TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
SC2 Client Relocalization [Change SC2 Language] Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
Dyadica Gospel – a Pulp No…
Hildegard
Coffee x Performance in Espo…
TrAiDoS
Saturation point
Uldridge
DnB/metal remix FFO Mick Go…
ImbaTosS
Reality "theory" prov…
perfectspheres
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1229 users

The Big Programming Thread - Page 819

Forum Index > General Forum
Post a Reply
Prev 1 817 818 819 820 821 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
December 22 2016 01:59 GMT
#16361
cool, got it working

is it typical for the listener to seem to refresh very slowly... or like, inconsistently?

It doesn't really register all my clicks, especially if I click quickly (not that it matters for my project)
Manit0u
Profile Blog Joined August 2004
Poland17429 Posts
December 22 2016 02:32 GMT
#16362
On December 22 2016 10:59 travis wrote:
cool, got it working

is it typical for the listener to seem to refresh very slowly... or like, inconsistently?

It doesn't really register all my clicks, especially if I click quickly (not that it matters for my project)


Next time try using the language without garbage collector
Time is precious. Waste it wisely.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2016-12-22 04:04:26
December 22 2016 04:04 GMT
#16363
No that shouldn't have that effect. Did you initialize your components on the EventQueue like mush mentioned? It's likely you're doing too much work in your MouseAdapter?
There is no one like you in the universe.
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
December 22 2016 04:09 GMT
#16364
ah yeah
the issue was that I was using mouseclicked, which needs the mouse to be fully released, and that's apparently more sensitive than I realized

using mousepressed makes me able to draw circles very rapidly
RoomOfMush
Profile Joined March 2015
1296 Posts
December 22 2016 08:46 GMT
#16365
On December 22 2016 13:09 travis wrote:
ah yeah
the issue was that I was using mouseclicked, which needs the mouse to be fully released, and that's apparently more sensitive than I realized

using mousepressed makes me able to draw circles very rapidly

The exact behaviour of mouseClicked depends on the operating system used. In general though it only registers if the mouse is pressed down and then released while staying roughly on the same spot on screen. If you press the mouse down, move it, and then release it will usually not count as a mouseClicked event.

If you use mousePressed instead the behaviour is not platform dependent and you can build it the way you like.

On December 22 2016 11:32 Manit0u wrote:
Show nested quote +
On December 22 2016 10:59 travis wrote:
cool, got it working

is it typical for the listener to seem to refresh very slowly... or like, inconsistently?

It doesn't really register all my clicks, especially if I click quickly (not that it matters for my project)


Next time try using the language without garbage collector

I hope you know that what you are saying is bullshit and your post was in jest, but just in case: GarbageCollection has nothing to do with that. The default GarbageCollector (GC) runs in a background task and is inactive in most cases. For most applications like the one travis is building the GC shouldnt even be noticeable when doing work. Even if it was actually noticeable that wouldnt result in missed inputs but rather delayed response times. These usually manifest as lag spikes though rather than constant delays.
Manit0u
Profile Blog Joined August 2004
Poland17429 Posts
December 22 2016 11:22 GMT
#16366
That's why I used the smiley face there
Time is precious. Waste it wisely.
phar
Profile Joined August 2011
United States1080 Posts
December 22 2016 17:17 GMT
#16367
On December 22 2016 06:04 mantequilla wrote:
Show nested quote +
On December 22 2016 02:15 phar wrote:
The generic tech for converting a digital signal to audio is a DAC, and to sound it's, well, it's called a speaker, but you probably already knew that. Here's a simple ish guide:

https://www.google.com/amp/www.instructables.com/id/Arduino-Basics-Making-Sound/?amp_page=true?client=ms-android-google


Ahh fucking AMP links sorry.

Let me know if I'm misunderstanding something about your question.


noo noo I won't be making sound using arduino

it will be like this

microphone circuit sends analog signal to arduino
arduino processes it if necessary and sends data over lan to my pc
a program on my pc will play the sound

I'm only asking about the first part (listening to sound). Rest I can figure out.

OK gotcha. Well the reverse side of it you already have half of (microphone). The opposite of a DAC is an ADC, and Arduino probably had one built in. Likely all you're missing is some circuitry in the middle, maybe some op amps, resistors, etc to get enough gain. If you don't need anything fancy for clipping or what not, it should be not too hard. A basic op amp circuit to make 10-100-1000x gain is like first year EE lab stuff. Here's some potential starting points:

http://electronics.stackexchange.com/questions/16595/how-to-make-a-clean-amplified-microphone-analog-to-digital-conversion

I would guess it's also possible to use a transistor to get gain, though I'm less confident about that approach:

http://electronics.stackexchange.com/questions/36795/using-a-microphone-with-an-arduino


Last tip, software-wise. If you're using the built in ADC on the Arduino, idk if there's libraries to do all the sampling for you, or if you need to build that all from scratch. If you do need to build it from scratch, then you need to have some reasonable RTC (real time computing) logic built up. That is, you're gonna want to be sampling your analog signal very frequently and very regularly (however many samples per second, at a regular interval). You probably need good timing and interrupt logic there (though I've only had to do this stuff in more low level MCs, so maybe it's easier in Arduino).

Who after all is today speaking about the destruction of the Armenians?
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
Last Edited: 2016-12-22 17:30:19
December 22 2016 17:30 GMT
#16368
Okay so now my little gui is coming along

the idea is I just wanted to mess around with the traveling salesman problem. But I wanted a reasonable way to input nodes so my plan is to have this clickable graph, and each time a node is added (graph is clicked), the x and y coordinate of that node is stored. Using that information I will be able to get the "weight" (distance) between 2 nodes using pythagorean theorem. Then I will have this handy gui to display the results of any algorithms that are ran.

so, mush, I took what you gave me and made some small changes to suit my needs, then added a couple buttons to run the algorithms, and made a line appear to show the path of node insertion (just find it visually appealing). is it correct for me to add my buttons to the jframe?

+ Show Spoiler +


import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class ClickWindow {

public static void main(String[] args) {

EventQueue.invokeLater(() -> new ClickWindow());

}

private final JFrame frame = new JFrame();
public JButton bf = new JButton("Brute Force");
public JButton alg = new JButton("My Algorithm");

public ClickWindow() {

bf.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
bForce();

}
});

alg.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
myAlg();

}
});

// make sure the JVM ends when the frame is closed
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// use some arbitrary size for testing
frame.setSize(1280, 800);
// center the frame on screen
frame.setLocationRelativeTo(null);

// set our custom JPanel to be the content-pane (the root element) of
// our frame
frame.setContentPane(new ClickPanel());
frame.add(bf);
frame.add(alg);

// show the frame
frame.setVisible(true);
}

private void bForce() {

}

private void myAlg() {

}





public static class ClickPanel extends JPanel {

// holds coords of one node
public ArrayList<Integer> coords;
// arraylist of nodes
public static ArrayList<ArrayList<Integer>> nodes = new ArrayList<ArrayList<Integer>>();

private int x, y;

public ClickPanel() {
// A MouseAdapter is just an abstract class of MouseListener
// with empty implementations for all methods
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
// we check for left-click
if (SwingUtilities.isLeftMouseButton(e)) {
// we take the X- and Y-coordinates from the event
x = e.getX();
y = e.getY();

coords = new ArrayList<Integer>();
coords.add(x);
coords.add(y);
nodes.add(coords);

// we need to repaint our ClickPanel
// when we want to draw a new dot
repaint();
ClickPanel j = new ClickPanel();
}
}
});

}

public void paintComponent(Graphics g) {
// renders the border and background
super.paintComponent(g);
// renders our colored point
g.setColor(Color.RED);

// go through all the nodes and paint all their circles
for (ArrayList<Integer> c : nodes) {
int j = c.get(0);
int k = c.get(1);
g.fillOval(j, k, 10, 10);
}

int lastj = -1;
int lastk = -1;

// go through all the nodes and connect them with a path in order of
// insertion
for (ArrayList<Integer> c : nodes) {
// gets the "to" node
int j = c.get(0);
int k = c.get(1);

if (lastj != -1) {
g.drawLine(lastj, lastk, j, k);
}

// used to get the "from" node
lastj = j;
lastk = k;
}

}

}

}

Neshapotamus
Profile Blog Joined May 2006
United States163 Posts
December 22 2016 17:36 GMT
#16369
Travis - are you building the GUI for fun or for an assignment?
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
December 22 2016 17:41 GMT
#16370
this one's for fun

I think I am getting some sort of book on python around christmas and I might start some other book soon too but I figured until then this might be a fun project
RoomOfMush
Profile Joined March 2015
1296 Posts
December 22 2016 17:54 GMT
#16371
@travis:
There are a few odd things with your code:
1) Why do you create a new ClickPanel each time the mouse is pressed? You just create it and then throw it away. Just remove that line.

2) Why is your field "nodes" static? That looks like a major source for potential bugs in the future. Remove that static keyword.

3) Although it works to store a List of Lists with each inner List having exactly 2 Integer elements it really isnt a "nice" way of doing things. Why not use the Point class as mentioned by Blisse.

4) The fields "x" and "y" arent really needed either. They are only ever used like local variables. Get rid of them.

5) Your ActionListener's can be converted to Lambda-Expressions for better readability. But this is more personal preference rather than objective improvement.

6) Your paintComponent method works, but it could be slightly improved. Right now you are iterating your nodes List twice. You can do all the drawing with only 1 iteration.

Here is an improved version which takes the above mentioned points into account:
+ Show Spoiler +
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class ClickWindow {

public static void main(String[] args) {
EventQueue.invokeLater(() -> new ClickWindow());
}

private final JFrame frame = new JFrame();

public ClickWindow() {
JButton bf = new JButton("Brute Force");
bf.addActionListener(e -> bForce());

JButton alg = new JButton("My Algorithm");
alg.addActionListener(e -> myAlg());

// make sure the JVM ends when the frame is closed
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// use some arbitrary size for testing
frame.setSize(1280, 800);
// center the frame on screen
frame.setLocationRelativeTo(null);

// set our custom JPanel to be the content-pane (the root element) of
// our frame
frame.setContentPane(new ClickPanel());
frame.add(bf);
frame.add(alg);

// show the frame
frame.setVisible(true);
}

private void bForce() {

}

private void myAlg() {

}

public static class ClickPanel extends JPanel {
// arraylist of nodes
private final ArrayList<Point> nodes = new ArrayList<>();

public ClickPanel() {
// A MouseAdapter is just an abstract class of MouseListener
// with empty implementations for all methods
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
// we check for left-click
if (SwingUtilities.isLeftMouseButton(e)) {
nodes.add(e.getPoint());
// we need to repaint our ClickPanel
// when we want to draw a new dot
repaint();
}
}
});
}

@Override
public void paintComponent(Graphics g) {
// renders the border and background
super.paintComponent(g);
// renders our colored point
g.setColor(Color.RED);

Point previousPoint = null;
// go through all the nodes and paint all their circles
// also draw lines between them
for (Point currentPoint : nodes) {
int currentX = currentPoint.x;
int currentY = currentPoint.y;
// draw line for every 2 points
if (previousPoint != null) {
g.drawLine(previousPoint.x, previousPoint.y, currentX, currentY);
}
// we want to draw the oval centered on the point
int ovalSize = 10;
int ovalX = currentX - ovalSize / 2;
int ovalY = currentY - ovalSize / 2;
g.fillOval(ovalX, ovalY, ovalSize, ovalSize);
// The current point becomes the previous point of the next iteration
previousPoint = currentPoint;
}
}
}
}


and lastly:
7) Adding your buttons directly to the JPanel might not give you the results you are looking for. In Swing you are supposed to use LayoutManagers to position components on screen.
By default a JPanel uses the FlowLayout as its layout. This is why your JButtons appear next to each other at the top of the JFrame. Thats the default behaviour of the FlowLayout. If this is enough for your needs you can continue doing it this way. At some point in the future you will probably want to use a more sophisticated GUI and you will need to use nested JPanels with different LayoutManagers. People rarely build this by hand. The most common approach is to use a tool to help you build your GUI. The WindowBuilder of Eclipse (its a plugin) works rather well with Swing. It has a few bugs and it has its limitations but for simple GUI's is more than enough. Other IDE's also have their own Swing Editors but I dont know them all that well.
Neshapotamus
Profile Blog Joined May 2006
United States163 Posts
Last Edited: 2016-12-22 18:03:13
December 22 2016 18:00 GMT
#16372
I would suggest that you invest some time in html, javascript, css and d3 to build visualizations.

Here is my reasoning
1. It's easily shareable
2. Html and javascript are used much more in the real world than java UI applications
3. You're most likely going to learn it anyways
4. It's much easier to write it in a framework that is designed for visualizations.
5. You will get much more support
6. You will learn later to decompose your code anyways. UI should be separate. Styling should be separate. Logic should be separate and etc...

Warning: There is a bit of a learning curve with d3.
Here is someone who wrote a TSP on a map. http://joneisen.me/d3-tsp-demo/
You can find his code here. It is not very complicated. https://github.com/yanatan16/d3-tsp-demo

Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
December 22 2016 18:06 GMT
#16373
1 - oops, that wasn't supposed to still be in there

2 - okay

3 - yeah it didn't seem nice. i missed where blisse talked about that, sorry blisse. I considred making a class for it myself but then didn't out of laziness. I'll use point.

4 - im not sure but i think I am going to end up using them a bunch more in there

5 - I have no idea what a lambda expression is. glancing at it now. it's a little confusing. I'll read about it later.

6 - oh duh yeah i could huh

7) I added it to the jframe not the jpanel, right? Is that what you meant ? I see where you are going with this. Sounds like a pain in the neck for a project like this, so I won't do that here.
RoomOfMush
Profile Joined March 2015
1296 Posts
December 22 2016 18:17 GMT
#16374
On December 23 2016 03:06 travis wrote:
4 - im not sure but i think I am going to end up using them a bunch more in there

It is still better to use as many local variables as possible. Any state introduces potential for errors. Errors which might take a very long time to find and fix some time in the future. With local variables you have the added bonus of static code analysis by your compiler or IDE.
Having fields for something that should be local means you might be using garbage data left from a previous invocation at some point. It is the same reasoning for your static field which we made non-static.
Local variables might also give marginally better performance, but that is not quite important for you right now.

On December 23 2016 03:06 travis wrote:
5 - I have no idea what a lambda expression is. glancing at it now. it's a little confusing. I'll read about it later.

Lambda-Expressions are a feature introduced in Java8. They are just syntactic sugar to make anonymous inner classes which implement interfaces with only a single abstract method less verbose. In this particular piece of code we use them at 2 locations:
1) In the main method we pass a new instance of an annonymous class which implements "Runnable" to the "invokeLater" method of "EventQueue".
2) We implement "ActionListener" with as Lambdas which we pass to our JButtons.

They do the same thing (functionally speaking) as the longer, written out version you had before. However there is a possibility for the compiler and the JIT to optimize lambdas better.

On December 23 2016 03:06 travis wrote:
7) I added it to the jframe not the jpanel, right? Is that what you meant ? I see where you are going with this. Sounds like a pain in the neck for a project like this, so I won't do that here.

You can not add anything to a JFrame. The JFrame has one Container (which is a superclass of JPanel) which it uses as its so called contentPane. When you call "add" on the JFrame the JFrame will delegate to its contentPane and just pass any parameters through. This means you really add to your ClickPanel instead because the ClickPanel is the contentPane for your JFrame.
Acrofales
Profile Joined August 2010
Spain18114 Posts
December 22 2016 18:30 GMT
#16375
To be fair, Lambda expressions are a lot more than syntactic sugar. They end up being mostly syntactic sugar in Java, but they are the bread and butter of functional programming.
meatpudding
Profile Joined March 2011
Australia520 Posts
December 22 2016 22:35 GMT
#16376
Are we having UI wars? I declare that the best cross-platform solution is Qt with c++.
Be excellent to each other.
FiWiFaKi
Profile Blog Joined February 2009
Canada9859 Posts
December 23 2016 04:09 GMT
#16377
Hey guys, I have an HTML question for you guys.

I'm trying to create a Liquipedia page for a BW tournament I'd like to organize: http://wiki.teamliquid.net/starcraft/ShieldBattery_Showdown

So everything is fine, I found a template that I'm trying to use to create an 8 by 8 round robin crosstable. So the issue is that originally, the template is created such that you enter team names, and then they'll be linked to a picture of their logo. Now this is all dandy, but I don't want the teams to link to anything, I would simply like to put players names in there, as well as fix the length of the cells (before this was a non-issue) since all logos were of the same size.

So I looked around, and found the template on Liquipedia here:
http://wiki.teamliquid.net/starcraft/Template:DetailedCrossTable

I then clicked on edit on the top, and holy shit, so much code, and I don't know anything. What I'm trying to do is duplicate that template, and then edit it such that when I enter a Player's name, it will display only the name, and not redirect me to the image that it's trying to find in the picture directory. On top of that, it'd be a big plus if I could fix the length (or width I guess) of all the rows, instead of having them dynamically change with the length of name in the column.

What would I need to do to achieve this as a programming super newbie? Please and thank you
In life, the journey is more satisfying than the destination. || .::Entrepreneurship::. Living a few years of your life like most people won't, so that you can spend the rest of your life like most people can't || Mechanical Engineering & Economics Major
tofucake
Profile Blog Joined October 2009
Hyrule19151 Posts
December 23 2016 04:24 GMT
#16378
You use (Wiki)Template:PlayerCrossTable
Liquipediaasante sana squash banana
FiWiFaKi
Profile Blog Joined February 2009
Canada9859 Posts
Last Edited: 2016-12-23 04:43:25
December 23 2016 04:26 GMT
#16379
On December 23 2016 13:24 tofucake wrote:
You use layerCrossTable on Liquipedia" target="_blank" href="https://liquipedia.net/starcraft/TemplatelayerCrossTable">(Wiki)TemplatelayerCrossTable


Damn you Darking:

"There are no templates with names instead of logos that I know of."

Lol, thanks Tofucake. I finished setting it up already! You made it go from a 4 hour job to 15 minutes <3
In life, the journey is more satisfying than the destination. || .::Entrepreneurship::. Living a few years of your life like most people won't, so that you can spend the rest of your life like most people can't || Mechanical Engineering & Economics Major
3FFA
Profile Blog Joined February 2010
United States3931 Posts
Last Edited: 2016-12-24 05:27:41
December 24 2016 05:27 GMT
#16380
Does anyone here do web development and if so, what are your thoughts on http://www.theodinproject.com/ ?
"As long as it comes from a pure place and from a honest place, you know, you can write whatever you want."
Prev 1 817 818 819 820 821 1032 Next
Please log in or register to reply.
Live Events Refresh
OSC
11:30
Mid Season Playoffs
Krystianer vs PercivalLIVE!
WardiTV1063
TKL 199
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
TKL 199
SteadfastSC 109
Rex 91
StarCraft: Brood War
Calm 3367
Bisu 2918
Rain 2430
Hyuk 1473
Horang2 984
Flash 514
Soma 498
Stork 393
Rush 303
Soulkey 121
[ Show more ]
Backho 114
Barracks 58
sas.Sziky 46
hero 38
Aegong 27
zelot 22
sSak 21
Terrorterran 20
Rock 19
Killer 16
Dota 2
Gorgc3152
qojqva2018
Dendi1105
BananaSlamJamma123
XcaliburYe100
Other Games
hiko638
Sick526
DeMusliM442
Hui .346
Fuzer 199
Mew2King94
QueenE50
Organizations
StarCraft: Brood War
Kim Chul Min (afreeca) 9
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 16 non-featured ]
StarCraft 2
• poizon28 22
• intothetv
• AfreecaTV YouTube
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• HerbMon 10
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• C_a_k_e 3021
• WagamamaTV453
League of Legends
• Nemesis4037
• TFBlade977
Upcoming Events
Tenacious Turtle Tussle
7h 31m
The PondCast
18h 31m
RSL Revival
18h 31m
Solar vs Zoun
MaxPax vs Bunny
Kung Fu Cup
20h 31m
WardiTV Korean Royale
20h 31m
PiGosaur Monday
1d 9h
RSL Revival
1d 18h
Classic vs Creator
Cure vs TriGGeR
Kung Fu Cup
1d 20h
CranKy Ducklings
2 days
RSL Revival
2 days
herO vs Gerald
ByuN vs SHIN
[ Show More ]
Kung Fu Cup
2 days
IPSL
3 days
ZZZero vs rasowy
Napoleon vs KameZerg
BSL 21
3 days
Tarson vs Julia
Doodle vs OldBoy
eOnzErG vs WolFix
StRyKeR vs Aeternum
Sparkling Tuna Cup
3 days
RSL Revival
3 days
Reynor vs sOs
Maru vs Ryung
Kung Fu Cup
3 days
WardiTV Korean Royale
3 days
BSL 21
4 days
JDConan vs Semih
Dragon vs Dienmax
Tech vs NewOcean
TerrOr vs Artosis
IPSL
4 days
Dewalt vs WolFix
eOnzErG vs Bonyth
Wardi Open
4 days
Monday Night Weeklies
5 days
WardiTV Korean Royale
5 days
The PondCast
6 days
Liquipedia Results

Completed

Proleague 2025-11-07
Stellar Fest: Constellation Cup
Eternal Conflict S1

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
SOOP Univ League 2025
YSL S2
BSL Season 21
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual

Upcoming

SLON Tour Season 2
BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
RSL Revival: Season 3
META Madness #9
BLAST Bounty Winter 2026
BLAST Bounty Winter 2026: Closed Qualifier
eXTREMESLAND 2025
ESL Impact League Season 8
SL Budapest Major 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.