> Tous les forums > Forum Autres langages
 Jeux de combat en python.
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
niko973
  Posté le 01/04/2014 @ 16:11 
Aller en bas de la page 
Petit astucien

Bonjour à tous,

J'ai un projet à faire qui consiste en la réalisation d'un jeu en python 3. J'ai choisi de faire un petit jeux lux deux joueurs peuvent d'affronter. Différentes actions seraient possibles telles que : acheter une arme/armures, vendre une arme/armures, attaquer, abandonner, chercher de l'or (c'est le moyen le plus simple que j'ai trouver de faire gagner de l'or au joueurs pour qu'il puissent s'acheter des équipements) et autres.

Je voudrais qu'une seule action par tour soit possible, qu'a chaque fois qu'il attaque le joueur puisse choisir son arme et que la meilleur armure soit d'office utilisée parmis les différente que le joueur possède.

Pour un débutant en python je vous assure tout cela est assez compliqué. Le promet doit rester assez simple mais je me suis lancé dans de la POO parce-que je trouvais l'idée de ce petit combat plus fun. Je vous partage mon code, le but étant que vous puissiez me corriger soit sur des erreurs de raisonnement dans mes fonctions ou ma main loop ou des erreurs de typo (mais ca je devrais m'en sortir seul si ce sont des coquilles)

Voila j'espère que vous pourrez m'aider car je ne me sors pas, même pour des fonctions basiques comme abandonner... Merci d'avance!

Niko97320

#!/usr/bin/env python3

# -*- coding:utf-8 -*-

import random

class Joueur:

def __init__(self):

self.nom=""

self.sante=100

self.sante_max=100

self.gold=100

self.arme=["Fourchette"] # liste pour pouvoir ajouter du stuff

self.armure=["Culotte en coton"] # liste pour pouvoir ajouter du stuff quand achat

self.etat="Normal"

def abandonner(self):

print ("%s a choisi d'abandonner.") % self.nom

self.sante = 0

def attaquer(self, ennemi, arme):

critique=0.9+random.random()

if critique >= 1.5 :

print ("Coup critique !")

dommage=self.arme*critique-ennemi.armure

ennemi.sante=ennemi.sante-dommage

print ("%s inflige %s dommages à %s. \n Il reste %s PV à %s" % self.nom, dommage, ennemi.nom, ennemi.sante, ennemi.nom)

def stats(self):

print ("***** %s Stats ***** \n Vie : %s/%s PV \n Armure : %s \n Arme : %s \n Or : %s \n" % self.nom, self.sante, self.sante_max, self.armure, self.arme, self.gold)

def chercherOr(self):

print ("Vous entreprenez la recherche d'or par terre autour de vous")

gain=random.randint(10,80)

self.gold=self.gold+gain

Print ("vous avez trouvé %s Or qui s'ajoute a votre bourse. Solde : %s" % gain, self.gold)

def acheter(self):

Print("Vous entrez dans la boutique avec %s en poche" % self.gold)

# Affiche la liste des armes et armures a vendre et leur prix

achat=input("Quelle arme ou armure de la liste souhaitez vous acheter ?")

# tests prix et dispo

if achat in lArmes or achat in lArmures :

print("Vous avez selectionné %s" % achat)

else :

print ("Cet objet n'est pas à vendre!")

if achat.prix <= self.gold in achat in lArmes:

achat=self.arme

# enleve l'arme ou armure du stuff

self.armes.remove(achat)

else :

print("Vous n'avez pas assez d'or pour acheter cela")

if achat.prix <= self.gold and achat in lArmures:

achat=self.armures

# enleve l'arme ou armure du stuff

self.armure.remove(achat)

else :

print("Vous n'avez pas assez d'or pour acheter cela")

self.gold=self.gold-self.arme.prix

print("Felicitation vous venez d'acheter %s, il vous reste " % achat)

def vendre(self):

# afficher la liste des objets possédés.

print("Vous entrez dans la boutique avec %s en poche" % self.gold)

# Afficher la liste des armes et armures possédées

vente=input("Quelle arme ou armure de la liste souhaitez vous vendre?")

if vente in self.arme :

self.armes.remove(vente)

self.gold=self.gold+arme.prix

elif vente in self.armure :

self.armure.remove(vente)

self.gold=self.gold+armure.prix

else :

print ("Vous ne pouvez pas vendre ceci.")

class Arme:

def __init__ (self,prix,degats):

self.prix=prix

self.degats=degats

def getDegats (self):

degats=self.degats

return degats

class Armure:

def __init__ (self,prix,protection):

self.prix=prix

self.protection=protection

# Contruction des armes et armures

fourchette=Arme(0,10)

dague=Arme(5,20)

epeeCourte=Arme(30,70)

hache=Arme(50,100)

epeeLegendaire=Arme(300,1000)

katana=Arme(100,200)

calecon_en_maille=Armure(0,0)

armure_en_cuir=Armure(10,10)

haume_cuir=Armure(5,5)

jambiere_cuir=Armure(5,5)

armure_acier=Armure(50,50)

haume_acier=Armure(20,20)

jambieres_acier=Armure(20,20)

# Listes pour les tests

lArmes=["Fourchette","Dague","Epee courte","Hache","Epee Legendaire","Katana"]

lArmures=["Caleçon en maille", "Armure cuir","Haume cuir","Jambière cuir", "Armure acier", "Haume acier","Jambières acier"]

lActions=["attaquer","abandonner","vendre","acheter","stats","chercherOr"]

j1=Joueur()

j2=Joueur()

j1.nom=input("Joueur 1 entrez votre nom : ")

j2.nom=input("Joueur 2 entrez votre nom : ")

while (j1.sante != 0 or j2.sante != 0) :

print ("Que voulez vous faire %s \n" % j1.nom)

action=input("> ")

if action == "attaquer" :

j1.attaquer(j2,Fourchette)

elif action == "abandonner" :

j1.abandonner

elif action == "vendre" :

j1.vendre

elif action == "acheter" :

j1.acheter

elif action == "stats" :

j1.stats

elif action == "chercherOr" :

j1.chercherOr

else :

print ("Ceci ne semble pas être une action possible. Voici la liste des actions :")

print ("\n".join(lActions))

if j1.sante==0:

break

print ("Que voulez vous faire %s \n" % j2.nom)

action=input("> ")

if action == "attaquer" :

j2.attaquer

elif action == "abandonner" :

j2.abandonner

elif action == "vendre" :

j2.vendre

elif action == "acheter" :

j2.acheter

elif action == "stats" :

j2.stats

elif action == "chercherOr" :

j2.chercherOr

else :

print ("Ceci ne semble pas être une action possible. Voici la liste des actions :")

print ("\n".join(lActions))

# if j2.sante == 0:

# break

if j1.sante == 0 :

print ("j2.nom remporte la victoire!")

if j2.sante == 0 :

print ("j1.nom remporte la victoire!")

####### facon de faire avec eval a explorer ######

#if action in lActions:

# eval("j1."+action) #pb

# else :

# print ("Ceci ne semble pas être une action possible. Voici la liste des actions :")

# print ("\n".join(lActions))

# if j1.sante==0:

# break

# print ("Que voulez vous faire %s \n" % j2.nom)

# action=input("> ")

#

# if action in lActions:

# eval("j2."+action)

# else :

# print ("Ceci ne semble pas être une action possible. Voici la liste des actions :")

# print ("\n".join(lActions))

# if j2.sante == 0:

# break

Publicité
niko973
 Posté le 01/04/2014 à 16:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Ca sera sans doute plus facile comme ca. Vous pourrez trouver le code ici https://www.dropbox.com/s/bzbik7f6n66wohi/RPG-with-class.py

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
51,19 €Barre de son bluetooth Philips TAB5105 à 51,19 €
Valable jusqu'au 03 Mars

Cdiscount fait une promotion sur la barre de son bluetooth Philips TAB5105 qui passe à 51,19 € alors qu'on la trouve ailleurs à partir de 80 €. Cette barre de son intègre 2 haut-parleurs 2x15W et peut lire vos musiques sans fil via Bluetooth. Une entrée audio jack 3.5 mm et optique TOSLINK sont également présentes. Compatible HDMI ARC, vous pourrez contrôler la barre de son à l'aide de la télécommande de votre téléviseur. Elle est suffisamment fine pour se glisser sous la plupart des téléviseurs. Vous pouvez également la fixer au mur à l'aide des supports intégrés.


> Voir l'offre
203,01 €Disque dur externe Western Digital My Book 12 To USB 3.0 à 203,01 € livré
Valable jusqu'au 03 Mars

Amazon Allemagne propose actuellement le disque dur externe Western Digital My Book 12 To USB 3.0 à 196,54 € (avec la TVA ajustée). Comptez 6,47 € pour la livraison en France soit un total de 203,01 € livré alors qu'on le trouve ailleurs à partir de 230 €. Avec ses 12 To et sa connectique USB 3.0 compatible USB 2.0, vous aurez de quoi stocker vos backup, vos films et vos photos, etc.  A l'intérieur, vous trouverez un disque à hélium UltraStar DC HC 520 White (12 To, 5400 tr/min, 256 Mo cache, CMR -> source satdream.tech). Le disque peut être démonté et réutilisé dans un ordinateur, un NAS, etc. Une très bonne affaire

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre
34,24 €Webcam Aukey FullHD à 34,29 € (via coupon)
Valable jusqu'au 01 Mars

Amazon propose la webcam Webcam Aukey FullHD à 34,29 € livrée gratuitement grâce à un coupon de réduction à activer sur la page du produit. On la trouve habituellement autour de 45 €. Cette webcam offre une résolution FullHD 1080p pour une vidéo claire et nette et intègre deux microphones réduisant les bruits de fond. Elle est compatible Windows, Mac et Android. 


> Voir l'offre

Sujets relatifs
jeux android kill shot de l'aide svp
jeux programmation
Cree un jeux ?
convertir python *.py en *.exe
Programme de Pointage en Python
[PYTHON] - Pymedia enregistrement audio
Thème Superkaramba et script python
Aide pour jeux
Linux, superkaramba avec thème karamba et python
Problème de lancement IDLE de Python
Plus de sujets relatifs à Jeux de combat en python.
 > Tous les forums > Forum Autres langages