2010-09-28 14 views
6

Für ein MMORPG World of Warcraft ich versuche, eine Lib zu schreiben. Geld in diesen Spielen wird als Ganzzahl gespeichert und in Spielwährung ist keine Ganzzahl, es basiert auf Gold-, Silber- und Kupfermünzen.Integer zu WoW Gold konvertieren

Jedes 100 Kupfer ist 1 Silber und jedes 100 Silber ist 1 Gold.

Jetzt brauche ich eine solche Ganzzahl in den WoW Geld-Format konvertieren: zum Beispiel

123123 zurückkehren sollte: 23c 31s 12g

Jeder weiß, wie diese

+1

Welche Sprache? – kennytm

+0

Ist nicht wirklich wichtig. Ich brauche nur die Idee dafür xD –

+3

Sind Sie sicher, dass dort 32 Silber ist? – SingleNegationElimination

Antwort

10

C#:

int[] WoWMoney(int m) 
{ 
     int[] result = new int[3]; 
     int copper = m % 100; 
     m = (m - copper)/100; 
     int silver = m % 100; 
     int gold = (m - silver)/100; 
     result[0] = copper; 
     result[1] = silver; 
     result[2] = gold; 
     return result; 
} 
2

Zunächst einmal 123123 Devide zu tun 10000. Dies ergibt 12.3123. Die ganze Zahl (12) ist die Goldzahl. Der Rest (nach dem Delimeter) 3123 teilt sich auf 100 um das Silber zu bekommen. Dies gibt Ihnen 31.23. Wiederum ist der erste Teil (31) das Silber und der Rest (23) ist dein Kupfer.

In C++ zum Beispiel, wird dieser Algorithmus aussieht

int number = 123123; 
int gold = number/10000; //this will give you the whole part because of the int type 
number = number%10000; //this will make 'number' 3123 
int silver = number/100; //this will get the silver 
int copper = number%100; //this will get the copper 
3

Python:

def fmtGold(value): 
    return "%sc %ss %sg"%(value%100,value/100%100,value/10000%100) 
+0

Warnung: Diese Antwort hat zwei Bugs -> Es sollte keine 100% für die Goldwerte geben, aber 'Wert // 10000', und der negative Betrag wird nicht richtig verwaltet. – gvo

2
  1. Dividieren ganze Zahl von 10 000 (Kupfer in Gold), den ganzzahligen Teil nimmt, wird es sei die Menge an Gold.
  2. Nehmen Sie den Rest aus dem vorherigen Schritt. Dividiere durch 100 (Kupfer in Silber), es wird die Menge an Silber sein.
  3. Nehmen Sie den Rest aus dem vorherigen Schritt. Es wird Kupfer sein.
0

Perl:

print "How much : "; 
$money = <>; 
chomp $money; 

$gold = int($money/10000); 
$money = int($money%10000); 
$silver = int($money/100); 
$copper = int($money%100); 


$result = sprintf("You need : %dg %ds %dc", $gold, $silver, $copper); 
print "\n$result\n"; 

<>; 
Verwandte Themen