Rust fanboy
Pour ceux qui ont envi de s'instruire tout seul en créant un Pong et un Space Shooter basique, suivez le guide :
Pong : http://www.phstudios.com/?q=node/16
Space Shooter : http://www.phstudios.com/?q=node/49
Il y a le cours en PDF pour créer pas à pas les jeux, il y a le code source et des vidéos pour ceux qui ne savent pas lire.
Je donne ces liens pour ceux qui sont des noobs complet comme moi et qui veulent suivre la voix de l'autodidacte afin d’appréhender plus sereinement le cours de M. Sebum.
C'est pas faux.
En même temps, à part les types numériques de base, les enum, les chars et les strings, TOUT est passé par référence quand tu fais un "=" en C#. Du coup c'est pas trop compliqué de s'en souvenir (et, d'une certaine façon, c'est plutôt logique. Sauf pour les strings ).
Ca dépend dans quel langage les Strings.
Mais ouai, c'est le type social traitre.
Je ne connais que les langages C/C++ qui font du vrai pointeur. C'est du hardos à maîtriser, mais tu as des ballz of steels après .Ouai, j'imagine que connaitre le C, voire le C++ doit carrément aider, mais bon, j'en suis à peine aux pointeurs, alors ...
Au moins les comprendre peut servir (gestion de la mémoire/références), surtout quand tu devras faire mumuse avec la programmation objet.
En même temps si le C# a été créé, c'est pas pour être un langage super compliqué à comprendre, mais bien un langage fait pour coder facilement et rapidement, mais c'est vrai que ça peut mener à des raccourcis qui ne sont pas forcément de bon goût, surtout avec les pointeurs (Et c'est un mec qui a pas mal programmé en C++ qui vous le dit...)
Mouais... Il me semble surtout que C# avait été créé pour contrer Java qui prenait un peu trop d'importance aux yeux de Crosoft, à une époque où il rêvait d'être maître du monde...
I am Moanaaaaaaa !!! (et en version legit!)
Mais vous savez... les pointeurs existent toujours sous C#. Si jamais tu en as besoin, tu peux toujours les utiliser par contre c'est considérer comme du code "Unsafe"...
Par ce que bon les pointeurs, c'est sans doute la première cause de bug dans les codes écrit en C/C++, donc tout comme Java, le C# les a caché aux développeurs.
Juste, une petite question, comme ça : C'est quoi les pointeurs?
Sont pas cachés, c'est juste que leur utilisation est implicite
Enfin bon, c'est l'éternel gueguerre barbus VS d'jeuns.
Pour faire simple, quand tu déclares une variable (si tu vois pas de quoi je parle, arrête tout de suite de lire ça, et vas suivre les cours du sdz, c'est d'la bonne!), ben tu alloues un espace mémoire, qui possède une adresse (représenté en hexadécimal genre fffffffff), et le pointeurs, ben ça sert juste à récupérer cette adresse et à la stocker. En très gros, c'est ça...
Je vois à peu près.
Version que j’espère simple :
C'est une variable qui contient une adresse mémoire vers une valeurs ou un objet au lieu de contenir cette valeurs directement.
C'est un concept très important en c et c++ qui permet de gérer des objets créer dynamiquement dans la mémoire et d'y accéder.
Mais c'est aussi source de beaucoup de bugs, puisqu'un pointeur mal gérer peut "perdre" son contenu et pointé sur rien ce qui provoque de gros plantage quand tu essaie de faire des choses avec, mais tu peut aussi supprimer le pointeur ou modifier ce qu'il pointe en oubliant de supprimer ce qu'il pointait et qui devient donc innaccesible mais toujours présent en mémoire ( qui dans ce cas peut être saturé de données plus utilisé ).
Vous savez que, au début, je pensais que vous parliez du curseur de la souris?
Grosso merdo, c'est comme deux modes de jeu :
- Mode noob avec des couches de protections = les variables
- Mode pro sans protection mais qui permet de TOUT faire = les pointeurs
Les pointeurs manipulent la mémoire virtuelle (RAM) de ton programme... oû se trouvent tes variables et tes objets (et bien plus).
Faut comprendre que le principe des pointeurs c'est un truc de base dans tout ordinateur, un processeur tout ce qu'il sait faire c'est des opérations à partir de valeurs situées à un endroit X de la mémoire, endroit X qu'on situe grâce à un pointeur
Donc le fait de cacher ça au programmeur est un truc qui semble pour certains (comme moi) un peu bizarre, une genre d'astuce contre-nature
Rust fanboy
Cela dépend.
La programmation objet a des principes et des objectifs totalements différents, par rapport à la programmation fonctionnelle (le C).
Le langage objet se base sur une hiérarchie de classes et de paquages, avec des règles d'accessibilités. Si on devait utiliser les gros pointeurs du C, et donc avoir accès à tout les variables et valeurs du programme, on surpasserait ces limites... un peu trop.
Ce n'est pas fait pour la prog objet, en somme.
La même quand j'ai commencé à apprendre le C ...
Sinon, je voudrai être sur d'un truc; Le langage C est un langage de bas niveau, c'est à dire qu'on peut faire plein de trucs avec, mais c'est long et fastidieux, car non "spécialisé". Avec le C#, c'est beaucoup plus rapide à faire, mais on peut faire moins de choses. C'est ça ?
Bah merde, j'ai plus de signature
C'est pas tout à fait une question de "possibilité".
Un langage comme le c et c++ est compilé pour être proche de la machine et est donc très rapide à l'exécution et le développeur à un contrôle maximal sur la façon dont le programme fonctionne. En contrepartie il doit justement veiller lui même à ce contrôle pour éviter les problèmes ( principalement sur la gestion de la mémoire par exemple ).
Un langage comme le C# ou le JAVA passe par une plate forme d’exécution intermédiaire ( .Net pour C# / Virtual Machine pour JAVA ) l’exécution est donc relativement plus lente et possède certaines limite lié à cette plate forme intermédiaire ( en java par exemple tu ne peut pas forcément exploité toute la mémoire du PC ). L’intérêt c'est un code qui nécessite moins de contrôle à l’exécution ( contrôle effectué par le framework ) donc globalement plus simple à écrire. Ca permet aussi un code plus universel qui peut fonctionner au sein de différent système pour peu que le framework y soit porté sans changement là où un code C/C++ doit dans le meilleur des cas être compilé pour la plateforme cible et nécessite dans le pire des cas un minimum de modifications.
Pour préciser : en C/C++ c'est le même code source pour toutes les machines, mais dans ta page téléchargements tu devras proposer le programme pour Windows, le programme pour Linux, le programme pour Mac, etc. bien que tous ces programmes aient été fabriquées à l'aide du même code.
En revanche en Java par exemple, en théorie tu fournis le même fichier quelle que soit la machine de l'utilisateur (en pratique c'est pas forcément toujours le cas, c'est un gros fail de Java sur ce point là puisque c'était là son argument principal au début)
Par exemple Minecraft est jouable sous Mac, sous Windows, sous Linux, sous téléphone portable en théorie, etc.
(sinon merci d'avoir déplacé le topic des programmeurs ici où il a plus de visibilité )
Rust fanboy