Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#26 23-08-2016 21:57:49

Péhä
Membre
Lieu : Maine et Loire
Distrib. : handylinux 2.5
Noyau : Linux 3.16.0-4-686-pae
(G)UI : thunard
Inscription : 07-07-2016
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Hello,

Je suis ton jeu avec intérêt, car franchement je l'aime bien, j'avais même commencé à bosser sur des illustrations au début de l'été mais j'ai dû mettre en pause car des projets urgent me sont tombés dessus.

Niveau police, pour mes dessins je vais sur Dafont, mais effectivement c'est très dur de trouver du 100% compatible avec les accents itou itou. Du coup je sais que je préfère les police en majuscules ça permet de faire sans les accent et ça reste lisible très facilement.

Auia Pieridum peragro loca nullius ante trita solo.....  De rerum natura, Liber IV, Lucrece

Hors ligne

#27 24-08-2016 08:39:58

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

@Péhä : Cool, merci pour ton attention.
Je pensais mettre en place un système de thème pour que les personnes intéressées puissent en proposer un et le tester. Chaque thème aurait son dossier. Le jeu chargerai les images choisies et s'il ne trouve pas l'image attendue, il prendrait celle du thème par défaut. Cela permettrait de faire des dérivés du thème principal assez rapidement.

Hors ligne

#28 24-08-2016 12:34:48

kawer
Adhérent(e)
Lieu : Académie de la Croix-Vraie
Distrib. : Debian stable / ArchLinux
Noyau : Current
(G)UI : xfwm4
Inscription : 08-10-2013
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Je pense que toutes les polices de Debian sont libre mais au cas où voici une liste non exhaustive sur quelques police des dépots sous licence gpl ici

Rendez à César ce qui est à César et à Dieu ce qui est à Dieu -Cit. J.C.
La persévérance, c'est ce qui rend l'impossible possible, le possible probable et le probable réalisé. -Cit. Robert Half.
Dans toutes les situations, le piège c'était avant, car tu ne voyais pas les murs -Cit. Crevette

Hors ligne

#29 24-08-2016 20:01:27

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

@Kawer ton lien est pas mal, il renvoie notamment ici :
https://en.wikipedia.org/wiki/Open-sour … _typefaces
et ici :
https://www.fontsquirrel.com/
Il y a les fonts d'Android, de Kde ou bien de Ubuntu. Elles sont plus classique, mais plus compléte et plus réaliste. J'essaierai de faire des tests avec celle là.
https://www.fontsquirrel.com/fonts/oxygen
https://en.wikipedia.org/wiki/Roboto

Il faut que j'affine mes idées pour le dessin des menus

Hors ligne

#30 26-08-2016 16:54:39

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

J'ai fait un test avec la font roboto.
J'ai la modif pour test, il faut maintenant ajouter le paquet fonts-roboto pour pouvoir en profiter.

apt install fonts-roboto



Comme le choix et le réglage de la police sont liés au design du menu. J'ai bossé dans Inskcape pour améliorer ma maquette du menu. Voilà ce que cela donne pour le moment :
1472222811.png
Je cherche à faire quelque chose qui ressemble à un écran vidéo transparent, un peu futuriste.
Un fois que j'aurai validé le design je l'implémenterai en essayant de le rendre dynamique en fonction du contenu.
Il faudra peut-être que je bosse sur une animation d'ouverture et de fermeture du menu...

Hors ligne

#31 26-08-2016 18:20:54

kawer
Adhérent(e)
Lieu : Académie de la Croix-Vraie
Distrib. : Debian stable / ArchLinux
Noyau : Current
(G)UI : xfwm4
Inscription : 08-10-2013
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Tien, un petit fail over sur jessie :

Creating the main window succeed

Searching files in the levels folder.
Found file 1 : levels/SokoRobot.slc
Found file 2 : levels/Alberto_Garcia_Arranged.slc
Found file 3 : levels/AC_Smileys_2.SLC
Level folder explored.

Read Files List:
The file list contain 3 files
File 1 : levels/SokoRobot.slc
File 2 : levels/Alberto_Garcia_Arranged.slc
File 3 : levels/AC_Smileys_2.SLC
Files list readed.

Get info from each files
Read the level list.
Read levels from : levels/SokoRobot.slc
The files levels/SokoRobot.slc contain 5 levels

Read levels from : levels/Alberto_Garcia_Arranged.slc
The files levels/Alberto_Garcia_Arranged.slc contain 245 levels

Read levels from : levels/AC_Smileys_2.SLC
The files levels/AC_Smileys_2.SLC contain 106 levels

Attributs from files loaded.

ret:"Level 0"
From "preferences.ini": LevelName = Level 0
First level to load is Level 0
levelchoice from file : 0
 Loading first level.
Found Level 0, 11:7
 #####
 #   ######
 #  .     #
##$#####  #
#  .  $  ##  
#@  ###  #
##### ####
Level loaded
zsh: segmentation fault



La fenêtre se ferme aussitôt ouverte.

Dernière modification par kawer (26-08-2016 18:22:10)


Rendez à César ce qui est à César et à Dieu ce qui est à Dieu -Cit. J.C.
La persévérance, c'est ce qui rend l'impossible possible, le possible probable et le probable réalisé. -Cit. Robert Half.
Dans toutes les situations, le piège c'était avant, car tu ne voyais pas les murs -Cit. Crevette

Hors ligne

#32 26-08-2016 19:24:03

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Elle ne sont pas dans le même dossier c'est pour ça :

Pour jessie: /usr/share/fonts/truetype/roboto/Roboto-Regular.ttf
Pour Stretch:  /usr/share/fonts/truetype/roboto/hinted/Roboto-Regular.ttf

Il faut que je trouve un mécanisme plus simple pour que l'appli trouve l'emplacement des fonts toutes seules. Il doit y avoir un moyen de les trouver facilement sans passer par le chemin d'accès complet.

Je ne sais pas si j'aurai le temps de trouver un correctif ce weekend. Je peux peut-être annuler le dernier commit en attendant mais je ne sais pas comment on fait.
Il faut que je me renseigne...

Hors ligne

#33 26-08-2016 19:55:24

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

J'ai réussi à faire un "git revert" sur le commit de la font Roboto. Je suis donc revenu en arrière.
Le jeux fonctionne à nouveau sur Jessie. Merci pour le signalement...

Je vais essayer de construire quelques choses de plus costaud pour faire appel aux polices partagées.

Hors ligne

#34 30-08-2016 10:50:01

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Bon, j'ai bien avancé sur l'intégration du panneau avec la transparence : Voilà ce que ça donne sous forme de capture d'écran pour l'instant
1472568448.png
Je n'ai pas encore changer la police. Il fallait que je fasse le fond avant.
C'est la prochaine étapes. Je devrais aussi pouvoir faire varier la hauteur du panneau en fonction du sous menu sélectionné. (A condition que ça ne donne pas mal au crâne tongue ).

J'ai ajouté un  paramètre de plus dans le preferences.ini

theme = "original"


Cela permettra d'ajouter des thèmes au jeu si on le souhaite.
Il suffit pour l'instant d'ajouter un dossier dans SokoRobot/img/
de renseigner son nom dans les préférences et d'ajouter une ou plusieurs images. Il faut évidemment garder un nom d'image identique à celui du thème original pour qu'elle soit prise en compte.
Si l'application ne trouve pas d'image elle ira la chercher dans le dossier original. On peut donc modifier tout ou partie du rendu.

Pour ceux qui ont déjà le dossier :

git checkout -- preferences.ini
git pull



Edit: j'ai mis à jour la capture, la hauteur du menu varie en fonction du contenu maintenant et j'ai ajouté le séparateur.

Hors ligne

#35 23-09-2016 23:03:39

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Bon, je fais le point. Je suis en train de m'acheter une maison en même temps que je code et au boulot c'est le coup de feu.
J'ai continué à coder, ça me détend smile  mais j'ai pas vraiment pris le temps de faire le point ici. Me voilà.

Donc depuis le dernier rapport :

Police :
J'ai ajouté les fonts-roboto. J'ai fait un "if c'est pas ici regarde par là" pour prendre en compte le fait que le chemin n'est pas le même entre Jessie et Strecth. Mais ça mériterai que je valide ça avec d'autre distro comme Fedora ou autre.

Traduction
Je me suis penché sur la traduction de l'application. Et en fait c'est beaucoup, mais beaucoup plus simple que je l'imaginais grâce à gettext();
J'ai juste pris le temps de mettre en place le principe. Il faut que je stabilise les textes en anglais avant de vraiment lancer la traduction.
Mais on peut tester le programme en français

msgfmt -o locale/fr/sokorobot.mo locale/fr/sokorobot.po


cp locale/fr/sokorobot.mo /usr/share/locale/fr/LC_MESSAGES/



C'est pareil, c'est un début mais le principe est là.

La passoire
J'ai aussi passé le logiciel dans valgrind afin de trouver les fuites mémoires....et comme par hasard il en a trouvé plein (On est débutant ou on ne l'ai pas).
J'ai corrigé pas mal de chose avec l'aide de Valgrind mais il y a encore quelques trucs qui dépassent mon niveau que je n'ai pas réglé.
Notamment lors de la fermeture du programme, il semble que je ne libére pas toutes la mémoire correctement. L'OS s'en charge à ma place, brutalement mais efficacement mais j'aimerai que cela soit le plus propre possible. J'aimerai que valgrind et SokoRobot s'entendent bien.

J'améliore mon code tranquillement mais sereinement, j'avance parfois lentement, mais j'avance.

Design
Voilà où j'en suis actuellement :

1474663744.png

J'aimerai mettre de la mousse sur les murs, changer le sol du labyrinthe et ajouter un objet ou deux dans l'herbe, histoire d'étoffer tout ça.
Si vous avec des idées, je prends.

Cordialement,
Kao

Hors ligne

#36 27-09-2016 15:51:42

Dunatotatos
Membre
Lieu : Arabie Saoudite
Distrib. : Sid
Noyau : linux-image-amd64
(G)UI : tty
Inscription : 24-04-2012

Re : SokoRobot, un jeu écrit en C par mes soins

Salut kao,

J'ai regardé vite fait ton code (mais je n'ai rien testé). Pour un débutant, c'est impressionnant ! Bon boulot !
Mais il reste des choses à améliorer. Voici une liste largement pas exhaustive :
* La fonction main fait plus de 600 lignes. Pense à la découper en autres fonctions (init, init_level, load, move, save, ...) Le plus simple étant certainement de commencer par créer une fonction int init(void) qui gère l'initialisation du générateur de nombres aléatoires, de la fenêtre SDL (à moins que tu fasses une fonction init_GUI à part), et ce genre de choses.
* Il y a beaucoup de répétition de code. Sur 570 lignes de code non vide dans main.c, 208 sont exactement identiques. C'est beaucoup trop ! Le passage par des fonctions est généralement le meilleur moyen d'éviter la répétition de code.
* Il est d'usage d'ajouter une ligne de documentation dans chaque fichier source pour indiquer l'objectif des fonctions de ce fichier (movement management, save management, GUI, ...)
* Les images vont généralement dans un dossier img (comme tu as fait), lui-même dans un dossier res, qui est au même niveau que src et inc. L'architecture devrait ressembler à ça :

├── inc
│   ├── const.h
│   ├── game.h
│   ├── level.h
│   ├── menu.h
│   ├── settings.h
│   ├── slc.h
│   └── sprites.h
└── src
│   ├── game.c
│   ├── level.c
│   ├── main.c
│   ├── menu.c
│   ├── settings.c
│   ├── slc.c
│   └── sprites.c
└── res
    └── img
        ├── Box.svg
        ├── Congrats.svg
        ├── design.svg
        ├── Goal.svg
        ├── grass.svg
        ├── Robot2.svg
        ├── Robot.svg
        ├── SokoRobot-ScreenShot.png
        └── Walls.svg


Je vois que tu as déjà un dossier img à la racine du projet. Pourquoi ne pas tout mettre dedans ?
* Idéalement, ton/tes binaire(s) va/vont dans un dossier bin/ situé à la racine du projet. Ça te permet d'avoir un .gitignore qui contient bin/ au lieu du nom du binaire qui peut éventuellement changer. Et c'est plus propre. Peut-être que tu le fais, mais mon observation rapide n'a pas vu ça dans ton Makefile.
* Le Makefile aussi est sous licence.
* D'ailleurs, je ne suis pas sûr que ton inclusion de la licence soit dans les normes. (Juste un point à vérifier, je ne suis pas sûr de ce que j'avance.)
* Les ressources ne peuvent pas être sous licence GNU/GPLv2. N'oublie pas de préciser que les ressources (images, musiques, levels, ...)  sont sous licence CC ou je ne sais quoi d'autre qui te conviendrait.
* git clean devrait supprimer le dossier obj, au lieu de seulement le contenu du dossier.

Ceci ne sont que des commentaires très rapides et pas forcément tous constructifs. Quand j'aurai un peu plus de temps, je regarde ton code en entier et ouvre des issues sur github.
D'ailleurs, je te conseille de faire deux branches sur github. Une pour le développement, et la branche master qui ne contient que des versions stables.

Bravo pour ton boulot, c'est impressionnant pour un débutant !

A+
Duna


Never trust Windows output.

Hors ligne

#37 30-09-2016 11:37:38

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Salut Dunatotatos et merci pour tes encouragements, ça fait du bien.
J'ai conscience que certaines choses avaient été mal construite mais je ne savais trop dans quelle direction aller.
J'ai commencé par un petit bout de code et j'ai agrémenté le tout au fur et à mesure de mes découvertes, du coup ça se sent dans l'organisation du travail. J'ai avancé sans trop savoir où aller.
On ne sait monter une cuisine qu'a la fin du montage de sa première. smile

Dunatotatos a écrit :


* La fonction main fait plus de 600 lignes. Pense à la découper en autres fonctions (init, init_level, load, move, save, ...) Le plus simple étant certainement de commencer par créer une fonction int init(void) qui gère l'initialisation du générateur de nombres aléatoires, de la fenêtre SDL (à moins que tu fasses une fonction init_GUI à part), et ce genre de choses.
* Il y a beaucoup de répétition de code. Sur 570 lignes de code non vide dans main.c, 208 sont exactement identiques. C'est beaucoup trop ! Le passage par des fonctions est généralement le meilleur moyen d'éviter la répétition de code.


Je m'en doutais au vu des autres codes que j'ai pu explorer, je dois pouvoir sortir le lancement de l'application et du premier niveau et je dois pouvoir rationaliser la partie sur les commandes claviers.

Dunatotatos a écrit :


* Il est d'usage d'ajouter une ligne de documentation dans chaque fichier source pour indiquer l'objectif des fonctions de ce fichier (movement management, save management, GUI, ...)


Tout à fait d'accord avec toi. Certains documents comme le sprite.c ne servent qu'a charger en mémoire les images et en générer des surfaces. Mais d'autres comme game.c et level.c ont une séparation de rôle un peu flou. Je pense qu'il faut que je créais des nouveaux fichiers et que je transfére les fonctions une par une. Mon code a tellement évolué depuis le démarrage et donc l'organisation que j'avais imaginé au début n'est plus valable du tout. Rien que dans les noms des fichiers il faut que je sois plus clair.

Dunatotatos a écrit :


* Les images vont généralement dans un dossier img (comme tu as fait), lui-même dans un dossier res, qui est au même niveau que src et inc. L'architecture devrait ressembler à ça :

├── inc
│   ├── const.h
│   ├── game.h
│   ├── level.h
│   ├── menu.h
│   ├── settings.h
│   ├── slc.h
│   └── sprites.h
└── src
│   ├── game.c
│   ├── level.c
│   ├── main.c
│   ├── menu.c
│   ├── settings.c
│   ├── slc.c
│   └── sprites.c
└── res
    └── img
        ├── Box.svg
        ├── Congrats.svg
        ├── design.svg
        ├── Goal.svg
        ├── grass.svg
        ├── Robot2.svg
        ├── Robot.svg
        ├── SokoRobot-ScreenShot.png
        └── Walls.svg


Je vois que tu as déjà un dossier img à la racine du projet. Pourquoi ne pas tout mettre dedans ?


J'avais séparer les images sources (SVG) des images des images applatit (PNG) en les plaçant dans le dossier src. Pour moi les fichiers svg ne concernent que le graphiste et pas l'execution du jeu.
Lors de la fabrication d'un éventuel paquet, elles ne seraient pas pris en compte seulement dans le paquet source...

Dunatotatos a écrit :


* Idéalement, ton/tes binaire(s) va/vont dans un dossier bin/ situé à la racine du projet. Ça te permet d'avoir un .gitignore qui contient bin/ au lieu du nom du binaire qui peut éventuellement changer. Et c'est plus propre. Peut-être que tu le fais, mais mon observation rapide n'a pas vu ça dans ton Makefile.


C'était dans ma todolist wink

Dunatotatos a écrit :


* Le Makefile aussi est sous licence.
* D'ailleurs, je ne suis pas sûr que ton inclusion de la licence soit dans les normes. (Juste un point à vérifier, je ne suis pas sûr de ce que j'avance.)
* Les ressources ne peuvent pas être sous licence GNU/GPLv2. N'oublie pas de préciser que les ressources (images, musiques, levels, ...)  sont sous licence CC ou je ne sais quoi d'autre qui te conviendrait.


Les licences sont ma bête noire, mon poil à gratter....

Dunatotatos a écrit :


* git clean devrait supprimer le dossier obj, au lieu de seulement le contenu du dossier.


Je crois avoir rencontré des problèmes avec le fait de pousser des dossiers vides dans git.
Il ne me le prennait pas en compte. Il faut que je reteste ça.

Dunatotatos a écrit :


Ceci ne sont que des commentaires très rapides et pas forcément tous constructifs. Quand j'aurai un peu plus de temps, je regarde ton code en entier et ouvre des issues sur github.
D'ailleurs, je te conseille de faire deux branches sur github. Une pour le développement, et la branche master qui ne contient que des versions stables.



Git est un monde en soit, j'avais déjà créé des branches pour appliquer des grosses modifications de code. Mais faire une branche stable et une dev serait plus propre. Il faut aussi que je rationalise les commit. J'ai tendance à en faire des gros avec plusieurs sujets traités en même temps dedans.

Dunatotatos a écrit :


Bravo pour ton boulot, c'est impressionnant pour un débutant !

A+
Duna



En tout cas merci pour ton attention et tes conseils. J'ai trouvé beaucoup d'information sur internet et dans les livres mais c'est pas toujours facile de faire le tri sans expérience.

Je dois notamment revoir la création de la grille de jeu et l'améliorer. J'avais mal compris l'utilsation des tableaux multidimentionnel (grid[x][y]), je me suis compliqué la vie pour rien.
https://openclassrooms.com/forum/sujet/ … e-91313102

Kao

Hors ligne

#38 30-09-2016 14:25:26

BioKore
Membre
Lieu : Dans l'espace !
Distrib. : Mint 18
Noyau : Linux 4.4.0-21-generic
(G)UI : Nemo 3.0.6
Inscription : 23-09-2016
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Salut ! Et félicitations pour ton jeux ! J'ai moi aussi suivi le même "cours" il y a un certain temps, mais je m'en suis arrêté à la SDL. D'ailleurs, je vais peut-être me lancer dans la chose finalement, même si je préférerais voir ce que ça donne du côté d'OpenGL. En tout cas c'est bien de voir ce que tu as pu faire "juste" en suivant un cours et avec un peu d'imagination smile

Finalement, je pense me lancer dans la chose pour venir te faire un peu de concurrence wink


Bonne continuation !

Mint 18 // essai de débian + Cinnamon pour migration. Développeur du temps libre...
config : Portable Core I7 // 4Go Ram // SSD256Go // cg Intel HD3000 (on ne peut pas tout avoir) // wi-fi Alpha AWUS036H <- marche trop fort !
Enfin : OpenBSD 6.0 + XFCE

Hors ligne

#39 30-09-2016 15:17:41

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Salut, BioKore

Le cours est pas mal du tout même si il y a quelques trucs à améliorer comme les tableaux multidimensionnel et la SDL2 etc.. mais dans l'ensemble ça permet de mettre le pied à l'étrier.

Comme j'ai été mordu par le C et que j'avais déjà le virus Linux, j'ai aussi acheté "Developpement système sous Linux" de Christophe Blaess. C'est un bon gros pavet, avec tout ce qu'il faut pour survivre, notamment le passage sur la traduction et gettext(); Dommage qu'il ne rentre pas dans la poche smile
http://www.editions-eyrolles.com/Livre/ … sous-linux
Je n'ai pas encore lu tous les chapitres pour le moment mais c'est une vrai bible... J'avais pu le feuilleter dans une Fnac avant de leur acheter.

Du coup, les deux combinés, ça donne des ailes, on a l'impression de pouvoir tout faire...

Hors ligne

#40 02-10-2016 10:29:53

Dunatotatos
Membre
Lieu : Arabie Saoudite
Distrib. : Sid
Noyau : linux-image-amd64
(G)UI : tty
Inscription : 24-04-2012

Re : SokoRobot, un jeu écrit en C par mes soins

git ne prend effectivement pas en compte les dossiers vides. Une technique généralement utilisée et de créer un fichier .gitignore à l'intérieur dossier vide que l'on veut inclure dans un commit. Mais ici, plutôt que d'inclure le dossier obj/, tu ferais mieux de simplement le supprimer dans la règle make clean.
(Et là, je me rends compte que je me suis planté dans mon précédent post. Je voulais parler de make clean, pas git clean...)

Quant à la gestion d'un dépôt git, ça vient avec le temps, les erreurs, et pas mal de tests. Je te conseille juste de créer 2 branches pour pouvoir inclure les merge et release dans tes tests. Si tu codes comme une rockstar et n'a jamais besoin de modifier ton historique de commits, ces fonctionnalités te seront suffisantes.

Never trust Windows output.

Hors ligne

#41 03-10-2016 13:24:24

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Je pensais créer une branche "develop" comme suggéré ici :
https://git-scm.com/book/fr/v1/Les-bran … s-branches

Puis des sous-branches pour les petites corrections et tests.

Ce que je ne sais pas c'est comment gérer les sorties. Est ce que je dois faire un commit à un instant T, ou bien juste faire un tar.gz  du dossier et le placer quelque part ?
Je souhaite commencer par une alpha-0.0001 histoire de ne pas me mettre la pression avant la version 1 big_smile

Hors ligne

#42 03-10-2016 13:40:13

Dunatotatos
Membre
Lieu : Arabie Saoudite
Distrib. : Sid
Noyau : linux-image-amd64
(G)UI : tty
Inscription : 24-04-2012

Re : SokoRobot, un jeu écrit en C par mes soins

Par "sortie", j'imagine que tu veux dire release. Si c'est le cas, la meilleure solution est certainement de considérer que tous les commits sur la branche master sont des releases. Mieux encore, tu peux regarder la fonctionnalité "tag" de git, pour pouvoir mettre un numéro de release sur un commit précis (de ta branche master, idéalement).

Pas besoin de sortir un tar.gz. Github est fait pour du code source, pas pour du téléchargement de logiciel. L'utilisateur intéressé par ton jeu clonera le dépôt, et compilera le projet localement. Si tu veux commencer à fournir des binaires, c'est autre chose, et ça devient vite pénible à gérer. Je te le déconseille pour le moment.

Never trust Windows output.

Hors ligne

#43 03-10-2016 14:12:59

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Parfait, c'est exactement ça que je cherchais. J'ai fait un tag v0.01 histoire de marquer le coup.
Il y a tout ce qu'il faut ici : https://git-scm.com/book/fr/v2/Les-base … 9tiquetage

Sinon, je ne comptais pas distribuer de binaire, seulement les sources, et éventuellement fabriquer ou faire fabriquer des paquets pour les différentes distrib mais pas les héberger. Mais c'est du long terme tout ça. Déjà il faut que je trouve un peu de temps pour me remettre dans mon code et que je nettoie tous ça.

Hors ligne

#44 08-10-2016 22:45:44

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

J'ai eu un peu de temps pour bosser, voici sur quoi j'ai avancé.
(J'ai principalement suivi les conseils de Dunatotatos)

- J'ai créé une branche « develop » qui permet de trafiquer le code tranquillement
- J'ai corrigé mon erreur de tableau multidimensionnel
- J'ai ajouté un commentaire pour décrire le rôle des fichiers
- J'ai renommé les « game.c » en « level_decor.c »
- J'ai divisé le fichier « menu.c » en deux pour plus de clarté. (il faut que j'améliore encore la gestion du texte dans les menus.)
- J'ai ajouté un fichier « move.c » pour sortir et factorisé le déplacement du joueur du fichier « main.c ». Ça permet d'éviter des répétitions, c'est un travail à continuer
- J'ai déplacé l’exécutable dans un dossier « bin »
- J'ai mis une licence au fichier « makefile ». J'ai aussi continué à l'améliorer.

J'ai aussi ajouté un fichier « changelog,», mais il faut que j'apprenne à le remplir smile

Voilà pour le moment...

Hors ligne

#45 09-10-2016 11:16:29

Dunatotatos
Membre
Lieu : Arabie Saoudite
Distrib. : Sid
Noyau : linux-image-amd64
(G)UI : tty
Inscription : 24-04-2012

Re : SokoRobot, un jeu écrit en C par mes soins

Très bon boulot !
Je n'ai pas oublié de jeter un œil à ton projet, loin de là. Mais je manque encore de tempe. Ça va venir !

Never trust Windows output.

Hors ligne

#46 10-10-2016 13:29:39

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Merci,
Les conseils et les coups de main sont les bienvenues. Il n'y a pas d'obligation de temps en tout cas. Personnellement c'est un peu au compte goutte que j'arrive à m'en libérer, si tu as du temps c'est tant mieux, si tu n'en as pas c'est pas très grave.

Sinon, pour les images, je pensais appliquer une licence CC BY SA 4.0 : https://creativecommons.org/licenses/by-sa/4.0/deed.fr

Je pensais y faire référence dans le README du git sous la forme d'un petit texte et d'un lien vers la Creative Commons.

Hors ligne

#47 14-10-2016 18:23:59

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Pour info,

-J'ai ajouté une mention sur le README à propos de la licence des images, en espérant que cela suffise. (Uniquement dans la branche Master)
Et dans dans la branche "develop"
- J'ai mis à jour le design du menu. J'ai ajouté du détail et j'ai passé le menu déroulant à 360px de large au lieu de 350px afin d'avoir un multiple de 40, la largeur des sprites.

- J'ai aussi revu le design du sol. J'ai ajouté beaucoup de détail, ce qui contraste avec les murs qui paraissent un peu trop simple. Je prévois donc de faire aussi une passe sur les murs et sur l'ensemble des éléments afin d'augmenter le niveau de détail et d'être raccord avec le sol.

Voilà le résultat pour le moment
1476461856.png

Hors ligne

#48 27-10-2016 23:11:05

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

Petit up pour signifier les changements depuis la dernière fois :

-J'ai retravaillé le chargement des textes, notamment ceux qui ne changent jamais. Ils sont générés une seule fois au démarrage de l'appli et non à chaque fois que je les affiche.
-J'ai essayé encore une fois de redessiner les murs mais je n'arrive pas à sortir quelque chose de potable. J'aimerai les enrichir de détails pour les vieillir un peu. Si quelqu'un a une idée je suis preneur sos.gif. Un sprite fait 40*40px, c'est petit, il faut donc être malin pour avoir un dessin propre et lisible.

- Sinon le gros plus, c'est qu'il est maintenant possible de déplacer le robot à la souris. J'ai ajouté une sur-brillance sur la case cible afin de ne pas naviguer à l'aveugle.
(A noter que dans certaines conditions que je n'arrive pas à cerner correctement deux cases cibles sont illuminées.)

- Il est aussi possible de naviguer dans les menus avec la souris.
Il manque juste la possibilité offerte pas les commandes P (Previous), N (Next) et R (Reset).

To continued....

Hors ligne

#49 28-10-2016 18:11:43

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : SokoRobot, un jeu écrit en C par mes soins

Très sympa ce sokoban, j'adore ce type de jeux, j'ai passé des heures à jouer à sokoban.

Joli travail kao, tu peux être content de toi smile

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#50 29-10-2016 15:21:04

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : SokoRobot, un jeu écrit en C par mes soins

@Enicar, merci pour les encouragement,
Puisque tu sembles être un joueur invétéré que penses-tu de l'ajout d'un CTRL+Z et d'un compteur du nombre de déplacement ?

J'hésites encore sur le CTRL+Z et notamment sur sa profondeur, c'est à dire le nombre de fois que l'on peut revenir en arrière.
Si vous avez un avis, je suis preneur.

Hors ligne

Pied de page des forums