C'est ma deuxième semaine d'université et mon professeur m'a confié la mission de suivre un programme python, que je connais bien, et de le transformer en programme C++. Je ne sais presque rien du C++ ayant seulement eu une conférence sur le sujet et mon livre n'arrivant pas avant deux jours. Voici le programme python ..Questions du programme Python to C++
import random
import sys
import time
print("BATTLE GAME");
done = False
combatRound = 0
playerHP = 20
playerAtk = random.randint(5, 8)
playerDef = random.randint(5, 8)
playerAgi = random.randint(5, 8)
enemyHP = 20
enemyAtk = random.randint(5, 7)
enemyDef = random.randint(5, 7)
enemyAgi = random.randint(5, 7)
delayLength = 0.5
print()
print("-------------")
print("FIGHTER STATS")
print("-------------")
print()
print("PLAYER STATS:")
print("HP " + str(playerHP))
print("ATK " + str(playerAtk))
print("DEF " + str(playerDef))
print("AGI " + str(playerAgi))
print()
print("ENEMY STATS:")
print("HP " + str(enemyHP))
print("ATK " + str(enemyAtk))
print("DEF " + str(enemyDef))
print("AGI " + str(enemyAgi))
print()
choice = input("Ready to begin? (yes/no) ")
while (choice != "yes"):
print("Well, what are you waiting for? \n")
choice = input("Ready to begin? (yes/no) ")
while (done == False):
combatRound += 1
print()
print("###########################################")
print("-------------------------------------------")
print("ROUND " + str(combatRound))
print("PLAYER:\t HP " + str(playerHP) + " ATK " + str(playerAtk) + " DEF " + str(playerDef) + " AGI " + str(playerAgi))
print("ENEMY:\t HP " + str(enemyHP) + " ATK " + str(enemyAtk) + " DEF " + str(enemyDef) + " AGI " + str(enemyAgi))
print("-------------------------------------------")
print("1. Quick Attack")
print("2. Standard Attack")
print("3. Heavy Attack")
playerChoice = input("What will you do? ")
playerChoice = int(playerChoice)
while (playerChoice < 1 or playerChoice > 3):
playerChoice = input("Invalid choice, choose between 1 and 3: ")
playerChoice = int(playerChoice)
enemyChoice = random.randint(1, 3)
print("Enemy chooses option " + str(enemyChoice))
print("-------------------------------------------")
# Adjust player and enemy stats based on the type of attack they're doing
adjustedPlayerAtk = playerAtk
adjustedPlayerAgi = playerAgi
adjustedEnemyAtk = enemyAtk
adjustedEnemyAgi = enemyAgi
if (playerChoice == 1):
adjustedPlayerAgi += 2
adjustedPlayerAtk -= 1
elif (playerChoice == 3):
adjustedPlayerAgi -= 1
adjustedPlayerAtk += 2
if (enemyChoice == 1):
adjustedEnemyAgi += 2
adjustedEnemyAtk -= 1
elif (enemyChoice == 3):
adjustedEnemyAgi -= 1
adjustedEnemyAtk += 2
# Begin battle
print("PLAYER attacks ENEMY!")
time.sleep(delayLength)
randDiff = random.randint(0, adjustedPlayerAgi)
time.sleep(delayLength)
if (randDiff >= 1):
# Calculate damage
damage = int(adjustedPlayerAtk - enemyDef/2)
print("PLAYER hits ENEMY for " + str(damage) + " damage!")
enemyHP -= damage
else:
print("PLAYER misses!")
time.sleep(delayLength)
print("ENEMY attacks PLAYER!")
time.sleep(delayLength)
randDiff = random.randint(0, adjustedEnemyAgi)
time.sleep(delayLength)
if (randDiff >= 1):
# Calculate damage
damage = int(adjustedEnemyAtk - playerDef/2)
print("ENEMY hits PLAYER for " + str(damage) + " damage!")
playerHP -= damage
else:
print("ENEMY misses!")
time.sleep(delayLength)
# Check to see if either player is knocked out
if (playerHP <= 0):
print("PLAYER has fallen!")
done = True
elif (enemyHP <= 0):
print("ENEMY has fallen!")
done = True
# Game main loop
# At this point, either player or enemy has fallen.
print()
print(" ##################################### ")
print(" #### ####")
print("# G A M E O V E R #")
print("# ######################################### #")
print("## ##")
print()
if (playerHP <= 0):
print("Too bad, you lose!")
elif (enemyHP <= 0):
print("Congratulations, you won!")
Et voici mon code C++
#include <iostream>
#include <string>
#include <random>
using namespace std;
int playerHP = 20, int enemyHP = 20;
int playerAtk =random.randint(5,8); //How do you do random in C+++
int playerDef = random.randint(5,8);
int playerAgi = random.randint(5,8);
int enemyAtk = random.randint(5,7);
int enemyDef = random.randint (5,7);
int enemyAgi = random.randint (5,7);
float delayLength=.5;
cout<<"---------------"<< endl;
cout<<"FIGHTER STATS"<< endl;
cout<<"----------------"<<endl;
cout<<"Player Stats:"<<endl;
cout<<"HP "<<playerHP<<endl;
cout<<"ATK "<<playerAtk<<endl;
cout<<"DEF "<<playerDef<<endl;
cout<<"AGI "<<playerAgi<<endl;
cout<<"ENEMY STATS:"<<endl;
cout<<"HP "<<enemyHP<<endl;
cout<<"ATK "<<enemyAtk<<endl;
cout<<"DEF "<<enemyDef<<endl;
cout<<"AGI "<<enemyAgi<<endl;
while (playerHP>0 || enemyHP>0)
{
int combatRound=0;
int playerChoice;
int enemyChoice;
int adjustedPlayerAtk;
int adjustedPlayerAgi;
int adjustedEnemyAtk;
int adjustedEnemyAgi;
int randDiff;
int damage;
int damage2;
int randDiff2
combatRound +=1
cout<<""<<endl;
cout<<"############################"<<endl;
cout<<"----------------------------"<<endl;
cout<<"Round "<<combatRound<<endl;
cout<<"Player:"<<playerHP<<playerAtk<<playerAgi<<endl;
cout<<"Enemy:"<<enemyHP<<enemyAtk<<enemyAgi<<endl;
cout<<"----------------------------"<<endl;
cout<<"1. Quick Attack"<<endl;
cout<<"2. Standard Attack"<<endl;
cout<<"3. Heavy Attack"<<endl;
cout<<"What will you do? "<<endl;
cin>>playerChoice;
while playerChoice != 1 || 2 || 3
cout<<"Invalid choice, choose between 1 and 3:"<<endl;
cout<<"What will you do?"<<endl;
cin>>playerChoice;
enemyChoice=random.randint (1,3);
cout<< "Enemy chooses option "<<enemyChoice<<endl;
cout<<"--------------------------------"<<endl;
if playerChoice ==1
adjustedPlayerAgi +=2
adjustedPlayerAtk -=1
if playerChoice ==3
adjustedPlayerAgi -=1
adjustedPlayerAtk +=2
if enemyChoice ==1
adjustedEnemyAgi += 2
adjustedEnemyAtk -= 1
if enemyChoice ==3
adjustedEnemyAgi -= 1
adjustedEnemyAtk += 2
cout<<"PLAYER attacks ENEMY!"<<endl;
time.sleep(delayLength) //How do you do this in C++?
randDiff = random.randint(0, adjustedPlayerAgi)
time.sleep(delayLength)
if randDiff >=1
damage=(adjustedPlayerAtk-enemyDef/2)
enemyHP -= damage
else
cout<<"PLAYER misses!"<<endl;
time.sleep (delayLength)
cout<<"ENEMY attacks PLAYER!"<<endl;
time.sleep(delayLength)
randDiff2= random.randint(0,adjustedEnemyAgi)
time.sleep(delayLength)
if randDiff >=1
damage2= (adjustedEnemyAtk - playerDef/2)
cout<<"ENEMY hits PLAYER for "<<damage2<<"damage!"<<endl;
playerHP -= damage2
else
cout<<"ENEMY misses!"<<endl;
time.sleep (delayLength)
}
cout<<""<<endl;
cout<<"GAME OVER"<<endl;
if playerHP <=0
cout<<"Too bad you lose"<<endl;
if enemyHP <=0
cout<<"YOU WON"<<endl;
Je n'ai honnêtement aucune idée correcte ou comment il est mauvais. Je l'écris actuellement dans le bloc-notes parce que le professeur ne nous a pas donné accès à Visual Studios. Tous les conseils, astuces ou conseils sont EXTRÊMEMENT appréciés. Encore une fois, je m'excuse de l'aspect désagréable mais j'ai vraiment fait de mon mieux et j'ai hâte d'en apprendre plus sur cette nouvelle langue passionnante.
Attendez que le livre arrive? Si vous êtes sérieux au sujet de l'apprentissage du C++, une semaine ne va pas faire la différence. –
Kerrek SB a raison: j'apprends le C++ depuis plus de 20 ans (certes, il change aussi pendant que je progresse). BTW, juste parce que vous n'avez pas accès à Visual Studio, ne signifie pas que vous ne pouvez pas utiliser un compilateur! Vous pouvez compiler et exécuter [C++ en ligne] (http://ideone.com) ou obtenir [gcc] (http://gcc.gnu.org/) ou [clang] (http://clang.llvm.org/) qui sont tous deux gratuits. –
Apprendre le C++ est une chose incroyable à faire; cependant si vous voulez le rendre plus facile (je ne suggère pas de le faire pour toujours, c'est une solution rapide) alors vous pouvez créer votre propre bibliothèque qui a des fonctions python, mais les fait en C++, par exemple avoir une fonction appelée ' print' et utilise 'cout'. – lewisjb