I don’t know if posting the source code to a blog makes it open source but probably not. Anyway, I run this program, first thing, every morning to help keep me motivated. Maybe it’ll help you, Lost_Nun87. By all means, modify Betrayal to suit your lack of needs. It’s free until you execute the thing, which is when you get Heartbleed – actual heart bleed.
PLOT TWIST: WordPress is acting a little bit vegetarian and not displaying stuff properly. The source code only renders well in Internet Explorer. Pray for me.
It’s also on pastebin in all it’s syntactic, indented glory so there.
using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Collections; namespace Betrayal { /* Ground-breaking SUPERCLASS, which is what we would call it, if that wasn't theoretical heresy */ public class Betrayal { /*properties and stuff*/ public string peasantsName { get; set; } public string finalWords { get; set; } private readonly List<string> yourBetrayals; private static Random rnd; /*constructor, that totally works, Son*/ public Betrayal(string peasantsName) { this.peasantsName = peasantsName; this.yourBetrayals = new List<string>(new string[]{"Puzzling from them days.", "Aim low.", "Nobody cares about your new shoes.", "You have no idea what you're doing.", "Oh, the Shame.", "That's why your father left.", "God loves you. I don't.", "Do you even DJ?", "No biscuits for you.", "All your pot plants will die.", "That dream you have is lame.", "People make fun of you on BBM.", "Your mother's maiden name." }); //all the fun betrayals rnd = new Random(); } /*very lazy methods*/ public override string ToString() { return "Everyday is a new betrayal, " + this.peasantsName; } public void PersonalizedBetrayal() { this.finalWords = (string)yourBetrayals[rnd.Next(yourBetrayals.Count)]; //random one to surprise and horrify you } } class DailyMotivation //what a total slave class { static void UninspiringTimeWaster() { Console.Out.Write("Enter your stupid name: "); //fairly well-mannered user prompt/demand string yourPeasantName = Console.In.ReadLine(); Betrayal dailyBetrayal = new Betrayal(yourPeasantName); //some other things that are not your business Console.Out.WriteLine("\n{0}.\n", dailyBetrayal); //ta-da! for (int i = 0; i < 3; i++) //ominous silence { Thread.Sleep(800); Console.Out.Write("."); } dailyBetrayal.PersonalizedBetrayal(); //are you even excited? Console.Out.WriteLine("\n\n{0} \n", dailyBetrayal.finalWords); //disappointing conclusion Console.Out.WriteLine("\nEnter R for another betrayal (standard SMS rates apply)"); Console.Out.Write("Or Enter to leave, Girly-man: "); //nondiscriminatory taunt char r = Convert.ToChar(Console.In.Read()); if (r.ToString().Equals("r", StringComparison.OrdinalIgnoreCase)) { Console.ReadLine(); //polishing the filthy buffer Console.Clear(); //nothing to see here DailyMotivation.UninspiringTimeWaster(); //deja vu } else Environment.Exit(0); //Run! } /* seriously underrated Main method, that does all the work for zero recognition */ static void Main(string[] args) { DailyMotivation.UninspiringTimeWaster(); //take it easy, breathe } } }
Here’s a sample run:

Enjoy and remember to not break the stapler.