Accueil > > > LE SECRET DU TOMBEAU
LE SECRET DU TOMBEAU
Information sur la source
Description
Le premier ordinateur que j'eus fut un Amstrad CPC464 et le premier jeu fut "Le Secret du Tombeau", sorti en 1986. C'est un jeu d'action/aventure que je trouve toujours excellent aujourd'hui, et j'ai eu envie de le ré-écrire sous VB (sans en avoir vu le code). Mon programme doit néanmoins être très différent de l'original, sans aucune optimisation, mais en contre-partie, il permet une flexibilité de configuration des plans assez grande. Quelques autres différences: - Une (et une seule) sauvegarde de la progression possible; - Configuration des contrôles (clavier et manette) plus détaillée; - Tir à sens unique; - Affichage textes et inventaire. Le jeu en 2 mots: vous êtes un explorateur qui visitez des pyramides. Vous devez en percer les secrets et en réchapper vivant. Vous pouvez tirer, poser des mines, sauter et actionner tout un tas de mécanismes (et de pièges!). En plus du plan original, j'ai créé un nouveau plan "Le Secret du Volcan", nettement plus compliqué que "Le Secret du Tombeau". J'ai en réalité passé beaucoup plus de temps à configurer ce plan qu'à programmer le jeu, malgré un éditeur assez poussé (dont copier-coller amélioré). Ci-dessous, un extrait de l'algorithme d'intelligence artificielle des prêtres. C'est simple mais ça les rend coriaces.
Source
- Private Sub TrajetMéchants(ByVal X As Integer, ByVal Y As Integer, ByVal Dir As String)
- 'Les trajets empruntés par les méchants sont calculés à partir de la position de l'explorateur
- Dim Xa As Integer, Ya As Integer
-
- If Abs(X - PosiExplo.X) > cXMaxMéch Or Abs(Y - PosiExplo.Y) > cYMaxMéch Then Exit Sub
- If TrajMéch(X - PosiExplo.X, Y - PosiExplo.Y) <> "" Then
- If Len(TrajMéch(X - PosiExplo.X, Y - PosiExplo.Y)) < Len(Dir) Then Exit Sub
- If Len(TrajMéch(X - PosiExplo.X, Y - PosiExplo.Y)) = Len(Dir) And Rnd < 0.5 Then Exit Sub
- End If
-
- Xa = (X + TailleXPlan) Mod TailleXPlan
- Ya = (Y + TailleYPlan) Mod TailleYPlan
-
- If LaVoieEstLibre(Xa, Ya) Then
- TrajMéch(X - PosiExplo.X, Y - PosiExplo.Y) = Dir
- Else
- Exit Sub
- End If
-
- 'Récursivité
- TrajetMéchants X + 1, Y, Dir + "0"
- TrajetMéchants X - 1, Y, Dir + "2"
- TrajetMéchants X, Y + 1, Dir + "3"
- TrajetMéchants X, Y - 1, Dir + "1"
- End Sub
-
-
- If ancPerso(X, Y) = Prêtre Then
- 'On cherche le dernier tournant
- i = 2
- Do Until Mid(TrajMéch(X, Y), i, 1) <> Mid(TrajMéch(X, Y), 2, 1)
- i = i + 1
- If i = Len(TrajMéch(X, Y)) + 1 Then Exit Do 'aucun: en ligne droite
- Loop
- If i <> Len(TrajMéch(X, Y)) Then
- DéplacementMéchant Xa, Ya, CInt(Right(TrajMéch(X, Y), 1))
- Else
- 'Les prêtres s'arrêtent au dernier tournant
- Méchant(Xa, Ya).Etat = AlArrêt
- End If
- Else
- 'Les autres méchants fonçent tête baissée
- DéplacementMéchant Xa, Ya, CInt(Right(TrajMéch(X, Y), 1))
- End If
-
-
Private Sub TrajetMéchants(ByVal X As Integer, ByVal Y As Integer, ByVal Dir As String)
'Les trajets empruntés par les méchants sont calculés à partir de la position de l'explorateur
Dim Xa As Integer, Ya As Integer
If Abs(X - PosiExplo.X) > cXMaxMéch Or Abs(Y - PosiExplo.Y) > cYMaxMéch Then Exit Sub
If TrajMéch(X - PosiExplo.X, Y - PosiExplo.Y) <> "" Then
If Len(TrajMéch(X - PosiExplo.X, Y - PosiExplo.Y)) < Len(Dir) Then Exit Sub
If Len(TrajMéch(X - PosiExplo.X, Y - PosiExplo.Y)) = Len(Dir) And Rnd < 0.5 Then Exit Sub
End If
Xa = (X + TailleXPlan) Mod TailleXPlan
Ya = (Y + TailleYPlan) Mod TailleYPlan
If LaVoieEstLibre(Xa, Ya) Then
TrajMéch(X - PosiExplo.X, Y - PosiExplo.Y) = Dir
Else
Exit Sub
End If
'Récursivité
TrajetMéchants X + 1, Y, Dir + "0"
TrajetMéchants X - 1, Y, Dir + "2"
TrajetMéchants X, Y + 1, Dir + "3"
TrajetMéchants X, Y - 1, Dir + "1"
End Sub
If ancPerso(X, Y) = Prêtre Then
'On cherche le dernier tournant
i = 2
Do Until Mid(TrajMéch(X, Y), i, 1) <> Mid(TrajMéch(X, Y), 2, 1)
i = i + 1
If i = Len(TrajMéch(X, Y)) + 1 Then Exit Do 'aucun: en ligne droite
Loop
If i <> Len(TrajMéch(X, Y)) Then
DéplacementMéchant Xa, Ya, CInt(Right(TrajMéch(X, Y), 1))
Else
'Les prêtres s'arrêtent au dernier tournant
Méchant(Xa, Ya).Etat = AlArrêt
End If
Else
'Les autres méchants fonçent tête baissée
DéplacementMéchant Xa, Ya, CInt(Right(TrajMéch(X, Y), 1))
End If
Conclusion
Le programme et les plans ne sont pas exempts de bugs, mais ils sont supportables je pense. C'est également le programme dans lequel j'ai fait le plus de bidouilles, mais faute avouée est à moitié pardonnée, donc j'en ai indiqué la plupart par des commentaires dans le code.
J'attends vos impressions un peu sur le programme, mais surtout sur les jeux. Si vous les appréciez, n'hésitez pas à créer vos propres plans, l'éditeur est inclus. Il est assez peu documenté, mais je suis prêt à améliorer ce point à votre demande.
Note sur le copyright: les graphismes, sons et le plan "Le Secret du Tombeau" sont du jeu original. L'écran de présentation incorporé dans le programme rappelle que ses auteurs sont Petitjean & Schurder, sous copyright Loriciels 1986.
Historique
- 25 janvier 2009 21:23:25 :
- -
- 25 janvier 2009 21:34:50 :
- corrections grammaticales...
- 30 janvier 2009 21:13:50 :
- Corrections d'orthographe, dans le Zip cette fois (code et plan "Le Secret du Volcan").
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Jeu de dames [ par Christophe ]
Je cherche à réaliser un mini-jeu de dames. Sachant qu'on doit pouvoir ensuite gérer des événements Drag-Drop, quels types de contrôles dois-je utilis
winamp et VB5 [ par Rescator ]
bonjourj'utilise un petit prog ecris sous vb5 pour commander un jeu de lumière par le port // de mon PC. seulement j'aimerais récupérer le tempo de la
Créer une action lorsqu'un objet touche un autre [ par qwertyuiopasdfghjklzxcvbnm ]
J'aimerais savoir ça serait quoi le bon mot qui remplace touche ou bien si c'est pas ça le code ben cé koi alors.If images1 "touche" image2 then...Mer
bouger objet avet une manette de jeu? [ par ZIDANE ]
Est ce que quelqu'un sait comment faire pour bouger un objet avec une mannette de jeu ordinaire ? (gamepad)Si vous avez la réponse pouvez vous me l'en
Jeu de tir à la Rogue Spear [ par Nat ]
Salut.Je développe un jeu de tir et j'ai grave besoin d'aide.Il me manque un graphiste et j'aimerais aussi savoir comment on fait pour interpréter la
SOURCE JEU D'ECHEC [ par TOUATI ]
POUR UN HANDICAPE SEMI VISUEL JE CHERCHE DES SOURCES POUR ADAPTER CE JEU A CES PROBLEMES POUR CELA JE CHERCHE /1/ les sources d'un jeu d'echec 2 / un
Cmt afficher une fenetre par dessus un jeu windows ? [ par lechti62 ]
Bonjour je voudrai savoir si il est possible quand un jeu Windows ou Direct Xest lancé, de pouvoir afficher un programme fait avec VB par dessus ce je
annuler la dernière action [ par MyLoRdPl ]
salut,mon pb c que j'ai créé une application qui renomme des fichiers en grande quantité et je voudrais trouver une astuce pour annuler la dernière ac
Comment creer un serveur de jeux en reseaux? [ par Momo3dfx ]
Salut a tous,j'ai un exellent site, sur un jeu, j'ai du matos pour faire un serveur, j'ai tout sauf l'expérience et el savoir faire.-Comment fait-on p
AIDE DATA SVP ! [ par Seb ]
Je fais un programme jeu :j ai une basse access que j accede grace au data de vb et j aimerai mettre a jour le score d'une personne à la fin d un jeu.
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|