Open Source Developer Network

Build. Share.
Keep it open.

OCCDN ist ein Portal für freie Entwickler, Open-Source-Games und Software. Projekte in JavaScript, C, C++, Python und Node.js – offen zum Lernen, Forken, Weiterbauen und Teilen.

JavaScript C C++ Python Node.js OpenGL
occdn://developer-network
$ git clone https://github.com/d4brain
 public repositories found
 source code available
 community forum online

const occdn = {
  games: "open",
  software: "open",
  ideas: "welcome"
};


// Build something worth sharing.

Das letzte Beispiel der Zehner-Serie ist ein kleines C++-Konsolenprogramm. Es liest Highscores aus einer Datei, fügt einen Eintrag hinzu und sortiert die Rangliste.

Projektstruktur

highscore/
  CMakeLists.txt
  src/main.cpp

CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(Highscore LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(highscore src/main.cpp)
if(MSVC)
 target_compile_options(highscore PRIVATE /W4)
else()
 target_compile_options(highscore PRIVATE -Wall -Wextra -Wpedantic)
endif()

src/main.cpp

#include <algorithm>
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
struct Score{std::string name;int points;};
int main(){
 std::vector<Score> scores;
 std::ifstream input("scores.txt");
 Score item;
 while(input>>item.name>>item.points)scores.push_back(item);
 std::cout<<"Name und Punkte: ";
 if(!(std::cin>>item.name>>item.points)||item.points<0){
  std::cerr<<"Ungültige Eingabe
";return 1;
 }
 scores.push_back(item);
 std::ranges::sort(scores,{},&Score::points);
 std::ranges::reverse(scores);
 if(scores.size()>10)scores.resize(10);
 std::ofstream output("scores.txt");
 std::cout<<"Top Scores
";
 for(const auto& score:scores){
  output<<score.name<<' '<<score.points<<'
';
  std::cout<<score.name<<" - "<<score.points<<'
';
 }
}

Kompilieren

cmake -S . -B build
cmake --build build

Starten

# Linux/macOS oder Single-Config-Generator
./build/highscore

# Visual Studio Multi-Config
build/Debug/highscore.exe

Testszenarien

  • Leere oder fehlende Datei
  • Negative Punktzahl
  • Mehr als zehn Einträge
  • Gleiche Punktzahlen

Folgeprompts

  • CSV-Format mit Leerzeichen in Namen
  • Separate Klasse für das Repository
  • Unit-Tests für Laden, Sortieren und Speichern
WHY OCCDN

Code should be usable,
not hidden.

OCCDN bündelt freie Software, spielbare Experimente und Quellcode an einem Ort. Der Fokus liegt auf nachvollziehbaren Projekten, direktem Zugriff und einer Community, die Ideen nicht nur diskutiert, sondern baut.

✓ Frei zugängliche Projekte ✓ Quellcode zum Forken ✓ Direkte spielbare Builds ✓ Austausch im Forum