Autor Beitrag
Firefox69
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Sa 18.02.12 17:19 
Hallo,
Ich bin ein Anfänger in C# und muss ein Projekt fertig stellen..
Unten ist alles geschrieben was & wie es zu machen ist |
Ich habe mir das so oft durchgelesen & versucht Anzufangen aber komme einfach nicht weiter
Ich bin echt verzweifelt
Bitte hilft mir BITTE

------------------------------------------------------------------------------------------------------------------------
Mastermind

Spielregel:

Ein Spieler legt zu Beginn einen fünfstelligen Farbcode fest, der aus acht Farben ausgewählt wird. Jede Farbe kommt dabei nur einmal vor. Der andere Spieler versucht, den Code herauszufinden. Dazu setzt er einen gleichartigen Farbcode als Frage; beim ersten Zug blind geraten, bei den weiteren Zügen mit Hilfe der Antworten zu den vorangegangenen Zügen. Auf jeden Zug hin bekommt der Rater die Information, wie viele Stifte er in Farbe und Position richtig gesetzt hat und wie viele Stifte zwar die richtige Farbe haben, aber an einer falschen Position stehen. Ein Treffer in Farbe und Position wird durch einen schwarzen Stift angezeigt, ein farblich richtiger Stift an falscher Steller durch einen weißen Stift. Alle Fragen und Antworten bleiben bis zum Ende des Spieles sichtbar. Man hat 12 versuche.

Aufgabenstellung:

Erstelle das Spiel entsprechend der folgenden Vorgaben. Diese sind EXAKT einzuhalten:

1. Erstelle eine Klasse Master mit folgenden Eigenschaften:

zahl 5 elementiges Array, enthält die zu erratenden Zahlen
--------------------------------------------------------------------------
Master() Konstruktor: ruft nur start() auf
--------------------------------------------------------------------------
start() Legt 5 unterschiedliche Zufallszahlen fest
--------------------------------------------------------------------------
getSchwarz() Gibt zurück, wie viele Zahlen am richtigen Platz sind
--------------------------------------------------------------------------
getWeiss() Gibt zurück, wie viele Zahlen vorhanden, aber am
falschen Platz sind
--------------------------------------------------------------------------

Wichtig hierbei: Innerhalb der Klasse dürfen keinerlei Ein- bzw. Ausgaben gemacht werden. Den Funktionen getWeiss(),bzw. getSchwarz() wird ein Array mit Zahlen übergeben, das mit dem Array zahl verglichen wird.

2. Jetzt wird eine zweite Klasse erstellt. Nämlich entweder ConsoleMaster(console) oder WinMaster (graphische Oberfläche), die die oberflächenabhängigen Funktionen enthält.
Achtung: Ein- und Ausgbaben auf die Oberfläche sind hier speziell erlaubt und erwünscht.

arr | Feld, das die Benutzereingaben enthält
--------------------------------------------------------------------------
m | Ein Objekt der Klasse Master, mit dem die klasse
ConsoleMaster arbeitet
--------------------------------------------------------------------------
cheat() | Schreibt die Code-Zahlen auf den Bildschirm
(zu Testzwecken)
--------------------------------------------------------------------------
eingabe() | Eine komplette Benutzereingabe
--------------------------------------------------------------------------
gewonnen() | Liefert an das Hauptprogramm die Information zurück,
| ob die Kombination herausgefunden wurde
--------------------------------------------------------------------------
printZeile() | Schreibt die Anzahl der schwarzen,
| bzw. weissen Stifte auf dem Bildschirm
--------------------------------------------------------------------------
printErg() | Schreibt die Anzahl der schwarzen,
| bzw. weissen Stifte auf den Bildschirm
--------------------------------------------------------------------------
spielRegel() | Zeigt die Spielregeln
--------------------------------------------------------------------------

3. Zum Spielen wird jetzt das Hauptprogramm erstellt.

Zum Schluss: Bitte auch Kommentare schreiben und wo nötig falsche Eingaben verhindern

Moderiert von user profile iconNarses: Titel geändert, "Hilfeee !!!" entfernt.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 18.02.12 18:12 
Hallo und :welcome:!

Wir helfen Dir gerne, Deine Hausaufgaben zu machen. Aber wir machen sie nicht für Dich. :mahn:

Das heißt konkret: Zeige her, was Du bisher versucht hast und was Du Dir bisher überlegt hast. Erkläre, was Du nicht verstehst. Sage, wo Du nicht weiter kommst. Dabei helfen wir Dir gerne. Aber ein Posting im Sinne von "Ich komm nicht weiter, macht Ihr mal" wird hier auf wenig Gegenliebe stoßen.

Viele Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Firefox69 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Sa 18.02.12 18:14 
Das war ja auch so nicht gemeint den Anfang mit dem Konstruktor versteh ich einfach nicht & das mit dem 8 farben aber nur 5 werden genommen bringt mich durcheinander
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 18.02.12 18:33 
Was verstehst Du bei dem Konstruktor nicht?

Bei den Farben ist das so gemeint, dass es einen "Vorrat" von acht Farben gibt und fünf Farben aus diesem Vorrat genommen werden.

Vielleicht hilft es auch, wenn Du Dir die Offline-Variante des Spiels ansiehst: de.wikipedia.org/wiki/Mastermind (da werden aber andere Anzahlen von Farben benutzt)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Firefox69 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Sa 18.02.12 18:39 
Das ist meine Klasse bis jetzt -.-" ich verstehs einfach nicht | Ich weiß nicht mal ob der start jetzt richtig war ?
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Mastermind
{
    class Master
    {
        int[] zahl = new int[5];

    }
}


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 18.02.12 19:06 
Die Konstruktor ist schonmal richtig, aber zahlen muss ein Feld der Klasse sein, im Moment ist es aber eine lokale Variable im Konstruktor.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Firefox69 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Sa 18.02.12 19:09 
Das heißt ?!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 18.02.12 19:15 
Das heißt, dass ich mich vertippt habe, es muss "der Konstruktor" heißen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Firefox69 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Sa 18.02.12 19:17 
Findest du das Lustig ?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 18.02.12 19:20 
Findest Du, dass "Das heißt ?!" eine sinnvolle Frage ist?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Firefox69 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Sa 18.02.12 19:22 
Ja , weil ich nicht verstanden hab was du meinst ;) ?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 18.02.12 19:23 
Und wie soll ich drauf antworten, wenn Du nicht sagst, WAS du nicht verstanden hast?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Firefox69 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Sa 18.02.12 19:26 
muss ein feld der klasse sein ? |
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: So 19.02.12 00:11 
Weißt du, was Felder sind?

_________________
Die Lösung ist nicht siebzehn.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 19.02.12 11:43 
Hallo Christian,

aber so wie es da steht
Firefox69 hat folgendes geschrieben:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
    class Master
    {
        int[] zahl = new int[5];

    }


ist es ein Feld (Member) der Klasse, da ja gar kein Konstruktor dort deklariert ist :gruebel:

Firefox69, bist du denn jetzt schon weitergekommen? Ich hoffe mal, daß du die Grundlagen der C#-Programmierung (Klassen, Methoden, ...) schon gelernt hast, denn sonst wirst du kaum die Aufgabe hinbekommen.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 19.02.12 12:40 
Verdammt, da muss ich echt Tomaten auf den Augen gehabt haben :shock: :oops:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Firefox69 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: So 19.02.12 17:11 
Nein bin leider nicht weiter gekommen :( ..
Ich bin ehrlich gesagt verzweifelt .. !!!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 19.02.12 18:58 
Hallo Firefox69,

um was für ein Projekt handelt es sich denn (Schule, Uni, ...)?
Und was sind deine Probleme bei der Umsetzung? Die Aufgabe gibt ja schon die konkreten Klassen und Methoden vor, d.h. du mußt diese ersteinmal von der Struktur her anlegen und sie dann der Reihe nach ausprogrammieren.

Und bis wann muß die Aufgabe denn erledigt sein? Hast du denn keine Mitschüler oder Kommilitonen, mit denen du gemeinsam diese Aufgabe lösen kannst? Für einzelne Fragen kannst du hier im Forum nachfragen, aber so wie Christian schon geschrieben hat, ist ein Forum der falsche Ort, um ganze Hausaufgaben gemacht zu bekommen.
Firefox69 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: So 19.02.12 19:29 
Schule | Technisches Gymnasium 11. klasse |
Ich war davor auf der Werkrealschule & hatte keinerlei Vorkenntnisse für das Programmieren
---------------------------------------------------------------------------------------------
Ich hab auch nicht verlangt das mir jemand das ganze programmiert ich hab das aufgabenblatt nur reingestellt das wenn ichs nich richtig erklären kann das ihr ein überblick habt |
------------------------------------------------------------------------------------------------
wenn mir jemand den anfang sagen würd ,dann hätt ich eine ahnung weiter zu machen | aber das mit dem 8 farben aber nur 5 werden gebraucht bringt mich durcheinander da ich jetz nicht weiß ich ich anfangen soll ..
-----------------------------------------------------------------------------------------------
Um ehrlich gesagt bin ich auch kein begabter Schüler mit lauter 1'en |
Wenn mir jemand den Start sagen würde wäre ich sehr dankbar :'P
---------------------------------------------
Ich hab nämlich grad wirklich nicht die leiseste ahnung wie ich anfangen muss :// ..
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 19.02.12 20:06 
Hallo Firefox69,

wenn es dir nur um die Zufallsmethode geht, dann kann ich dir schnell helfen.
Zuersteinmal mußt du die 8 Farben definieren. Entweder einfach als int von 1 bis 8 oder aber ein eigenes enum dafür anlegen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
enum Color
{
  Red, Green, Yellow, // ... weitere Farben
  Max
}

Dein Array sähe dann so aus:
ausblenden C#-Quelltext
1:
Color[] zahlen = new Color[5]; // wobei 'zahlen' jetzt kein toller Name hierfür mehr ist ;-)					

Dann soll dieses Array mit verschiedenen, zufälligen Farben belegt werden - dafür benötigst du die Klasse Random:
ausblenden C#-Quelltext
1:
2:
3:
4:
Random random = new Random();

for (int i=0; i<zahlen.Length; i++)
  zahlen[i] = (Color)random.Next((int)Color.Max);

Jetzt fehlt nur noch, daß die Farben nicht doppelt erzeugt werden. Das lasse ich dir mal jetzt als nächste Aufgabe (hier gibt es mehrere Möglichkeiten, dies zu erreichen).
Überlege dir wie man dies logisch umsetzen kann und dann kannst du dich ja noch mal melden.

P.S. Für die 11. Klasse schon eine recht anspruchsvolle Aufgabe (ich weiß aber natürlich nicht, wie lange schon vorher Programmieren (mit C#) gelehrt wurde) - und für dich als Wechsler natürlich noch schwerer.

Hast du denn ein gutes C#-Buch? Ansonsten lies dich mal in das OpenBook Visual C# 2010 bzw. noch besser (um nur die reinen Sprachelemente von C# zu verstehen) C# - Die neue Sprache für Microsofts .NET-Plattform ein.


Zuletzt bearbeitet von Th69 am So 19.02.12 20:12, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: Firefox69