السلام عليكم ورحمة الله
اول شي احب اقلكم انه انا جداً مبتدأ ولسه قاعد اتعلم في الC++ يعني لسه مادخلت لا في OpenGL ولا غيره بس ناوي على هاذي المكتبة ان شاء الله...
اليوم لما اتعلمت الدالتين rand( ) و srand() التي تنشئ ارقاماً عشوائية فكرت في كتاية كود يحاكي باتل العاب الآر بي جي(زي فاينل فانتاسي)
هل لاحظتم انه لما تضرب اي وحش ففي فاينل فنتاسي او غيرها من العاب الآر بي جي انه الضررDamage الذي يلحق بالعدو يعتمد مداه على
1- قوة السلاح
2- فوة الشخصية
3- قوة الخصم
ولكنه في النهاية عشوائي وتراوح بين عدة ارقام ... كنت اتسائل كيف يمكنهم صنع ذلك بما ان كل شيئ مبرمج مبقاُ؟؟؟
ولكن اليوم بعد مااتعلمت هاذي الدالتين اكتشفت السر اخيراً :lol: وهي اكيد باستخدام الدوال العشوائية
هذا كودي اتمنى ينفهم والمحاكاة في المرفقات...
لاحظو انه اذا كان الضرر صفر فإن البرنامج يعرض Miss تماماً كمافي الRPG
اتمنى تعذروني على مشاركتي الضعيفة ...
// RPG battle system v0.1 beta
#include<iostream>
#include <cstdlib>
#include<ctime>
using namespace std;
int main()
{
cout<<"\t\t\tRPG Battle System v0.1 BETA";
int enemyHP=50;
srand(time(0));
int randomNumber=((rand()%10));
start:
cout<<"\n\n\nYour enemy HP is: "<<enemyHP;
cout<<"\nPress Enter to hit your enemy!";
std::cin.ignore(std::cin.rdbuf()->in_avail() + 1);// this code only to keep the window open
cout<<"\n\nyou hit the enemy by "<<randomNumber;
enemyHP-=randomNumber;
if(randomNumber==0)
{
cout<<"\nMiss!";
std::cin.ignore(std::cin.rdbuf()->in_avail() + 1);// this code only to keep the window open
}
if(enemyHP==0||enemyHP<0)
{
cout<<"\n\n\nEnemy defeated,Congratulation!\n\n\n\n\n";
std::cin.ignore(std::cin.rdbuf()->in_avail() + 1);// this code only to keep the window open
}
else{
srand(time(0));
randomNumber=((rand()%10));
goto start;
}
std::cin.ignore(std::cin.rdbuf()->in_avail() + 1);// this code only to keep the window open
return 0;
}شكراً جزيلا ويمكن يفيد المبتدئين امثالي...
