Erstmal nicht zu den Sprachen selber, sondern zu den Libraries: ich persönlich empfehle dir jetzt einfach mal SDL. Das ist, wie die Website schon sagt, eine portable Multimedia-Library, für 2D-Kram macht die sich meistens ganz gut, insbesondere wenn man es auf mehreren Plattformen verwenden will.
SDL selber ist in C geschrieben und kann daher auch mit C benutzt werden (und daher auch mit C++ und ObjC, wobei man dann natürlich trotzdem mit C-Methoden arbeiten muss). Auf der anderen Seite gibt es aber auch Bindings für einen Haufen andere Sprachen, u.A. ein recht gutes Python-Binding. Tutorials dazu kann ich dir leider keine empfehlen, ich hab keine wirklich guten gefunden (okay, ich hab auch nicht all zu intensiv gesucht).
Davon ausgehend empfehle ich dir jetzt einfach mal Python - es ist weniger Frickelei als mit SDL in C, und Python ist allgemein eine recht schöne Sprache mit relativ hohem Abstraktionslevel (read: du musst nicht so viel Kleinkram wie Speicherverwaltung von Hand machen wie in C).
Was du mit SDL nicht machen kannst, ist native Widgets (wie Buttons, Textfelder, etc) zu verwenden. Für ein Spiel kann man darauf allerdings relativ problemlos verzichten.
Für die cross-platform-Entwicklung derartiger Dinge gibt es meiner Meinung nach keine wirklich schöne Lösung - jede Plattform hat natürlich ihre eigenen Libraries (auf Windows wird das zukunftssicherste C# + .NET sein, auf OS X hast du halt ObjC und Cocoa, etc). Wenn man da plattformübergreifend programmieren will, braucht man a) eine Sprache, die auf allen Plattformen brauchbare Unterstützung hat (das sind effektiv C(++), Java, und diverse "Scriptsprachen" wie Python und Ruby) und b) eine GUI-Lib, die auf allen Plattformen läuft (du kannst mit Python eine Cocoa-App schreiben, nur hilft dir die auf Windows herzlich wenig weiter). Bei letzteren dürften hauptsächlich Qt und wxWidgets interessant sein (GTK z.B. ist zwar cross-platform-fähig, sieht aber auf Windows nicht besonders schön und auf OS X kacken hässlich aus). Die sind beide in und für C++ geschrieben und da auch am angenehmsten zu benutzen (auch wenn ich persönlich C++ nicht mag).
Qts Python-Binding z.B. ist nicht sonderlich schön (okay, man kann problemlos damit arbeiten, aber es ist nicht gerade die beste Python-Lib), während wython meiner Erfahrung nach kacken instabil ist und gerne mal bei Trivialitäten segfaultet. Ich denke mal, die Situation sieht bei anderen Sprachen nicht besser aus.
Und natürlich ist keine dieser Lösungen so schön wie ein natives Programm.
Eine Alternative ist natürlich, ein Programm mit mehreren User-Interfaces zu schreiben (also eine Core-Lib und dann ein Cocoa-Interface, ein GTK-Interface, etc). Das hat natürlich wiederum den Nachteil, dass es redundant ist.
Sprich: mach erstmal ein SDL-only-Ding, das erspart dir 'nen Haufen Ärger
Ach ja: vllt. solltest du etwas kleiner einsteigen als gleich mit der Umsetzung eines komplexeren Brettspiels, und dich da dann später dran machen, wenn du etwas mehr Erfahrung hast. Nur so ein Gedankengang.