Spider Jerusalem_UBBT
Swashbuckler
Då jag har fnulat på en eon karaktärs generator så har jag programmerat OB tärningar.
Nu är det så att jag är ett freak när det kommer till kod och vill göra den finare och finare ad infinitum.
Så utmaningen är att göra en så optimerad OB tärnings rollare som man kan. Alla språk är tillåtna så länge dom går att kompilera på en dator.
Detta är hur jag löste problemet.
<div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre>#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#define DICE 6 //These are the only two
#define ROLLS 3 //variables you need to change.
using namespace std;
int Random(int Max) {
return (rand() % Max)+1;
}
int checkmax(int);
int ob(int times, int orig){
int tot = 0, x = 0;
int origin[times];
for(int n=0;n<times;n++){
x = Random(DICE);
if(orig == 1){
origin[n] = x;
}
x = checkmax(x);
tot = tot +x;
}
if(orig==1){
int a=0,b=0;
for(int i=0; i<times;i++){
if(origin==1)
a++;
else if(origin==6)
b++;
}
if(a>=(times-1) and b==0)
cout << "Perfekt: ";
else if(b>=2 and a ==0)
cout << "Fummel: ";
else
cout << "Orginal roll: ";
for(int i=0;i<times;i++)
if(i!=times-1)
cout << origin << ", ";
else
cout << origin << endl;
}
return tot;
}
int checkmax(int x){
if(x == DICE){
x = ob(2,0);
}
return x;
}
int main()
{
srand(time(NULL));
for(int i = 0; i < 1; i++)
cout << "Total: " << ob(ROLLS,1) << endl;
}
</pre></div></div>
*edit: För att kolla efter perfekt och fummel.
Testade att se hur många rolls den behövde för att rolla över 100, svaret var 129133055 och 384156946. Så sannolikheten att rolla över 100 skada med OB3T6 är rätt liten men finns.
OBT Rollare
*edit: Länk till ett grafiskt program som rollar OB tärningar och säger när man har rullat perfekt eller Fummlat.
Nu är det så att jag är ett freak när det kommer till kod och vill göra den finare och finare ad infinitum.
Så utmaningen är att göra en så optimerad OB tärnings rollare som man kan. Alla språk är tillåtna så länge dom går att kompilera på en dator.
Detta är hur jag löste problemet.
<div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre>#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#define DICE 6 //These are the only two
#define ROLLS 3 //variables you need to change.
using namespace std;
int Random(int Max) {
return (rand() % Max)+1;
}
int checkmax(int);
int ob(int times, int orig){
int tot = 0, x = 0;
int origin[times];
for(int n=0;n<times;n++){
x = Random(DICE);
if(orig == 1){
origin[n] = x;
}
x = checkmax(x);
tot = tot +x;
}
if(orig==1){
int a=0,b=0;
for(int i=0; i<times;i++){
if(origin==1)
a++;
else if(origin==6)
b++;
}
if(a>=(times-1) and b==0)
cout << "Perfekt: ";
else if(b>=2 and a ==0)
cout << "Fummel: ";
else
cout << "Orginal roll: ";
for(int i=0;i<times;i++)
if(i!=times-1)
cout << origin << ", ";
else
cout << origin << endl;
}
return tot;
}
int checkmax(int x){
if(x == DICE){
x = ob(2,0);
}
return x;
}
int main()
{
srand(time(NULL));
for(int i = 0; i < 1; i++)
cout << "Total: " << ob(ROLLS,1) << endl;
}
</pre></div></div>
*edit: För att kolla efter perfekt och fummel.
Testade att se hur många rolls den behövde för att rolla över 100, svaret var 129133055 och 384156946. Så sannolikheten att rolla över 100 skada med OB3T6 är rätt liten men finns.
OBT Rollare
*edit: Länk till ett grafiskt program som rollar OB tärningar och säger när man har rullat perfekt eller Fummlat.