Zum Inhalt springen

Reversi in C++


Mr. Tommes

Empfohlene Beiträge

Ich glaube nicht, dass dir geholfen ist, wenn man dir den Sourcecode gibt.

Wieso faengst denn nicht damit an, die Regeln nach denen dieses Spiel laeuft mal aufzuschreiben und zu versuchen daraus logische Abfolgen in Form von Struktogrammen zu erstellen.

Ich bin sicher, dass dir hier dann genuegend Leute bei der Umsetzung von Teilproblemen helfen werden....aber anfangen musst halt zuerst mal selbst.

Goos

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ist mir auch klar, aber ich frag für ne Freundin die jetzt studiert und gerade mal 2Tage lang ne kurze Einführung in C++ bekommen hat und eigentlich keine Ahnung vom Programmieren hat und bis Montag Reversi programmieren soll. Ich selber kenn mich leider gar nicht in C++ aus, daher habe ich hier mal für sie rumgefragt...

...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eigentlich sind die Regeln leicht zu erkennen, wenn man mal ein paar Runden Reversi spielt.

Das Spielfeld ist in diesem Fall ein Array aus 8x8 Feldern (ints). 0=leer, 1=weiß, 3=schwarz. Die Start-Position ist vorgegeben. Danach wird beim Setzen geprüft, ob kreuzförmig oder horizontal/verikal die Gegenfarbe anliegt. Wenn ja, wird in diese Richtung weitergegangen, ob sich irgendwo die eigene Farbe nach der Gegenfarbe befindet. Ist das in allen Richtungen nicht der Fall kann man auf dieses Feld nicht setzen. Ansonsten wird der Stein gesetzt und bis zum Erscheinen der eigenen Farbe alle Felder zur eigenen Farbe gesetzt bei denen diese Regel zutrifft (also strahlenförmig in allen Richtungen vom gesetzen Feld aus). Deshalb schwarz auch die Farbe 3, dann kann man die Felder tatsächlich einfach "invertieren", indem das 2. Bit xor-Verknüpft wird. Kann kein Feld mehr belegt werden ist das Spiel beendet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

klingt logisch, danke, ist ein guter Ansatz. Die Regeln sind ja auch bekannt, nur wenn man vom Programmieren keine Ahnung hat ist das schwierig umzusetzen. Daher die Frage nach nem fertigen Quellcode. Ich versteh auch nicht ganz wie man sowas von Leuten verlangen kann die keine Ahnung haben. Aber trotzdem Danke, werd das mal weiterleiten. Wenigstens ist jetzt ein Ideeenanstz da den man ausbauen kann. Bei weiteren Fragen werd ich mich wieder melden. Falls noch jemand gute Ratschläge hat, ich bin für alles offen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Mr Tommes,

auch wenn es nur 21 Tage Einführung waren, und wenn es bis Montag fertig sein muss, sollte sich Deine Freundin folgendes Fragen:

1. Was bringt es mir, wenn ich die Lösung nicht selbst erarbeite sondern kopiere?

2. Was lerne ich dabei für meine Zukunft?

3. Bin ich evtl selbst schuld daran, dass die Zeit so knapp ist (es kann ja sein, dass sie bis auf den letzten Drücker gewartet hat, bis sie anfängt)

Dann wird sie schnell auf den Trichter kommen, dass sie die Sache nur aufschiebt, wenn sie es nicht lernt. Ich denke, als Informatiker sollte man in der Lage sein, die Aufgabe zu lösen. Später wird es schliesslich auch so sein. Der Kunde will was, also mach ich es. Zeitprobleme und "kann ich nicht" helfen da nicht.

Schönes Wochenende trotzdem,

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Peter,

also erstens waren das nur 2 Tage, nicht 21.

zweitens studiert sie Elektrotechnik und ist kein Informatiker.

und drittens wollte ich lediglich wissen, ob mir einer den Quellcode

geben kann, denn ihr reicht es schon aus, wenn sie versteht was da

gemacht wurde.

Vielen Dank für die weise Belehrung (die mir jedoch nicht wirklich weitergeholfen hat).

Da lob ich mir doch lieber solche Leute die mir wenigstens bei den Ansätzen helfen können...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Mr. Tommes

Vielen Dank für die weise Belehrung (die mir jedoch nicht wirklich weitergeholfen hat).

Da lob ich mir doch lieber solche Leute die mir wenigstens bei den Ansätzen helfen können...

Hmm das versteh ich nun nicht, wieso dir der obige Beitrag nicht geholfen hat....vielleich solltest ihn nochmal lesen :)

Ich vermute fast, dass du den Sinn des Ganzen noch nicht so recht begriffen hast.

Wenn jemand solch ein kleines Spielchen programmieren soll, dann nicht deshalb, dass der Prof. dann am Ende 50 gleiche Spielchen hat und sich damit die Naechte um die Ohren hauen kann ;)

Der Sinn ist einzig und allein der des Lernens.

...ausserdem kanns peinlich werden, wenn man ein Programm abgibt welches man nicht selbst erstellt hat.....soll ja gelegentlich auch vorkommen, dass dann jemand genau nachfragt, was man da und dort so gemacht hat.

Goos

PS: Wieso traut sich deine Freundin denn eigentlich nicht selbst hier zu posten?

...ich denk mal sie koennte uns viel besser sagen, was sie schon kann oder begreift und wo es noch haengt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus nochmal Mr Tommes,

nachdem Dir meine erste "weise" Belehrung nichts gebracht hat, probier ich es einfach noch einmal.

Das mit den 21 Tagen war ein Lesefehler meinerseits, sorry dafür.

Doch auch nach Berücksichtigung dieses Fehlers gilt mein Posting unverändert.

Das Deine Freundin Elektrotechnik studiert, ist hierbei völlig irrelevant.

Ich versuche nochmal, zusammenzufassen.

In einem Studium gibt es ein Fach "Programmierung" (der Name kann auch anders lauten, der Inhalt ist entscheidend). In diesem Fach sollen die Studenten ein Spiel namens "Reversi" programmieren, und zwar in C++. Diese Aufgabe ist an einem bestimmten Tag abzugeben.

Dann sollte es doch eigentlich nicht mehr so schwer sein.

Man besorgt sich die Spielregeln, setzt diese in ein logisches Gerüst um und codiert das ganze. Hilfen zum Ansatz der Logik sind schon gefallen, also kann man eigentlich loslegen.

Zum Thema komplette Sourcen zuschicken möchte ich Dir einiges sagen.

Es gibt Leute, die haben dieses Spiel schon programmiert, und könnten Dir die Codes ohne Probleme zuschicken. Diese Leute haben aber auch die komplette Arbeit damit gehabt, haben sich Gedanken zur Aufgaben gemacht, und finden es ziemlich dreist und ärgerlich, dass es andere Leute gibt, die erwarten, diese Leistungen umsonst (das heisst ohne eigene Anstrengung und Initiative) zu bekommen.

Deshalb wird es wahrscheinlich keinen hier geben, der Dir die Sache komplett zuschicken wird. Sollte Deine Freundin jedoch selber anfangen, und mit einer Detailfrage Probleme haben, wird es hier kaum einen geben, der ihr nicht den richtigen Hinweis geben wird.

Oder glaubt Deine Freundin, dass es später im Berufsleben anders sein wird? Das sie ihre Aufgaben von anderen erledigen lassen kann, um sie dann als Ihre Leistung zu verkaufen. Nichts anderes ist es nämlich.

Zum Abschluss noch etwas persönliches an Dich: Einen Rat, den Dir jemand auf Deine eigene Frage gibt (auch wenn er nicht in der Form erfolgt ist, die Dir gepasst hätte) herabzusetzen, halte ich für eine sehr schlechte Taktik, wenn man

irgendwo Hilfe haben möchte.

Schönen Sonntag noch,

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Peter,

tja, wir scheinen unterschiedliche Ansichten zu haben. Wenn mich jemand nach nem Quellcode fragt und ich den zufälligerweise habe, ist es mir persönlich schnurz piep egal ob der nun weiterverwendet wird oder nicht, denn ich habe dann das Problem für mich selbst gelöst und der andere hat nur abgeschrieben. Das sollte jeder mit sich selbst ausmachen, ob er nun abschreibt oder nicht. Wenn du Probleme hast deine geistige Leistung an andere zu verteilen ist das deine Sache, wie gesagt, mir wärs egal. Wenn ich so jemandem helfen kann (auch wenn du das nicht so siehst). Ich denke nämlich auch, dass das Durchlesen eines fertigen Quellcodes auch ein wenig hilft ersteinmal die Problematik des Programmierens sowie die Syntax etc. zu verstehen. Wenn man alles durcharbeitet und dann auch versteht warum was wie gemacht wurde sehe ich das auch schon als Hilfe an.

....ebenfalls einen schönen Sonntag....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also jetzt geb ich auch mal meinen Senf dazu.

1. Von einem Sourcecode kann man die Syntax nicht so ohne weiteres verstehen.

2. Kann es doch nicht sein das man alles abschreibt...

3. Kann ich mir schlecht vorstellen das man nach einer "2-tägigen" Einführung bereits

komplexere Applikationen schreiben soll.

3.1. Sollte es doch verlangt werden, so hat man ähnliches bereits während einer Vorlesung

besprochen.

Das sag ich dir mit bestem Gewissen...

Ich bin Azubi an einer FH und weiss das an einer Hochschule die Vorlesungen dem Thema entsprechend lang sind.

Zudem geht es in einer Vorlesung auch darum sich selbst ausreichen Notizen zu machen. Wenn man etwas nicht ganz verstanden hat, dann kann man fragen. Es gibt keinen Prof. der einen allein im Walde stehen lässt (zumindest während oder unmittelbar nach den Vorlesungen).

Jetzt eine persönliche Meinung:

Wenn deine Freundin den Sourcecode gehabt hätte, gehe ich mal davon aus das sie in nicht durchgesehen hätte...

Dafür ist der Mensch zu bequem.

Das von eurem Freak

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich weiß nicht so recht, was das hier alles noch bringen soll? Wir befinden uns hier ja nicht in einem Forum, wo es um Lerntechniken und sonstige pädagogischen/philosophischen Ansichten über das Lernen geht. Außerdem finde ich hier einige Antworten eher fragwürdig. Um es vorweg zu nehmen: Ich stimme mit Euch überein, daß es nichts bringt hier eine fertige Lösung zu posten. Außerdem bin ich, wie auch Ihr, nicht hier um Hausaufgaben von anderen zu machen. So weit sind wir einer Meinung. Wenn ich Probleme mit dem Programmieren hätte, würde ich auch zuerst meine Kommilitonen fragen. Dort läßt sich das im Allgemeinen viel besser klären.

Was mich stört, sind Aussagen wie folgende:

Man besorgt sich die Spielregeln, setzt diese in ein logisches Gerüst um und codiert das ganze. Hilfen zum Ansatz der Logik sind schon gefallen, also kann man eigentlich loslegen.

Ich hoffe doch, daß wir alle der gleichen Meinung sind, daß die Welt nicht so ganz einfach aussieht. Mir ist es zwar rätselhaft, wie man nur 2 Tage Einführung haben kann, aber ich kenne die Uni nicht. Auf jeden Fall möchte ich sehen, wie jemand, der 2 Tage lang eine Einführung in seine (vielleicht) erste Programmiersprache in bekommen hat, nebenbei ein Reversi-Programm zusammenkloppt. "Nebenbei" habe ich absichtlich geschrieben, weil man an der Uni auch noch andere Fächer hat, die vielleicht auch Aufmerksamkeit bedürfen. Natürlich steht da nicht, wie lange man Zeit für die Lösung hatte, schließlich läuft das Semester ja schon eine Weile.

1. Von einem Sourcecode kann man die Syntax nicht so ohne weiteres verstehen.

Nicht ohne weiteres, aber es kann mir keiner erzählen, daß kein Lerneffekt vorhanden ist, wenn ich mich mit einem Kommilitonen zusammensetze und sein Programm durchgehe. Ich will dabei nicht gegen das Sprichwort "Nur wer selber denkt wird schlau." argumentieren. Es wäre natürlich sinnvoll, wenn man sich danach nochmal hinsetzt und das ganze selber Programmiert. Ich will damit sagen, daß man doch normallerweise anhand von Beispielen lernt. Ich kenne jedenfalls niemand persönlich, der sich C++ nur anhand der Grammatik beigebracht hat.

2. Was lerne ich dabei für meine Zukunft?

Keine Sorge, Studenten, die Ihr Studium ernst nehmen, beantworten für sich die Frage. Dabei muß nicht immer herauskommen, daß man die Aufgabe jetzt löst. Es durchaus legitim und nötig Prioritäten zu setzen. Im Studium ist es extrem sinnvoll, Lernteams zu bilden. So kann es sein, daß der eine eher die Matheaufgaben löst und der andere die Programmieraufgaben. Es muß selbstverständlich ein Austausch finden und der Mathe-Mensch muß auch beim Programmieren mitdenken und der Programmier-Mensch muß bei der Mathematik mitdenken, sonst fallen beide früher oder später auf den Bauch. Das ist ganz klar. Man hat als Student aber nur begrenzt viel Zeit (das liegt nicht daran, daß er ständig nur Parties feiert und bis sechs Uhr abends schläft) und diese Zeit muß er möglichst effizient nutzen.

Zusammenfassend möchte ich sagen, daß hier sicherlich der falsche Ort war diese Frage so zu stellen. Hier ist, wie schon oben erwähnt wurde der richtige Ort, wenn man Hilfe bei Teilproblemen sucht, nachdem man sich schon eine Weile selber den Kopf zerbrochen hat. Ich finde es nur befremdlich, wenn sich hier Leute äußern, die vom Studium wenig Ahnung haben. Und einige Aussagen in ihrer Allgeinheit nicht gelten.

Bis denn dann

Jan

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bliebe vielleicht noch zu erwaehnen, dass die liebe Freundin Etechnikerin sich wohl ganz gut eingerichtet hat. Gibt ja ja genug hilfsbereite maennliche Bekannte, die sich allzugern vor ihren Karren spannen lassen.

Ich teile die Meinung der Mehrheit; die soll mal ruhig selber Reversi programmieren. Oder es lassen. Aber sie soll nicht anderer Leute Zeit beanspruchen.

Das ist garantiert keine, die sich grossartig Gedanken macht, welchen Studieninhalten sie die groesste Prioritaet schenkt, sondern wem sie welchen Hilfsauftrag zum bequemen Erlangen eines Scheins aufs Auge druecken kann.

Dass sie angeblich nach 2 Tagen so etwas programmieren soll, ist auch wohl eher eine Luegengeschichte, mit der sie eigene Versaeumnisse verschleiern will, durch die sie in die Klemme geraten ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist zwar wohl sehr OT, aber sollte man den Titel dieses Threads nun nicht in: "Welche Art von Hilfe kann ich hier im Bord erwarten?" aendern? Es koennte ja sein, dass es wirklich jemand liest und es somit auch hilft weitere vom eigentlichen Nutzen fuer den Fragesteller recht sinnlose Threads zu vermeiden.

Goos

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Mr. Tommes

Wie bitte? In 2 Tagen??? Manche können sowas noch nicht mal nach 2 Jahren (Ich kenn genügend von der Sorte). Wer in 2 Tagen so gut programmiert gehört zu den obersten 3en der Mensa, bekommt außerordentliche Begabtenförderung und sollte von jeder Firma nach 1 Woche Vollzeitausbildung mit Kußhand von der Uni gerissen werden. Wie genial müssen dann erst die Dozenten sein, die wohl das Ende der Pisa-Story übers Wochenende einleiten könnten?!?!

Ich glaub, die will Dich wirklich schwer veräppeln.

Wenn hier jemand einen Reversi-Source hätte, hätte er ihn wohl schon gepostet.

Mit ein wenig Suchen kommt man aber sofort weiter (v.a. wenn man so guten Unterricht genossen hat):

Das hier ist zwar Java, aber der Ansatz ist für C++-Coder gut erkennbar. Unter dem Namen Othello gibt´s den hier und diesen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

tja, da kann man wohl nichts machen. Habe alle Meinungen gelesen und zur Kenntnis

genommen. Denke nicht, das hier mein anfängliches Anliegen erfolgreich enden wird.

Bin jedoch ein wenig von der Nützlichkeit dieses Forums entäuscht, da die wenigstens

versucht haben irgendwie wenigstens einen Ansatz für das Problem zu geben.

Diese Sprüche wie "Nur wer selber denkt der lernt" oder so ähnlich mögen zwar stimmen,

sind jedoch hier nicht gefragt wurden. Wieso werden dann solche meine Fragen nicht einfach

ignoriert und Leute die wirklich sinnvolle Antworten haben können antworten...

Zusammenfassend ist doch hier nicht wirklich was bei rumgekommen...

Danke an diejenigen die wenigstens versucht haben mir zu helfen.

Damit sollte sich die Sache hier erledigt haben.

Mr. Tommes

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Mr Tommes

"Ich soll in C++ das Spiel Reversi schreiben, habe jedoch keine Ahnung wie ich anfangen soll."

Man darf nicht erwarten, daß einem etwas so einfach zufliegt. Wenn man noch nicht die Regeln und Mitteln von C++ einigermaßen sicher beherrscht ist das Entwickeln eines Spiels unmöglich. Die Regeln hab ich ja angesprochen und sooo kompliziert sind die nicht umzusetzen.

"Hat vielleicht jemand dafür schon einen existierenden SourceCode?"

Hat hier wohl keiner. Hast Du nicht die Links von mir angeschaut (auf die blaue Schrift klicken)?

Es muß Dir auch einleuchten, daß eine Aufgabe, die man selber erledigen soll nicht einfach "kopiert" werden darf. Der Lerneffekt ist dann nämlich gleich 0! Fertige Programme zu durchschauen benötigt auch wieder die Regelbasis. Wenn da etwas fehlt bringt einem ein Sourcecode auch nicht viel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

habe mir alles angeguckt (links etc.). Bin für solche Art von Hilfe ja auch dankbar.

Regt mich nur auf, wenn jemand nur rumnörgelt und den Lehrmeister in Verhaltensregeln

raushängen lässt...

.... kopiert man nicht...bringt nichts...lern selber...die nutzt dich nur aus...versteh die Regeln...

Kenne die Regeln von Reversi. Alles andere sollte mein Problem sein!!!

Bis dann...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Mr Tommes,

wer wird denn gleich gereizt werden.

Du bekommst hier kostenlose Hilfe von Leuten, die dafür ihre Freizeit opfern. Diese Leute werden Dir nicht immer erzählen, was Du hören willst, und Dir auch einen Teil (den Grossteil im allgemeinen) der Arbeit überlassen.

Wenn Du diese Art Ratschläge nicht haben willst, bist Du in einem Forum an der falschen Stelle.

Es gibt aber meines Wissens Firmen, die Software konzipieren und entwickeln, an die kannst Du Dich mit Deinem Anliegen wenden, und Du wirst den Quellcode bekommen, die werden Dir erzählen, was Du hören willst, und Du musst Dich nicht mit irgendwelchen "Lehrmeistern" herumärgern.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, ganz Unrecht hat er auch wieder nicht...

Bisher hat fast keiner (mich eingeschlossen) versucht ihm zu helfen.

Also:

Eine solche Aufgabe ist natürlich nicht unbedingt allzu leicht.

Die Regeln allein helfen nicht.

Was deine Freundin braucht wäre in einem solchen Fall ein vernünfitges Tutorial, eine Vorstellung was sie machen will und, sofern möglich, jemanden der konkrete Fragen beantworten kann (davon haben wir in diesem Forum genug Leute ;) ).

Tutorials findet man über C++ Seite

Eine Vorstellung muss sie sich selbst machen.

Mein Vorschlag wäre sich Sourcecodes zu Hand zu nehmen, das Tutorial ihrer Wahl und sich hinzusetzen und zu schauen wie das alles funktioniert.

Dann schreibt man den Sourcecode um und schaut was sich verändert. Nach einiger Zeit versteht man das programmieren dann (oder auch nicht :P).

Damit sollte man dann eine Grundlage habe auf der man anfangen kann eigene Programme zu schreiben.

Das braucht natürlich einiges an Zeit. Aber nur so kann man wirklich was lernen.

Damit wird sie dann, was C/ C++ angeht, immer Selbstbewusster und braucht keinen fertigen Code.

Ich hoffe das hat dir mehr geholfen :) :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...