Une librairie graphique basse résolution en C pour Apple II

Dans cet article, je mets à disposition le résultat de mon dernier projet ; une bibliothèque graphique basse résolution pour Apple II. Cette librairie intitulée LRG (pour low resolution graphics) a été développée grâce à cc65 et est destinée à la programmation en C. Elle offre un ensemble de fonctions graphiques permettant de dessiner en mode graphique basse résolution soit 40 x 48 points en 16 couleurs.

La bibliothèque tgi offre des fonctionnalités similaires mais j’ai réalisé ce projet à des fins d’apprentissage ; programmation en C bas niveau et développement d’une bibliothèque pour Apple II.

Continuer la lecture de « Une librairie graphique basse résolution en C pour Apple II »

De belles rosaces en C sur Apple II

Une nouvelle page dédiée à la programmation en C sur Apple II est disponible. Elle fait suite au tutoriel consacré à la programmation graphique en C avec la bibliothèque tgi de cc65 (voir ici) et reprend le programme en BASIC Applesoft de dessin de belles rosaces (voir ).

Un aspect intéressant de la programmation est abordé ; le calcul sur des nombres à virgules fixes, pas simple mais très utile lorsque les nombres à virgule flottante ne sont pas supportés.

Voici le lien vers la page.

Une page sur la programmation graphique en C pour Apple II

Je viens d’ajouter une nouvelle page intitulée « Programmation graphique haute résolution en C sur Apple II » accessible depuis le menu « Programmation ».

Vous y découvrirez comment créer des images graphiques en langage C en utilisant cc65 et la librairie « tiny graphics interface » ou tgi. Un programme de démo est fourni, dont voici un exemple :

Nuit étoilée de Noël

Bonne lecture et bonne programmation sous Apple II…

Calculez pi avec un Apple II

Je suis tombé récemment sur un livre que j’avais acheté fin des années 90, « Le fascinant nombre pi«  de Jean-Paul DELAHAYE.

Le livre décrit un programme mystérieux calculant les 2400 premières décimales de pi. Le code est du C et l’aspect intéressant est qu’il est très court, et également très cryptique. Nous allons voir s’il est possible de calculer pi sur un Apple II en utilisant ce code…

Continuer la lecture de « Calculez pi avec un Apple II »

Aventure dans une grotte

Cet article présente une mise à jour d’un jeu d’aventure développé en 1988 par Russel Wallace ; Cave Adventure.

J’ai choisi de mettre à jour ce programme car il a été développé en C et est un bon cas d’usage pour ma fonction jprint présentée dans mon article précédent. J’ai donc repris le code source disponible sur IFDB et l’ai adapté pour le compilateur moderne gcc.

Le jeu présente également un minimum d’intérêt ; il est inspiré du célèbre jeu d’aventure textuel colossal cave adventure et la jouabilité est plutôt bonne.

Continuer la lecture de « Aventure dans une grotte »

Affichage avec alignement justifié en C

Cet article propose un algorithme avec une implémentation en langage C permettant d’afficher un texte en alignement justifié. Ceci signifie que le texte est aligné à gauche et à droite sur un nombre de colonnes prédéfinies, la dernière ligne étant alignée à gauche. Le programme va donc insérer les espaces nécessaires entre les mots afin d’obtenir les alignements.

Vous aurez ainsi à disposition une fonction C permettant d’avoir une belle présentation pour vos jeux d’aventure textuels… et d’autres utilisations sont possibles, bien évidemment.

Cela semble assez simple en théorie, mais j’ai intégré les contraintes suivantes :

  • Pas d’utilisation de nombres réels (float) pour que le programme reste performant avec un ordinateur 8 bits.
  • Dans le cas ou un mot est plus long que le nombre de colonnes d’affichage, ce mot doit être coupé afin de conserver un affichage correct.
Continuer la lecture de « Affichage avec alignement justifié en C »

Un château en C

Bonne année à toutes et tous !

Pour 2023, j’espère avoir plus de temps pour publier des articles sur la rétroprogrammation, le rythme ayant pas mal baissé ces derniers mois.

Je débute l’année avec une suite de l’article sur le jeu Château Gaillard publié il y a quelques mois. Le jeu d’aventure dont il est question est issu d’un livre de Tim Hartnell, « Creating adventure games on your Computer« , et développé en BASIC (des années 80).

J’avais mentionné dans mon article que Château Gaillard avait été porté en C++ et le code source, crée par Ben Grimmer est disponible ici. La dernière version date de 2012.

J’ai repris le code en C++ et l’ai porté en langage C, l’objectif initial étant de compiler ce code avec cc65 pour faire fonctionner le jeu sur Apple II. Ce travail m’a pris beaucoup plus de temps qu’initialement prévu, la gestion des chaînes de caractères étant plus complexe en C qu’en C++ ce qui a nécessité de recoder une bonne partie du programme.

Je suis arrivé à un programme fonctionnel sous Windows ou Linux avec gcc, mais impossible pour l’instant de le faire tourner sur un Apple II, même si la compilation avec cc65 ne génère pas d’erreur.

En attendant d’y voir plus clair, voici le code en C de Château Gaillard, utilisable sous Linux/Windows.

La compilation est simple puisqu’il suffit de saisir la commande make dans une fenêtre de commande. Le nom de l’exécutable est cg sous Linux ou cg.exe sous Windows.

J’ai également ajouté les fonctions suivantes :

  1. Possibilité de jouer sans attaque de monstre,
  2. Pouvoir saisir un identifiant de partie qui sera utilisé pour initialiser les tirages aléatoires.

Enfin, pour vous aider à sortir de cette aventure, voici un lien vers la carte du jeu.

10 PRINT "Bonne chance !"
20 GOTO 10

Adventure Game in C for Apple II

I’ve been thinking about coding an adventure game in C for months. I wanted to write a code that would compile on both modern and old computers, probably because the idea of having a source code that would last for such a long period of time is amazing. Especially in 2022 when computer science changes so rapidly, with several new programming langages coming up every year.

This is possible thanks to the cross-compiler cc65, which I introduced in a previous article. I wanted a code that would work on both Apple II and Linux/Windows based modern PCs.

Since I have no time to code a whole adventure from scratch, I’ve found a small adventure game on The Interactive Fiction Archive: ISLAND.

Continuer la lecture de « Adventure Game in C for Apple II »

Superbe environnement de développement en C sous Windows

Cet article va vous permettre de faire du développement en langage C dans l’environnement Windows 10. Jusqu’à présent, j’ai uniquement abordé le développement en C dans un environnement « Unix-like » (Linux ou Mac OS).

Malgré l’absence de compilateur installé nativement, il est tout à fait possible de coder en C sous Windows, y compris avec des logiciels libres (ou presque). L’environnement présenté ici est le compilateur C de GNU (gcc) porté sous Windows et l’éditeur de code Visual Studio Code.

VSC
Le mariage de la carpe et du lapin ?

Continuer la lecture de « Superbe environnement de développement en C sous Windows »