Potrebudjem Poradit ,Qt? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Potrebudjem Poradit ,Qt? – C / C++ – Fórum – Programujte.comPotrebudjem Poradit ,Qt? – C / C++ – Fórum – Programujte.com

 

marek170
Návštěvník
9. 11. 2018   #1
-
0
-

Co by bolo lepsie+uprava zastaraleho algoritmu?

1.Konverzia kodu z QT4 do C#

2.uprava zastaraleho algoritmu v QT4

3.1+2(v C#)

4.napisanie (skoro) celeho programu v C#

Nakolko neviem sa oplati prepisovat cast kodu,alebo napisat cely kod pre novy program. Nevyhoda ,ze to je v Qt.

,ide o kod zo stranky: http://www.team-ger.net/gxrdrago/NFSW/QtNFSWTuningCalculatorLatest.7z

Nahlásit jako SPAM
IP: 185.142.51.–
Jerry
~ Anonymní uživatel
512 příspěvků
9. 11. 2018   #2
-
0
-

#1 marek17
no jestli potřebuješ doplnit jenom nějakou kravinu tak bych to doplnil v C++/Qt, ale jestli rozsáhlejší úpravy tak bych asi komplet přepsal pod C#. Přeci jenom ono je toho hodně toho zdrojáku i když autor to napsal hezky. A co kontaktovat autora  ? aby to doplnil

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:6963:a2ca:59dc:d43d...–
marek170
Návštěvník
9. 11. 2018   #3
-
0
-

Samotnemu autorovi som uz pisal niekolko krat ,vobec neodpisoval. Poslednu nastevu tam mal 23.1.2017.Na FB mi tak tiez neodpovedal (i ked som nasiel jeho profil a odpisal som mu),jeho priatelia mi tiez neodpisali. Neviem ci chodi na Twitter,Instagram nick

, fakt je ten ze nechodi vobec na forum. O to horsie ,je ze neviem este pod akym nickom kde vystupuje. Nedajboze ,zomrel. Povodny autor kodu proste  neodpoveda.

moje nove vzorce 

 ///Vzorce (neviem ktora forma bude pre CPU najrychlejsia)

/V konecnom dosledku by vzorce boli dlhe ,nedali sa skratit.
Vzdy islo 4 druhy : Stock,Handling,Acceleration,Topspeed Attributy


 ValueHalf 0,666666667f
  



 
PreCalculatedStock = ((1-PreCalculatedAttributeHandling)-PreCalculatedAttributeAcceleration)-PreCalculatedAttributeToSpeed) 
PreCalculatedAttributeHandling = (HandlingSUM*0,01)*(1/((((HandlingSUM*0,01)+(AccelerationSUM*0,01)+(TopspeedSUM*0,01))*ValueHalf)+1)))
PreCalculatedAttributeAcceleration = (AccelerationSUM*0,01)*(1/((((HandlingSUM*0,01)+(AccelerationSUM*0,01)+(TopspeedSUM*0,01))*ValueHalf)+1)))
PreCalculatedAttributeToSpeed = (TopspeedSUM*0,01)*(1/((((HandlingSUM*0,01)+(AccelerationSUM*0,01)+(TopspeedSUM*0,01))*ValueHalf)+1)) 
 

CalculateHandling = floor((PreCalculatedStock*H_Stock)+(H_Attribute_Handling*PreCalculatedAttributeHandling)+(H_Attribute_Acceleration*PreCalculatedAttributeAcceleration)+(H_Attribute_Topspeed*PreCalculatedAttributeToSpeed))
CalculateAcceleration = floor((PreCalculatedStock*A_Stock)+(A_Attribute_Handling*PreCalculatedAttributeHandling)+(A_Attribute_Acceleration*PreCalculatedAttributeAcceleration)+(A_Attribute_Topspeed*PreCalculatedAttributeToSpeed))
CalculateTopSpeed = floor((PreCalculatedStock*T_Stock)+(T_Attribute_Handling*PreCalculatedAttributeHandling)+(T_Attribute_Acceleration*PreCalculatedAttributeAcceleration)+(T_Attribute_Topspeed*PreCalculatedAttributeToSpeed))

Povodny stary alg. sa nachadza (zacina) od suboru Utils.h a Utils.Cpp

//Utils.cpp
tValueF utils::ComputeStatF(const tTierF& _Tier, const tValue& _Basis, const tPercent& _Percent)
{
	return ( BASE + _Tier * TIERSTEP - _Basis ) * _Percent / PSCALE + _Basis;
}
tPercentF utils::ComputePercentF(const tTierF& _Tier, const tValue& _Basis, const tValue& _Stat)
{
	return PSCALE * ( _Stat - _Basis ) / ( BASE + _Tier * TIERSTEP - _Basis );
}
tValue utils::ComputeStatI(const tTierF& _Tier, const tValue& _Basis, const tPercent& _Percent)
{
	return (tValue)( ( BASE + _Tier * TIERSTEP - _Basis ) * _Percent / PSCALE + _Basis );
}
tPercent utils::ComputePercentI(const tTierF& _Tier, const tValue& _Basis, const tValue& _Stat)
{
	return qCeil(PSCALE * ( _Stat - _Basis ) / ( BASE + _Tier * TIERSTEP - _Basis ));
}
tValue utils::InverseStatI(const tTierF& _Tier, const tValue& _Value, const tPercent& _Percent)
{
	return (tValue)qCeil(( PSCALE * _Value - _Percent * ( BASE + TIERSTEP * _Tier ) ) / ( PSCALE - _Percent ));
}
tValueF utils::InverseStatF(const tTierF& _Tier, const tValue& _Value, const tPercent& _Percent)
{
	return ( PSCALE * _Value - _Percent * ( BASE + TIERSTEP * _Tier ) ) / ( PSCALE - _Percent );
}


//Utils.h

tValueF ComputeStatF(const tTierF& _Tier, const tValue& _Basis, const tPercent& _Percent);
	tPercentF ComputePercentF(const tTierF& _Tier, const tValue& _Basis, const tValue& _Stat);

	tValue ComputeStatI(const tTierF& _Tier, const tValue& _Basis, const tPercent& _Percent);
	tPercent ComputePercentI(const tTierF& _Tier, const tValue& _Basis, const tValue& _Stat);

	tValue InverseStatI(const tTierF& _Tier, const tValue& _Value, const tPercent& _Percent);
	tValueF InverseStatF(const tTierF& _Tier, const tValue& _Value, const tPercent& _Percent);

Rozpisem asi kde sa nachadza kazda funkcia (vyskyt),zrejme toho bude viac.

Mensi problem je v tom ,ze na vypocet potrebuje 3 Vzorce.

Nahlásit jako SPAM
IP: 185.142.51.–
marek170
Návštěvník
9. 11. 2018   #4
-
0
-

napriklad:

Utils.cpp/.h
tValueF utils::ComputeStatF(const tTierF& _Tier, const tValue& _Basis, const tPercent& _Percent)
{
return ( BASE + _Tier * TIERSTEP - _Basis ) * _Percent / PSCALE + _Basis;
 

v dalsom subore je:


_Topspeed = _Acceleration = _Handling = (tValueF)0;
if( PartsWdg() && CarWdg() )
{
const CCar* car = CarWdg()->CurrentCar();
_Topspeed = utils::ComputeStatF(1, car->Topspeed(), PartsWdg()->Topspeed());
_Acceleration = utils::ComputeStatF(1, car->Acceleration(), PartsWdg()->Acceleration());
_Handling = utils::ComputeStatF(1, car->Handling(), PartsWdg()->Handling());

*Mam v tom trocha gulas. V tom Utils.cpp neviem ako mam nacpat tie hodnoty.

*Jedina moznost ,je skompilovat kod ,a na kazdu funkciu Compute* spravit Break&Trace (casto cez Cheat Engine). Potom pochopim ako pocita hodnoty.Nemam sajnu ako to tam je.

Nahlásit jako SPAM
IP: 185.142.51.–
Jerry
~ Anonymní uživatel
512 příspěvků
10. 11. 2018   #5
-
0
-

#4 marek17
jasně no to tak bývá 3 vzorce na výpočet, ale obrovká režije a omáčka kolem :)

jestli to tam zvládneš doplnit .. asi bych to doplnil a dál neřešil ... protože C++/Qt je multiplatformní a používá se stále. každopádně je to pro mě lepší náhrada stařičkého C++/MFC

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:1de2:f5fa:6133:6085...–
marek170
Návštěvník
10. 11. 2018   #6
-
0
-

ak sa mi podari spojadznit jednu oblast (3oblASTRI:Tuning - Analazer - Maximalizer) BUDE daleko lepsie.

Nateraz Skusit Break&Trace

Nahlásit jako SPAM
IP: 185.142.51.–
Jerry
~ Anonymní uživatel
512 příspěvků
10. 11. 2018   #7
-
0
-

mámm takovej divnej pocit, že sem tenhle program co tu presentuješ už někde viděl a na foru ho taky někdo o něco doplňoval -  o nějaké vzorce, možná to bude ten samej ... zajímavý ...

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:1de2:f5fa:6133:6085...–
marek170
Návštěvník
14. 11. 2018   #8
-
0
-

povodny zastaraly vzorec:


tValueF utils::ComputeStatF(const tTierF& _Tier, const tValue& _Basis, const tPercent& _Percent)
{
return ( BASE + _Tier * TIERSTEP - _Basis ) * _Percent / PSCALE + _Basis;
 

(_Basis - 1 hodnota pre auto, _Percent - 1 hodnota pre diel)

Moj vzorec je dlhsi. Rozmyslam ako skatit,aby som nemusiel do jednej return funkcie pisat dlhe omacky.

Bud ich napisem do jedneho dlheho neprehladneho vzorca (3x)

Alebo po jednom  vzorci...Len neviem ako. Ten _Basis som nikde nenasiel , kde ma definicou.

Niekolko vzorcov:

handlingcent=  HandlingSUM*0,01 
accelerationcent=  AccelerationSUM*0,01 
topspeedcent=  TopspeedSUM*0,01 
allsum=  (1/(((HandlinCent+AccelerationCent+TopspeedCent)*ValueHalf)+1)) 
hndcalc=  AllSUM*HandlinCent 
acccalc=  AccelerationCent*AllSUM 
tspcalc=  TopspeedCent*AllSUM 
frag=  ((ValueOne-HndCalc)-AccCalc)-TSPCalc 
handling Frag*H_Stock+H_Attribute_Handling*HndCalc+H_Attribute_Acceleration*AccCalc+H_Attribute_Topspeed*TSPCalc
acceleration Frag*A_Stock+A_Attribute_Handling*HndCalc+A_Attribute_Acceleration*AccCalc+A_Attribute_Topspeed*TSPCalc
topspeed Frag*T_Stock+T_Attribute_Handling*HndCalc+T_Attribute_Acceleration*AccCalc+T_Attribute_Topspeed*TSPCalc

Gulas :(napr. pre Handling)

qFloor (((1-((1/((( HandlingSUM*0,01+ AccelerationSUM*0,01+ TopspeedSUM*0,01)*ValueHalf)+1)) *  HandlingSUM*0,01 )- ((1/((( HandlingSUM*0,01+ AccelerationSUM*0,01+ TopspeedSUM*0,01)*ValueHalf)+1)) *  AccelerationSUM*0,01 ))- ((1/((( HandlingSUM*0,01+ AccelerationSUM*0,01+ TopspeedSUM*0,01)*ValueHalf)+1)) *  TopspeedSUM*0,01 )*H_Stock+ ((1/((( HandlingSUM*0,01+ AccelerationSUM*0,01+ TopspeedSUM*0,01)*ValueHalf)+1)) *  HandlingSUM*0,01 )*H_Attribute_Handling+ ((1/((( HandlingSUM*0,01+ AccelerationSUM*0,01+ TopspeedSUM*0,01)*ValueHalf)+1)) *  AccelerationSUM*0,01)*H_Attribute_Acceleration+ ((1/((( HandlingSUM*0,01+ AccelerationSUM*0,01+ TopspeedSUM*0,01)*ValueHalf)+1)) *  TOPSPEEDSUM*0,01)*H_Attribute_TopSpeed)

(TopSpeedSUM = fValue Topspeed; AccelerationSUM = fValue Acceleration ; HandlingSUM = fValue Handling)

Vacsina z to je Int ,budu musiet byt Float (pre Floor funkciu)

*Neviem vazne ako to spravit aby to fungovalo. Po poslednej uprave mi nic nepocitalo iba ikonky ukazovalo.

Nahlásit jako SPAM
IP: 185.142.51.–
jerry
~ Anonymní uživatel
512 příspěvků
14. 11. 2018   #9
-
0
-

#8 marek17
přiznám se že nevim no ..

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:9ded:aa11:c18b:a515...–
MilanL+1
Grafoman
15. 11. 2018   #10
-
0
-

#8 marek17
měl by sis to zformátovat tak abys měl ty stejné části pod sebou, vidím tam celkem dlouhý kus co se tam 6x opakuje to by sis měl předem hodit do 1 proměnné a pak použít ve vzorci jedná se o

(1/((( HandlingSUM*0,01+ AccelerationSUM*0,01+ TopspeedSUM*0,01)*ValueHalf)+1))

Nahlásit jako SPAM
IP: 91.139.9.–
jerry
~ Anonymní uživatel
512 příspěvků
15. 11. 2018   #11
-
0
-

#1 marek17
to co děláš tady už někde někdo dělal asi tak před rokem - viděl jsem to někde na nějakým foru, jestli to máš jako práci tak bych se zamyslel jestli to neni buzerace :) výměna jednoho dvou vzorců zase neni až tak hrozná práce, ale otázka je co z toho ...

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:59d5:238f:f5b6:3297...–
MilanL+1
Grafoman
15. 11. 2018   #12
-
0
-

#11 jerry
to je on kdo to tu řešil před víc než rokem.

Nahlásit jako SPAM
IP: 91.139.9.–
jerry
~ Anonymní uživatel
512 příspěvků
15. 11. 2018   #13
-
0
-

#12 MilanL
aha no tak to moc nepokročil chlapec .. to  si asi moc nevydělá timhle přístupem :)))))

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:59d5:238f:f5b6:3297...–
peter
~ Anonymní uživatel
4016 příspěvků
16. 11. 2018   #14
-
0
-

Zkousel jsi pouzivat funkce hledat/nahradit?

qFloor(((1 - ((1 / (((HandlingSUM * 0, 01 + AccelerationSUM * 0, 01 +
        TopspeedSUM * 0, 01) * ValueHalf) + 1)) * HandlingSUM * 0, 01) - ((1 /
        (((HandlingSUM * 0, 01 + AccelerationSUM * 0, 01 + TopspeedSUM * 0,
          01) * ValueHalf) + 1)) * AccelerationSUM * 0, 01)) - ((1 / (((
        HandlingSUM * 0, 01 + AccelerationSUM * 0, 01 + TopspeedSUM * 0,
        01) * ValueHalf) + 1)) * TopspeedSUM * 0, 01) * H_Stock + ((1 / (((
        HandlingSUM * 0, 01 + AccelerationSUM * 0, 01 + TopspeedSUM * 0,
        01) * ValueHalf) + 1)) * HandlingSUM * 0, 01) * H_Attribute_Handling +
      ((1 / (((HandlingSUM * 0, 01 + AccelerationSUM * 0, 01 + TopspeedSUM * 0,
        01) * ValueHalf) + 1)) * AccelerationSUM * 0, 01) *
      H_Attribute_Acceleration + ((1 / (((HandlingSUM * 0, 01 + AccelerationSUM *
        0, 01 + TopspeedSUM * 0, 01) * ValueHalf) + 1)) * TOPSPEEDSUM * 0, 01) *
      H_Attribute_TopSpeed)

------

a = HandlingSUM * 0, 01
b = AccelerationSUM * 0, 01
c = TopspeedSUM * 0, 01
d = ValueHalf
u = a + b + c
v = ((u) * d) + 1
w = (1 / (v))

qFloor(
(1 -
w * a - 
w * b - 
w * c * H_Stock +
w * a * H_Attribute_Handling +
w * b * H_Attribute_Acceleration +
w * c * H_Attribute_TopSpeed
)

Ale nejsem si ted jisty, zda mam spravne vsechny zavorky, protoze jsem to odmazaval rucne.

Nahlásit jako SPAM
IP: 2001:718:2601:258:bddb:328f:9e9f:18cd...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 37 hostů

Podobná vlákna

Potrebujem poradiť C++ — založil toso992

Pořebuju poradit — založil Luděk Navrátil

C++ - potrebujem poradiť — založil jajego39

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý