[Complete] The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Moderator: Forum Moderators

Post Reply
sidzej
Posts: 20
Joined: August 11th, 2008, 10:49 am

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by sidzej »

grzywacz wrote:So, why can't sidzej run it? How does having it run by anyone else prevent the program from outputting hardcoded matchups ? :D
I know this question was an ironic question with a intention to ask in a matter when a question is some sort of a little joke or a funny sentence, but yes - I can run it (and I actually did run it a lot of times for testing purpose), and I can run it multiple times to make the match-ups I want to be created as torunament shedule to achieve my wish-to-have result and after that post it, but I think it will be beter that a neutral person that is not involved in the torunament will run the program and show the output to all of us. Of course I would not run it multiple times if I would run it myself to make the Grand Tag Lottery, but than who would believe me that I didn't run it multiple times and really took the 1st result that it made? And even if everyone would believe me in their inner souls hidden deep under the brain process that can be controlled they would think that I do not shown the first result.
neki wrote:Hm... Match-ups ?! Shall I understand you experience unforeseen technical problems ? Just tell, I could help, I am an experienced programmer...
Even if you would be the child of Trinity and Neo, had all certificates from cisco, microsoft and oracle, wear a pijama with a penguin design graphical patern and could guess a password by just clicking enter like they do in movies, you would not solve the problem of making something random in an environment in wich all people involved comunicates themselves using posts or chat via internet conections.

Btw. there are more problems doing this randomizing, somoene may hack Natasiel account and post results that will be best for him, the randomizing may be only look good in code, but in the .exe file it may done hardcoded, I can use the program as a virus (or someone could hack my account and replaced the file with own virus) and use this forum to spread it. Also there are problems that pseudo random generator are not actuall random generators, and it's only an ilussion that behaves like it would be very random. In overall, who knows if this randomization is ok or not - so much unknows, so much complications with every new though about it...

In overall I will post the code bellow and .exe of the program to people who are curious how the program exaclly works (of course it don't had to be the same program as in .exe file I may trick you, you would need to do reverse enginering to make sure they are the same). It's and windows console application written in C# in .NET. To run in you need windows OS with installed .NET on it, otherwise you will proably get an error (it may even be a virus that I could implement inside, who knows). Program starts windows console and writtes the results of lottery in it. It also generates .txt file with output result from console that is named TGT2Organiser.txt (it may be a virus also, who knows) and is created IN THE SAME DIRECTORY in wich the .exe file is placed. Since wesnoth forum do not allow to upload .exe files it is loaded as a .gz file, so to run it you need to become a programmer and do some computer science stuff like a real prO - you need to change the ".gz" extension to ".exe" to hack the program to make it run after dowlonading, otherwise you will get an error (or a virus, who knows).

Code: Select all

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
	
namespace TGT2Organiser
{
	class Program
	{
		public static void Main(string[] args)
		{
			List<string> teamsEURO = new List<string>();
			List<string> teamsUSASIA = new List<string>();
			List<string> firstRoundFixtures = new List<string>();
			
			List<string> homeAwayFixturesQuarterFinals = new List<string>();
			List<string> homeAwayFixturesSemiFinals = new List<string>();
			List<string> homeAwayFixturesFinal = new List<string>();
			
			StringBuilder programOutput = new StringBuilder();
			
			//adding teams to euro array
			teamsEURO.Add("CDeath (Faello & sidzej)");
			teamsEURO.Add("Noob Leavers (grzywacz & deekay)");
			teamsEURO.Add("S.P.A.M. (Radament & CragHack)");
			teamsEURO.Add("Ducks of Doom (alpha1 & MrHase)");
			teamsEURO.Add("Miso Hapi (tiboloid & tinytim)");
			teamsEURO.Add("Clong Man and the Gang (Just_end_turn & Rigor)");
			teamsEURO.Add("Nerds R US (The Black Sword & tekelili)");
			teamsEURO.Add("Random Noob Gamers (neki & Dauntless)");
			teamsEURO.Add("Entropy (Aisikle & ManicDementia)");
			teamsEURO.Add("North & South (plk2 & Nordmann)");
			teamsEURO.Add("CD (winddog & Chandler_Bing)");
			teamsEURO.Add("Mediterranean Piig (Xplorer & Lhurgoyfyy)");
			
			//adding teams to us-asia array
			teamsUSASIA.Add("NFC North (Cutler & Rodgers)");
			teamsUSASIA.Add("Instintkillerreturnsagainstronger (thefish & Cremember)");
			teamsUSASIA.Add("stardock (Merlin 74 & mjr)");
			teamsUSASIA.Add("Bastchi (Shachi & Bast)");
			
			//setting random number generator
			Random random = new Random();
			
			//getting random teams from euro time zone to create 1st round
			//fixtures (tournament tree positions 1-12)
			while(teamsEURO.Count > 0)
			{
				int randomTeamIndex = random.Next(teamsEURO.Count);
				string teamOne = teamsEURO[randomTeamIndex];
				teamsEURO.RemoveAt(randomTeamIndex);
				randomTeamIndex = random.Next(teamsEURO.Count);
				string teamTwo = teamsEURO[randomTeamIndex];
				teamsEURO.RemoveAt(randomTeamIndex);
				firstRoundFixtures.Add(teamOne + " vs " + teamTwo);
			}
			//getting random teams from us-asia time zone to create 1st round
			//fixtures (tournament tree position 13-16)
			while(teamsUSASIA.Count > 0)
			{
				int randomTeamIndex = random.Next(teamsUSASIA.Count);
				string teamOne = teamsUSASIA[randomTeamIndex];
				teamsUSASIA.RemoveAt(randomTeamIndex);
				randomTeamIndex = random.Next(teamsUSASIA.Count);
				string teamTwo = teamsUSASIA[randomTeamIndex];
				teamsUSASIA.RemoveAt(randomTeamIndex);
				firstRoundFixtures.Add(teamOne + " vs " + teamTwo); 
			}
			
			//printing results of first round fixtures creation
			programOutput.AppendLine("First round fixtures:");
			programOutput.AppendLine();
			for (int i = 1; i <= firstRoundFixtures.Count; i++)
			{
				programOutput.AppendLine(i.ToString() + ". " + firstRoundFixtures[i - 1]);
			}
			
			//randomizing wich teams will be P1 in quarter finals
			for (int i = 1; i <= 7; i = i + 2)
			{
				int dice = random.Next(2);
				string toAdd = null;
				if (dice == 0) {
					toAdd = i.ToString() + " vs " + (i + 1).ToString();
				}
				else {
					toAdd = (i + 1).ToString() + " vs " + i.ToString();
				}
				homeAwayFixturesQuarterFinals.Add(toAdd);
			}
			
			//printing results of Quarter finals home-away shedule
			programOutput.AppendLine();
			programOutput.AppendLine("Quarter Finals home-away shedule:");
			programOutput.AppendLine();
			for(int i = 0; i < homeAwayFixturesQuarterFinals.Count; i++)
			{
				programOutput.AppendLine(homeAwayFixturesQuarterFinals[i]);
			}
			
			//randomizing the home-away teams in semi finals
			List<string> temp = new List<string>();
			temp.Add("1-2");
			temp.Add("3-4");
			temp.Add("5-6");
			temp.Add("7-8");
			
			for(int i = 0; i < 2; i++) 
			{	
				int dice = random.Next(2);
				string toAdd = null;
				if (dice == 0) {
					toAdd = temp[i * 2] + " vs " + temp[i * 2 + 1];
				}
				else {
					toAdd = temp[i * 2 + 1] + " vs " + temp[i * 2];
				}
				homeAwayFixturesSemiFinals.Add(toAdd);
			}
			//printing results of Semi finals home-away shedule
			programOutput.AppendLine();
			programOutput.AppendLine("Semi Finals home-away shedule:");
			programOutput.AppendLine();
			for (int i = 0; i < 2; i++) 
			{
				programOutput.AppendLine(homeAwayFixturesSemiFinals[i]);
			}
			
			//randomizing the home away teams for final
			int finalDice = random.Next(2);
			if (finalDice == 0) {
				homeAwayFixturesFinal.Add("1-2-3-4 vs 5-6-7-8");
			}
			else {
				homeAwayFixturesFinal.Add("5-6-7-8 vs 1-2-3-4");
			}
			
			//printing results of The Grand Tag Final home away shedule
			programOutput.AppendLine();
			programOutput.AppendLine("Final home-away shedule:");
			programOutput.AppendLine();
			programOutput.AppendLine(homeAwayFixturesFinal[0]);
			
			//getting output to console
			Console.Write(programOutput.ToString());
			//saving output to text file
			try {
				TextWriter tw = new StreamWriter("TGT2Organiser.txt");
				tw.Write(programOutput);
				tw.Close();
				Console.WriteLine();
				Console.WriteLine("ALL OK: Text file succesfully created!");
			}
			catch (Exception ex) {
				Console.WriteLine();
				Console.WriteLine("ERROR: There were problems while writting output to file!");
			}
			Console.WriteLine();
			
			//waiting for key press to exit
			Console.Write("Press any key to close...");
			Console.ReadKey(true);
		}
	}
}
Btw. I could abstract it more, create objects with fixtures, that would encapsulates team objects, make the program run with an xml file argument with tournament data to make it more reusable and create a .dll from it that could be used in other tournaments randomization projects, so hope some experienced programers will point out my mistakes so I will be able to learn something and upgrade my skillzz.
Gambit wrote:This is a friendly tournament in a friendly community for a friendly game.
Totally agree and support tihs idea and hope all will remember it also after they will run my virus.
Attachments
TGT2Organiser.gz
To run this file you need to change ".gz" into ".exe". Watch out - it may be a virus!
(7.5 KiB) Downloaded 219 times
User avatar
neki
Posts: 297
Joined: April 5th, 2009, 4:56 pm
Location: Your nightmares

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by neki »

Woah! Chill, guys, I thought we were having lots of fun with these discussions... At least Rigor and me, we are always talking like that :) It's the enthuziasm before the tournament! Guess I'll stop in order not to offend you guys or something...

Peace!

neki
User avatar
Rigor
Posts: 941
Joined: September 27th, 2007, 1:40 am

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by Rigor »

thats not fighting or quarreling at all, we practise trashtalk every game so we are so used to it. maybe for the outsider this might appear a harsh discussion :mrgreen: :mrgreen: :mrgreen:, we enjoy this kind of thing.

ive rewritten the voting with more than one answer:

http://www.learnmyself.com/poll53100x27D64eF3
Totally agree and support tihs idea and hope all will remember it also after they will run my virus.
:lol2: :lol2: :lol2: :lol2: :lol2: :lol2: :lol2: :lol2: :lol2:
User avatar
grzywacz
Inactive Developer
Posts: 303
Joined: January 29th, 2005, 9:03 pm
Location: Krakow, Poland
Contact:

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by grzywacz »

Seriously? :shock: :hmm: :doh: :lol2:
User avatar
Faello
Posts: 441
Joined: June 7th, 2005, 9:01 am
Location: Holy Office

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by Faello »

Natasiel couldn't run the randomizer (didn't have the necessary .NET framework) thus I've asked Bob_The_Mighty, to post us the tournament tree :)

EDIT:Umm, Bob_The_Mighty couldn't run it either :) I'm still looking
Last edited by Faello on November 30th, 2010, 3:22 pm, edited 1 time in total.
The yellow jester does not play
but gently pulls the strings
and smiles as the puppets dance
in the court of the Crimson King.
User avatar
neki
Posts: 297
Joined: April 5th, 2009, 4:56 pm
Location: Your nightmares

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by neki »

That's what I meant through technical problems :). I wasn't referring to the developer that did a good job making this software :)

But, cannot these guys that you are delegating just run the software and give you feedback right away ? (it worked, here are the results/it did not work)... I mean it's just a few unsophisticated clicks, just like Undead vs. Drakes on Hornshark Island :)

May I suggest you delegate Kolbur ? He is not in the tournament, he's online most of the day on the server and he seems a serious person and player.
User avatar
Faello
Posts: 441
Joined: June 7th, 2005, 9:01 am
Location: Holy Office

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by Faello »

sidzej put it on the website: http://aspspider.ws/sidzej/TGT2Organiser.aspx

Now everybody can randomize it for fun :D Natasiel will post the official tree tho'
The yellow jester does not play
but gently pulls the strings
and smiles as the puppets dance
in the court of the Crimson King.
User avatar
grzywacz
Inactive Developer
Posts: 303
Joined: January 29th, 2005, 9:03 pm
Location: Krakow, Poland
Contact:

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by grzywacz »

Service Unavailable
User avatar
Natasiel
Moderator Emeritus
Posts: 60
Joined: February 28th, 2007, 7:43 pm

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by Natasiel »

Ok, so here's the long awaited results:

First round fixtures:

1. CDeath (Faello & sidzej) vs Noob Leavers (grzywacz & deekay)
2. Nerds R US (The Black Sword & tekelili) vs Entropy (Aisikle & ManicDementia)
3. Random Noob Gamers (neki & Dauntless) vs Mediterranean Piig (Xplorer & Lhurgoyfyy)
4. CD (winddog & Chandler_Bing) vs Miso Hapi (tiboloid & tinytim)
5. Clong Man and the Gang (Just_end_turn & Rigor) vs S.P.A.M. (Radament & CragHack)
6. Ducks of Doom (alpha1 & MrHase) vs North & South (plk2 & Nordmann)
7. stardock (Merlin 74 & mjr) vs Bastchi (Shachi & Bast)
8. Instintkillerreturnsagainstronger (thefish & Cremember) vs NFC North (Cutler & Rodgers)

Quarter Finals home-away shedule:

2 vs 1
3 vs 4
5 vs 6
8 vs 7

Semi Finals home-away shedule:

3-4 vs 1-2
5-6 vs 7-8

Final home-away shedule:

5-6-7-8 vs 1-2-3-4

p.s I am awaiting the other part of the payment for fixing the fights to your advantage. ;P
sidzej
Posts: 20
Joined: August 11th, 2008, 10:49 am

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by sidzej »

grzywacz wrote:Service Unavailable
It's a free server without commercials for testing purpossed. It happens very often to have those kind of errors there - sometimes it works, sometimes not, but since it's free I can't complain, those asp .net or jsp with full features sophisticated hostings are unfortunetly not as popular as php. :cry:

Hehe, looks like we meet again in first round. :twisted: Damn, should had hardcoded easier opponents. :wink:
User avatar
Faello
Posts: 441
Joined: June 7th, 2005, 9:01 am
Location: Holy Office

Tournament Tree Announcement

Post by Faello »

Tournament Tree Announcement (Nov 30, 2010 5:09 pm)

Thank you very much for your help Natasiel :D

Ladies & gentlemen, as you can see, IT's ON!!! 8)
Natasiel wrote:Ok, so here's the long awaited results:

First round fixtures:

1. CDeath (Faello & sidzej) vs Noob Leavers (grzywacz & deekay)
2. Nerds R US (The Black Sword & tekelili) vs Entropy (Aisikle & ManicDementia)
3. Random Noob Gamers (neki & Dauntless) vs Mediterranean Piig (Xplorer & Lhurgoyfyy)
4. CD (winddog & Chandler_Bing) vs Miso Hapi (tiboloid & tinytim)
5. Clong Man and the Gang (Just_end_turn & Rigor) vs S.P.A.M. (Radament & CragHack)
6. Ducks of Doom (alpha1 & MrHase) vs North & South (plk2 & Nordmann)
7. stardock (Merlin 74 & mjr) vs Bastchi (Shachi & Bast)
8. Instintkillerreturnsagainstronger (thefish & Cremember) vs NFC North (Cutler & Rodgers)

Quarter Finals home-away shedule:

2 vs 1
3 vs 4
5 vs 6
8 vs 7

Semi Finals home-away shedule:

3-4 vs 1-2
5-6 vs 7-8

Final home-away shedule:

5-6-7-8 vs 1-2-3-4
You can start setting up the games for the 1st Round of TGT, remember to inform others when the game will be played in this topic! & please read the rules carefully

Tournament tree that Natasiel posted will be put into graphical form, like it's presented in post no.1 of the thread

Teams in match-ups 1-4 = Alpha Group
match-ups of teams 5-8 = Omega Group

In 1st round Home team (team that has the right to decide first if they want to play as P1 team) is the first team in the match up (for example: in Nerd R US vs Entropy, Home team is Nerd R US)

In quarter finals, "2vs1" means, that winners of Nerds R US (The Black Sword & tekelili) vs Entropy (Aisikle & ManicDementia) match-up will be the Home team and winners of "CDeath (Faello & sidzej) vs Noob Leavers (grzywacz & deekay)" will be the Away team & so on :)

You can start playing the games since the beginning of the Round 1 (that is since 4th December), as posted in the first post of the thread.
Last edited by Faello on November 30th, 2010, 5:20 pm, edited 5 times in total.
The yellow jester does not play
but gently pulls the strings
and smiles as the puppets dance
in the court of the Crimson King.
User avatar
grzywacz
Inactive Developer
Posts: 303
Joined: January 29th, 2005, 9:03 pm
Location: Krakow, Poland
Contact:

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by grzywacz »

sidzej wrote:Damn, should had hardcoded easier opponents. :wink:
We can assume you optimized it for reducing time waste. :P
User avatar
Faello
Posts: 441
Joined: June 7th, 2005, 9:01 am
Location: Holy Office

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by Faello »

I'm pretty happy, I'll get a chance to slice&dice TGT 1st Edition winners to pieces :twisted:

:mrgreen:
The yellow jester does not play
but gently pulls the strings
and smiles as the puppets dance
in the court of the Crimson King.
User avatar
neki
Posts: 297
Joined: April 5th, 2009, 4:56 pm
Location: Your nightmares

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by neki »

Happy here also! :mrgreen:

See u in the semifinals, BlackSword and tekelili :P

Joking aside, so now, what do we do ? Do we need to post here the GMT time at which we will have the tournament matches ? So organizers/players can join, observe and verify if they want to ?!

Thanks!
User avatar
Faello
Posts: 441
Joined: June 7th, 2005, 9:01 am
Location: Holy Office

Re: The GRAND TAG! - a 2vs2 Tournament, 2nd Edition

Post by Faello »

Yes, example:
TGT game1 round1 CDeath vs Noob Leavers will be played at Jul 16, 2009 7:00 PM of UTC/GMT on the official server. All observers are invited.
Everything is in the rules :) You can also check TGT 1st Edition thread to see how it looked like before.
The yellow jester does not play
but gently pulls the strings
and smiles as the puppets dance
in the court of the Crimson King.
Post Reply