Giter Club home page Giter Club logo

mastermind's Introduction

Mastermind

A code-breaking CLI game for up to two players written in C89

Usage

After compiling and launching the game, you are presented with a main menu. From there you can navigate to other screens or start the game. You will be asked to enter the playernames, multiple players are allowed. Afterwards you can choose between regular Mastermind or Supermastermind. At the end of the game, your statistics will be saved to a file and you can review them in the results screen from the main menu or extend them anytime by continuing to play the game with the same player names.

Features

  • Structured code
  • Game is coded in such a way, that an infinite amount of players can play the game
  • Screen management with seperate scripts which can be expanded and added to the game if wanted
  • Easy to use. We focused, to confront the user with as little as possible errors and guide the user through every step to not overwhelm the user
  • Basic UI for compatibility on every device
  • Read- and writeable statistics which can be tracked and expanded to as many players as wanted

Authors

mastermind's People

Contributors

alphakilo11 avatar osumatrix avatar

Stargazers

 avatar

Watchers

 avatar  avatar

mastermind's Issues

Freiwillige Zusatzaufgabe

  • Save stats to file
  • Read stats from file upon startup

Es soll mo ̈glich sein, die Statistiken in einer Datei zu speichern, sodass sie auch beim Beenden des Programms nicht verloren gehen. Beim Starten des Programms sollen die vorhandenen Informationen aus der Datei eingelesen werden und bei der Durchfu ̈hrung neuer Spiele die neuen Werte erga ̈nzt werden.

Technische Mindestanforderungen

  • Das Programm muss in der Programmiersprache C erstellt worden sein, muss sich ohne Fehler und Warnungen mit den Compilerschaltern -ansi -pedantic -Wall -Wextra compilieren lassen, und muss fehlerfrei ausfu ̈hrbar sein.
  • Es du ̈rfen bei der Implementierung keine anderen Bibliotheken als die C89-Standardbibliothek benutzt werden.
    • Der Code muss sich im Wesentlichen an den Vorgaben der Vorlesung orientieren, zum Beispiel: – Programmier-Konventionen.
  • Ausfu ̈hrliche Fehlerbehandlung von Funktionsaufrufen.
  • Sinnvolle Aufteilung des Quellcodes auf verschiedene U ̈bersetzungseinheiten.
  • Sinnvolle Verwendung von lokalen, statischen und globalen Variablen. – Sinnvolle Verwendung von symbolischen Konstanten und Makros.
  • Vermeidung von Speicherlecks.
    • Vorgaben fu ̈r die textuelle Benutzerschnittstelle:
  • Ausfu ̈hrliche Benutzerfu ̈hrung (Informationen u ̈ber die mo ̈glichen Eingaben, versta ̈ndliche Status- und Fehlermeldungen).
  • U ̈bersichtlich formatierte Ausgaben.
  • Sie mu ̈ssen alle Implementierungsentscheidungen begru ̈nden ko ̈nnen.
  • Die Anforderungen der spezifischen Aufgabenstellung mu ̈ssen erfu ̈llt sein.
    • Der Code muss eigensta ̈ndig erstellt worden sein.

Type conflict

I can't figure out the problem.
Probably array != pointer is the problem...

"incompatible pointer types passing 'char [5][32]' to parameter of type 'const char **' [-Wincompatible-pointer-types]"

highscore(players, scores, sorted_scores, sorted_players, PLAYERNUMBER, NAMELENGTH);

Abnahme am 14.02.2022

Die Abnahme besteht aus einer 10-minu ̈tigen Pra ̈sentation des Programms (und zwar der Anwen- dung, nicht des Quellcodes) durch alle Teammitglieder, mit anschließender 5-minu ̈tiger Diskussion. Jedes Teammitglied muss einen Teil der Pra ̈sentation u ̈bernehmen.

– Bei der Abnahme mu ̈ssen alle Teammitglieder anwesend sein.
– Die Teammitglieder führen ihr Programm vor und beantworten Fragen zur Funktionalität und zur Programmierung.
– Die Abnahme erfolgt nach Möglichkeit in Präsenz oder, wenn nötig, digital über Zoom.

Bonus Content

  • CONFIG: max. number of attempts
  • CONFIG: length of code
  • CONFIG: number of colors
  • choose own colors
  • Window-Manager (eg show statistics during games)
  • point ranking(eg points = max. number of attempts - number of attempts)
  • sophisticated point ranking to cover all length of code and number of colors comibinations.
  • High-Scores
  • #5 ("besonders scho ̈ne und durchdachte textuelle Benutzerschnittstelle mit Benutzerfu ̈hrung.")
  • Timer
  • freilassen von Codestellen

Fu ̈r besondere Aspekte der Umsetzung, die u ̈ber die Mindestanforderungen hinaus gehen, kann
man bis zu 2 weitere Punkte erhalten, z.B. fu ̈r
– zusa ̈tzliche sinnvolle Funktionalita ̈ten, die deutlich u ̈ber die Anforderungen der spezifischen
Aufgabenstellung hinaus gehen.
– Beru ̈cksichtigung zusa ̈tzlicher sinnvoller Daten, die nicht in der spezifischen Aufgabenstellung erwa ̈hnt werden und einen erkennbaren Mehrwert fu ̈r die Anwendung bedeuten.
– besonders gelungene Strukturierung des Quellcodes fu ̈r eine bessere Wartung und Erweiter- barkeit des Programms.

  • Solche besonderen Aspekte mu ̈ssen in der Abgabe-Mail und in der Abnahme deutlich gemacht werden.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.