• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 22:10
CET 04:10
KST 12:10
  • 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
RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10
Community News
Weekly Cups (Nov 24-30): MaxPax, Clem, herO win2BGE Stara Zagora 2026 announced15[BSL21] Ro.16 Group Stage (C->B->A->D)4Weekly Cups (Nov 17-23): Solar, MaxPax, Clem win3RSL Season 3: RO16 results & RO8 bracket13
StarCraft 2
General
BGE Stara Zagora 2026 announced Weekly Cups (Nov 24-30): MaxPax, Clem, herO win SC2 Proleague Discontinued; SKT, KT, SGK, CJ disband Information Request Regarding Chinese Ladder SC: Evo Complete - Ranked Ladder OPEN ALPHA
Tourneys
$5,000+ WardiTV 2025 Championship Constellation Cup - Main Event - Stellar Fest RSL Revival: Season 3 Tenacious Turtle Tussle [Alpha Pro Series] Nice vs Cure
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 502 Negative Reinforcement Mutation # 501 Price of Progress Mutation # 500 Fright night Mutation # 499 Chilling Adaptation
Brood War
General
Which season is the best in ASL? [ASL20] Ask the mapmakers — Drop your questions BW General Discussion FlaSh's Valkyrie Copium BGH Auto Balance -> http://bghmmr.eu/
Tourneys
[Megathread] Daily Proleagues [BSL21] RO16 Group B - Sunday 21:00 CET [BSL21] RO16 Group C - Saturday 21:00 CET Small VOD Thread 2.0
Strategy
Game Theory for Starcraft How to stay on top of macro? Current Meta PvZ map balance
Other Games
General Games
Stormgate/Frost Giant Megathread The Perfect Game Path of Exile Nintendo Switch Thread Should offensive tower rushing be viable in RTS games?
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
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread
Community
General
Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread US Politics Mega-thread The Big Programming Thread Artificial Intelligence Thread
Fan Clubs
White-Ra Fan Club
Media & Entertainment
[Manga] One Piece Movie Discussion! Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion NBA General Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Where to ask questions and add stream? The Automated Ban List
Blogs
James Bond movies ranking - pa…
Topin
Esports Earnings: Bigger Pri…
TrAiDoS
Thanks for the RSL
Hildegard
Saturation point
Uldridge
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1388 users

The Big Programming Thread - Page 379

Forum Index > General Forum
Post a Reply
Prev 1 377 378 379 380 381 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.
CorsairHero
Profile Joined December 2008
Canada9491 Posts
October 22 2013 01:16 GMT
#7561
On October 22 2013 09:59 icystorage wrote:
guys. i want to google something but i dont know the keywords. what i want to do is that i want a checker that checks if my { ends with }.

is it too confusing? i forgot what that is called >.>

nvm. ctrl+f does the trick lol

why not just compile it or you can also use a text editor that does bracket highlighting
© Current year.
tofucake
Profile Blog Joined October 2009
Hyrule19167 Posts
October 22 2013 02:16 GMT
#7562
brace matching
Liquipediaasante sana squash banana
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
October 22 2013 04:24 GMT
#7563
Hey, if any of you guys did the Berkeley edX graphics course assignment, could you send me your gluLookAt() function? I got all the other parts working, I just couldn't get the lookAt to display the lamp. Amazingly I still got 1 correct picture submitted. It was kinda frustrating :/
There is no one like you in the universe.
obesechicken13
Profile Blog Joined July 2008
United States10467 Posts
October 22 2013 05:35 GMT
#7564
Do edX classes have forums? I'd go there first.
I think in our modern age technology has evolved to become more addictive. The things that don't give us pleasure aren't used as much. Work was never meant to be fun, but doing it makes us happier in the long run.
phar
Profile Joined August 2011
United States1080 Posts
October 22 2013 05:41 GMT
#7565
On October 22 2013 07:24 waxypants wrote:
Show nested quote +
On October 22 2013 07:17 Yoshi- wrote:
I think the only appropriate solution to any of these problems, would be to reconsider why you would even run into them, since pretty much all of them are so absurd that they only should occur in terrible design.


Because they are fun and they stretch your brain a little bit? The process and analysis/comparison of different solutions are more important than the solution itself in terms of learning. Although, coming up with the cleverest/fastest solution is where the fun part comes in.

The disappointing part is that a lot of companies use these kinds of problems for interview questions. It makes for a really bad signal. All you learn is whether or not the candidate knows how to twiddle bits (which is useless in almost all areas of software), or is good at figuring out trivia kinds of tricks. You don't learn anything useful about whether or not the candidate can actually code, or can think about realistic system designs. It's basically a waste of time in an interview.

Outside of an interview setting they make fun brain teasers though. For example, how do you compute the max of two integers using no branch/jump/etc (basically no if statements, no ? : business).
Who after all is today speaking about the destruction of the Armenians?
Cyx.
Profile Joined November 2010
Canada806 Posts
October 22 2013 06:11 GMT
#7566
On October 22 2013 13:24 Blisse wrote:
Hey, if any of you guys did the Berkeley edX graphics course assignment, could you send me your gluLookAt() function? I got all the other parts working, I just couldn't get the lookAt to display the lamp. Amazingly I still got 1 correct picture submitted. It was kinda frustrating :/


Hey, I'm doing that course right now and I just did that assignment ^^ I will pm you the code for that since it's past due already with some comments to explain some things I got wrong the first few times.
waxypants
Profile Blog Joined September 2009
United States479 Posts
October 22 2013 17:48 GMT
#7567
On October 22 2013 14:41 phar wrote:
Show nested quote +
On October 22 2013 07:24 waxypants wrote:
On October 22 2013 07:17 Yoshi- wrote:
I think the only appropriate solution to any of these problems, would be to reconsider why you would even run into them, since pretty much all of them are so absurd that they only should occur in terrible design.


Because they are fun and they stretch your brain a little bit? The process and analysis/comparison of different solutions are more important than the solution itself in terms of learning. Although, coming up with the cleverest/fastest solution is where the fun part comes in.

The disappointing part is that a lot of companies use these kinds of problems for interview questions. It makes for a really bad signal. All you learn is whether or not the candidate knows how to twiddle bits (which is useless in almost all areas of software), or is good at figuring out trivia kinds of tricks. You don't learn anything useful about whether or not the candidate can actually code, or can think about realistic system designs. It's basically a waste of time in an interview.

Outside of an interview setting they make fun brain teasers though. For example, how do you compute the max of two integers using no branch/jump/etc (basically no if statements, no ? : business).


If the only solution is a bit trick, and/or the interviewer puts huge weight only on coming up with that solution, then it's bad yes. The process is the most important part, the clever solution is a bonus.


#include <stdio.h>

#define SIGN_BIT(x) ((x >> (8*sizeof(x) - 1)) & 1)

int max(int a, int b) {
int pair[] = {a, b};
return pair[SIGN_BIT(a-b)];
}

void main() {
printf("%d\n", max(5, 2));
printf("%d\n", max(-9, -7));
printf("%d\n", max(-9, 8));
printf("%d\n", max(8, -9));
}



Output:
5
-7
8
8

mayhem123
Profile Blog Joined May 2010
United States101 Posts
October 22 2013 19:41 GMT
#7568
Anyone have an integer validation function for c++? I am having trouble with mine in that if i input 123abc it will pass it as an integer. Also mine reads one character at a time so if I put it into a loop it will prompt the user to enter another number x amount of times depending on how many characters were entered. For example, if "abc" was entered, it would display
You did not enter a number.
Enter a number
You did not enter a number
Enter a number
You did not enter a number
Enter a number
My function: + Show Spoiler +

bool numValidate (string xString)
{
int xInt = 0;
char xChar;
int strLength;
bool boolDigit = false;


strLength = xString.length();

for (int i = 0, ii = strLength-1; i < strLength; i++, ii--)
{ xChar = xString.at(i);
boolDigit = isdigit(xChar);

if (boolDigit)
{ xInt += ((int)(xChar) - (int)('0')) * pow(10.0, (double)(ii)) ;
}
else
{ cout << "You did not enter a number" << endl;
break;
}
}
return boolDigit;
}

The loop: + Show Spoiler +

bool bd = true;
do
{
cout << "Enter number" << endl;
cin >> n;
string a = to_string(n);
bd = numValidate(a);
cin.clear();
cin.ignore();
}
while (bd == false);
bangsholt
Profile Joined June 2011
Denmark138 Posts
October 22 2013 19:57 GMT
#7569
If you can use c++11 go for http://en.cppreference.com/w/cpp/string/basic_string/stol

Alternatively, use strtol from the cstdlib - http://en.cppreference.com/w/cpp/string/byte/strtol - remember to check the return value for strtol though or you may get some surprises.
Tobberoth
Profile Joined August 2010
Sweden6375 Posts
October 22 2013 20:22 GMT
#7570
Shouldn't isdigit be enough?

bool found_nondigit = false;
for (int i = 0; i < strLength; i++)
{
if (isdigit(xString.at(i)) != 0)
{
found_nondigit = true;
}
}

return !found_nondigit;
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
October 22 2013 20:33 GMT
#7571
Use the code tag on TL: [ code][ /code] without the extra spaces of course. Spoiler tag is not readable.

If you just want to USE a integer validation function, by all means use an existing one like those bangsholt mentioned.

If you want to implement your own function for practice purposes, you'll need to fix a few things.
If all you want to do is validation, get rid of the whole number evaluation stuff.
If you find a non-digit, you can use break; to exit the loop immediately.
Don't call your variables "xTypename". That doesnt say anything. Give them names that describe their use or purpose.
If you want to calculate the number, start with int result = 0; and each run through the loop first multiply result by 10, then add the value of the next digit. Gets rid of stupid pow() and double casts.
Don't put any console output into the function.
Don't use multiple loop variables, unreadable. Rather calculate the second one based on the first one inside the loop, though it's just not necessary here.
If you have a good reason to disagree with the above, please tell me. Thank you.
AKnopf
Profile Blog Joined March 2011
Germany259 Posts
Last Edited: 2013-10-22 21:05:05
October 22 2013 21:02 GMT
#7572
On October 21 2013 10:47 darkness wrote:
I'm still trying to figure out composition in practice not theory.

So, for example:


private SomeClass sc;

// constructor
public Main(SomeClass sc) {
this.sc = sc;
}

public int getSomeValue() {
// get some value from SomeClass
return sc.value;
}


Is SomeClass considered part of composition?


I know this is a bit old, but it was not answered deeply enough for my taste.

Composition means that the referencing class does not only hold an instance of the referenced class but also is responsible for creating such instance(s).

Your example is an aggregation, where the instance of the referenced class can exist with or without the referencing instance.

Example:
A room can only exist within a certain building. Therefore it would be suitable to have buildings being composed of rooms.
A chair can exist within a room, but also outside of that room. Therefore it would be suitable to have a room aggregate chair(s).

Read more:
https://en.wikipedia.org/wiki/Class_diagram#Association



Edit: @waxypants
You might like project euler (https://projecteuler.net/). Have fun stretching your brain until it hurts. :D
The world - its a funny place
Cyx.
Profile Joined November 2010
Canada806 Posts
October 22 2013 21:19 GMT
#7573
On October 22 2013 08:38 tofucake wrote:
Show nested quote +
On October 22 2013 07:46 waxypants wrote:
A quick search turned up TCC (tiny c compiler). I downloaded it, it's a couple megs and compiled HelloWorld just fine on Windows! I imagine though that it has some quirks, so you're better off using MingW or gcc if you want to avoid a bloated install of MSVC with IDE. For the record, I've never used MingW, but I assume it's good and relatively lightweight.

mingw is great. There's a bit more hassle setting it up compared to Cygwin, and it can be weird to use, but the end product is better imo

I also have used MinGW with no problems pretty much ever since I started programming in C/C++ - we use g++ at school since they have linux labs, and the newer labs have MSVC, but I've always found MinGW way nicer and smaller and less bloated than both of those (or at least simpler to install and use than Cygwin lol).
wherebugsgo
Profile Blog Joined February 2010
Japan10647 Posts
October 22 2013 23:36 GMT
#7574
Haha it's funny to see people here on berkeley's 184 edx offering when I am in the class proper here at Berkeley.

Just finished writing the raytracer yesterday, fun project :p

On October 22 2013 07:17 Yoshi- wrote:
I think the only appropriate solution to any of these problems, would be to reconsider why you would even run into them, since pretty much all of them are so absurd that they only should occur in terrible design.


First of all, a lot of people (like me) simple like solving problems like these.

Secondly, I don't know what it's like where you are from, but in Silicon Valley these types of questions come up routinely all the time in interviews for software engineering companies and at career fairs hosted by companies at universities.

In fact, the problem you were commenting about was given to me in an interview I had.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
Last Edited: 2013-10-23 00:22:02
October 23 2013 00:19 GMT
#7575
On October 23 2013 06:02 AKnopf wrote:
Show nested quote +
On October 21 2013 10:47 darkness wrote:
I'm still trying to figure out composition in practice not theory.

So, for example:


private SomeClass sc;

// constructor
public Main(SomeClass sc) {
this.sc = sc;
}

public int getSomeValue() {
// get some value from SomeClass
return sc.value;
}


Is SomeClass considered part of composition?


I know this is a bit old, but it was not answered deeply enough for my taste.

Composition means that the referencing class does not only hold an instance of the referenced class but also is responsible for creating such instance(s).

Your example is an aggregation, where the instance of the referenced class can exist with or without the referencing instance.

Example:
A room can only exist within a certain building. Therefore it would be suitable to have buildings being composed of rooms.
A chair can exist within a room, but also outside of that room. Therefore it would be suitable to have a room aggregate chair(s).

Read more:
https://en.wikipedia.org/wiki/Class_diagram#Association



Edit: @waxypants
You might like project euler (https://projecteuler.net/). Have fun stretching your brain until it hurts. :D


So if it there is 'new Class()', then it's true composition? I don't understand what you exactly mean.
mayhem123
Profile Blog Joined May 2010
United States101 Posts
October 23 2013 00:45 GMT
#7576
Okay so i got my validation to work, but is there anywhere to make it so the user does not have to press enter twice to move on to the next step?

bool bd = true;
do
{
cout << "How many players want to play?" << endl;
cin >> n;
string a = to_string(n);
bd = numValidate(a);
cin.clear();
cin.ignore();
if (n == 0)
{
cout << "End of game." << endl;
break;
}
}
while (bd == false || n < 1 || n > 10);

Like after inputting a correct value, the user has to press enter again for the next prompt:
How many players want to play?
1

Enter name of player:
Any way to fix that?
tec27
Profile Blog Joined June 2004
United States3702 Posts
October 23 2013 05:27 GMT
#7577
On October 23 2013 06:02 AKnopf wrote:
Show nested quote +
On October 21 2013 10:47 darkness wrote:
I'm still trying to figure out composition in practice not theory.

So, for example:


private SomeClass sc;

// constructor
public Main(SomeClass sc) {
this.sc = sc;
}

public int getSomeValue() {
// get some value from SomeClass
return sc.value;
}


Is SomeClass considered part of composition?


I know this is a bit old, but it was not answered deeply enough for my taste.

Composition means that the referencing class does not only hold an instance of the referenced class but also is responsible for creating such instance(s).

Your example is an aggregation, where the instance of the referenced class can exist with or without the referencing instance.

Example:
A room can only exist within a certain building. Therefore it would be suitable to have buildings being composed of rooms.
A chair can exist within a room, but also outside of that room. Therefore it would be suitable to have a room aggregate chair(s).

Read more:
https://en.wikipedia.org/wiki/Class_diagram#Association

When most people talk about composition, they do not mean what you're talking about. Most people also do not talk in terms of UML, or use UML on a daily basis, so your link is also fairly irrelevant, and not indicative of what the terms mean in a non-UML context. Composition in a general software development context simply means an object that defers to other objects to achieve certain functionality, rather than inheriting and implementing that functionality itself. Whether it creates the objects its deferring to is pretty irrelevant, and in general having it do so makes the code harder to change, and especially harder to test.
Can you jam with the console cowboys in cyberspace?
Tobberoth
Profile Joined August 2010
Sweden6375 Posts
Last Edited: 2013-10-23 07:20:00
October 23 2013 07:10 GMT
#7578
On October 23 2013 09:45 adioN wrote:
Okay so i got my validation to work, but is there anywhere to make it so the user does not have to press enter twice to move on to the next step?

bool bd = true;
do
{
cout << "How many players want to play?" << endl;
cin >> n;
string a = to_string(n);
bd = numValidate(a);
cin.clear();
cin.ignore();
if (n == 0)
{
cout << "End of game." << endl;
break;
}
}
while (bd == false || n < 1 || n > 10);

Like after inputting a correct value, the user has to press enter again for the next prompt:
How many players want to play?
1

Enter name of player:
Any way to fix that?

I think cin.ignore(); is only ignoring 1 character. Use this instead:
cin.ignore(numeric_limits<streamsize>::max());

Should be noted that this might only explain why there's an extra newline. If the user literally has to press enter twice, there's some extra cin >> or similar in your code which you aren't showing in your example.

It's always good to post minimal working examples when you need help. Remove all the code which doesn't affect your issue and show all the code. That way, someone can copy your code and test it themselves. Here's a minimal code example showing that there should be no extra enters pressed:

#include <iostream>
using namespace std;

int main()
{
cout << "Hello." << endl;
int a;
cin >> a;
cout << "Hi." << endl;
}


Output, pressing once enter after writing 10:
Hello.
10
Hi.
v0rtex
Profile Joined November 2011
123 Posts
October 23 2013 07:32 GMT
#7579
I'm interested in learning game programming. My main language is Java and I have dabbled in C++ for a while. I wouldn't say im a novice coder but I have mainly focused on Java due to studies. Should I learn Android game programming (I have already done 2D games with Swing etc...) or should I focus on C++ and learn SDL? My goal is to eventually become a game developer but I am unsure of what to focus on now? I think android is good as I can get apps out there and expand my portfolio plus it seems easier as Java is my main language? Or should I not take this detour and just focus on C++ and SDL then go into OpenGL?

Any advice is appreciated. Thanks!
JD, Snute, TLO, Soulkey, $o$, HerO, Suppy, Hendralisk, MKP, Maru
Tobberoth
Profile Joined August 2010
Sweden6375 Posts
Last Edited: 2013-10-23 07:39:44
October 23 2013 07:38 GMT
#7580
On October 23 2013 16:32 v0rtex wrote:
I'm interested in learning game programming. My main language is Java and I have dabbled in C++ for a while. I wouldn't say im a novice coder but I have mainly focused on Java due to studies. Should I learn Android game programming (I have already done 2D games with Swing etc...) or should I focus on C++ and learn SDL? My goal is to eventually become a game developer but I am unsure of what to focus on now? I think android is good as I can get apps out there and expand my portfolio plus it seems easier as Java is my main language? Or should I not take this detour and just focus on C++ and SDL then go into OpenGL?

Any advice is appreciated. Thanks!

I guess it depends on what you want to do. If you want to work at a company doing cellphone games, android is obviously the way to go. If you want to work on PC/Console AAA titles, C++ will probably be more important to know. Java is just not really useful for games, it's so rare to use it. I would assume most "real" commercial android games are programmed in other languages than java, such as C++.

If I were you, I would go with C++ and SFML. SDL works I guess, but SFML is just much cleaner and powerful, and modern for that matter.
Prev 1 377 378 379 380 381 1032 Next
Please log in or register to reply.
Live Events Refresh
PiGosaur Monday
01:00
#60
PiGStarcraft569
SteadfastSC141
CranKy Ducklings129
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
PiGStarcraft569
SteadfastSC 141
Nathanias 77
RuFF_SC2 1
StarCraft: Brood War
Artosis 744
Noble 18
Icarus 3
Dota 2
monkeys_forever252
League of Legends
C9.Mang0356
Other Games
summit1g13405
JimRising 636
WinterStarcraft191
ViBE144
Mew2King27
CosmosSc2 20
Organizations
Other Games
gamesdonequick1147
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 15 non-featured ]
StarCraft 2
• Hupsaiya 76
• intothetv
• AfreecaTV YouTube
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• Azhi_Dahaki9
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Stunt200
• Lourlo122
Other Games
• Scarra1321
Upcoming Events
Wardi Open
8h 50m
StarCraft2.fi
13h 50m
Replay Cast
20h 50m
The PondCast
1d 6h
OSC
1d 12h
Demi vs Mixu
Nicoract vs TBD
Babymarine vs MindelVK
ForJumy vs TBD
Shameless vs Percival
Replay Cast
1d 20h
Korean StarCraft League
2 days
CranKy Ducklings
3 days
SC Evo League
3 days
BSL 21
3 days
Sziky vs OyAji
Gypsy vs eOnzErG
[ Show More ]
OSC
3 days
Solar vs Creator
ByuN vs Gerald
Percival vs Babymarine
Moja vs Krystianer
EnDerr vs ForJumy
sebesdes vs Nicoract
Sparkling Tuna Cup
4 days
OSC
4 days
BSL 21
4 days
Bonyth vs StRyKeR
Tarson vs Dandy
Replay Cast
5 days
Wardi Open
5 days
StarCraft2.fi
5 days
Replay Cast
5 days
StarCraft2.fi
6 days
PiGosaur Monday
6 days
Liquipedia Results

Completed

Proleague 2025-11-30
RSL Revival: Season 3
Light HT

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
YSL S2
BSL Season 21
CSCL: Masked Kings S3
Slon Tour Season 2
Acropolis #4 - TS3
META Madness #9
SL Budapest Major 2025
ESL Impact League Season 8
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

Upcoming

BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
Kuram Kup
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 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.