小编Fle*_*exo的帖子

游戏设计/理论,Loot Drop Chance/Spawn Rate

我有一个非常具体和冗长的问题.这个问题是关于编程和游戏理论的.我最近在我的回合制战略游戏中添加了可产卵的矿石:http://imgur.com/gallery/0F5D5Ij (对于那些看起来请原谅开发纹理的人).

现在,谈到我一直在思考的谜.在我的游戏中,每次创建新地图时都会生成矿石.每级创建生成0-8个矿石节点.我已经有了这个工作; 除此之外它只产生"绿宝石",这引出了我的问题.

程序员如何才能使节点具有特殊的稀有性?考虑这个简短的模型,它实际上不是游戏数据:

(Pseudo Chances节点将是以下之一)

Bloodstone 1 in 100
Default(Empty Node) 1 in 10
Copper 1 in 15
Emeraldite 1 in 35
Gold 1 in 50
Heronite 1 in 60
Platinum 1 in 60
Shadownite 1 in 75
Silver 1 in 35
Soranite 1 in 1000
Umbrarite 1 in 1000
Cobalt 1 in 75
Iron 1 in 15
Run Code Online (Sandbox Code Playgroud)

我想做到这一点,理论上,生成的节点可以是上面的任何一个,但是,也考虑了几率.我希望这个问题足够清楚.我一直试图绕过这个,甚至试图用randoms写出一些if语句,但是,我一直空手而归.

基本上,我只是希望你们看到我的问题,并希望能够让我对如何以动态的方式解决这个问题提供一些见解.

如果需要澄清,请询问; 如果这是令人费解的话再次对不起.

(我只是将C#添加为标记,因为这是我用于此项目的语言)

c# probability

22
推荐指数
3
解决办法
8045
查看次数

PHP将小数转换为分数并返回?

我希望用户能够输入如下部分:

 1/2
 2 1/4
 3
Run Code Online (Sandbox Code Playgroud)

并将其转换为相应的十进制数,以便保存在MySQL中,这样我就可以通过它进行排序并对其进行其他比较.

但是我需要能够在向用户显示时将小数转换回一个分数

所以基本上我需要一个将分数字符串转换为十进制的函数:

fraction_to_decimal("2 1/4");// return 2.25
Run Code Online (Sandbox Code Playgroud)

和一个可以将小数转换为派系字符串的函数:

decimal_to_fraction(.5); // return "1/2"
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

php decimal fractions

21
推荐指数
4
解决办法
2万
查看次数

CSS旋转后垂直和水平对齐文本

所以我使用CSS将一些文本从水平旋转到垂直(90度),如下所示:

-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
writing-mode: tb-rl;
filter: flipv fliph;
Run Code Online (Sandbox Code Playgroud)

我的问题是,这会将文本方式移到容器div之外.是否有把它放在容器内的技巧?我可以设置一些锚点吗?什么是跨浏览器调整帖子的方式?

css

21
推荐指数
1
解决办法
2万
查看次数

何时应该在C++中使用BOOL和bool?

何时应该在C++中使用BOOL和bool?为什么?

我认为使用bool更清洁,更便携,因为它是内置类型.但是当你使用遗留代码/ C代码进行交互,或者使用C代码/ Windows API从.NET进行交互操作时,BOOL是不可避免的.

所以我的政策是:在C++中使用bool.与外界交谈时使用BOOL,例如windows DLL中的导出功能.

关于何时使用一个而不是另一个,是否有明确的解释?

c++ windows

20
推荐指数
2
解决办法
6109
查看次数

Tab中的图标未显示

我开始使用Android,当我尝试使用图标和文本进行TabHost时.只有文本可见,如果我将文本留空,则可以看到图标.我想在屏幕上看到两个.

有人可以给我建议吗?

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Usuario usu = new Usuario();
usu.nombre = "fsdf";
lista.add(usu);

adaptador = new AdaptadorCelda(this,lista);
ListView lstView = (ListView)findViewById(R.id.lista);
lstView.setAdapter(adaptador);

Button btn = (Button)findViewById(R.id.btnSalva);

btn.setOnClickListener(onSave);



Resources res = getResources();

TabHost tabs=(TabHost)findViewById(R.id.tabhost);
tabs.setup();

TabHost.TabSpec spec=tabs.newTabSpec("mitab1");
spec.setContent(R.id.tab1);
spec.setIndicator("",res.getDrawable(android.R.drawable.ic_menu_rotate));


tabs.addTab(spec);

spec=tabs.newTabSpec("mitab2");
spec.setContent(R.id.tab2);
spec.setIndicator("ddd",
       res.getDrawable(android.R.drawable.presence_invisible));
tabs.addTab(spec);

tabs.setCurrentTab(0);

spec.setIndicator("",res.getDrawable(android.R.drawable.ic_menu_rotate)) In this case icon appears.

spec.setIndicator("ddd",
       res.getDrawable(android.R.drawable.presence_invisible));
Run Code Online (Sandbox Code Playgroud)

这是main.xml

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TabWidget
    android:id="@android:id/tabs"
    android:layout_width="match_parent"

    android:layout_height="wrap_content" />

<FrameLayout
    android:id="@android:id/tabcontent"
    android:layout_width="match_parent"
    android:layout_height="match_parent" > …
Run Code Online (Sandbox Code Playgroud)

android

20
推荐指数
3
解决办法
3万
查看次数

RxJava:如何用依赖关系组合多个Observable并在最后收集所有结果?

我正在学习RxJava,并且,作为我的第一个实验,尝试在此代码中的第一个run()方法中重写代码(在Netflix的博客中引用,作为RxJava可以帮助解决的问题)使用RxJava改进其异步性,即它不会f1.get()在继续执行其余代码之前,请等待第一个Future()的结果.

f3取决于f1.我看到如何处理这个,flatMap似乎做了诀窍:

Observable<String> f3Observable = Observable.from(executor.submit(new CallToRemoteServiceA()))
    .flatMap(new Func1<String, Observable<String>>() {
        @Override
        public Observable<String> call(String s) {
            return Observable.from(executor.submit(new CallToRemoteServiceC(s)));
        }
    });
Run Code Online (Sandbox Code Playgroud)

接下来,f4f5依靠f2.我有这个:

final Observable<Integer> f4And5Observable = Observable.from(executor.submit(new CallToRemoteServiceB()))
    .flatMap(new Func1<Integer, Observable<Integer>>() {
        @Override
        public Observable<Integer> call(Integer i) {
            Observable<Integer> f4Observable = Observable.from(executor.submit(new CallToRemoteServiceD(i)));
            Observable<Integer> f5Observable = Observable.from(executor.submit(new CallToRemoteServiceE(i)));
            return Observable.merge(f4Observable, f5Observable);
        }
    });
Run Code Online (Sandbox Code Playgroud)

这开始变得奇怪(merge他们可能不是我想要的......)但是允许我在最后这样做,而不是我想要的:

f3Observable.subscribe(new Action1<String>() {
    @Override …
Run Code Online (Sandbox Code Playgroud)

java functional-programming reactive-programming rx-java

20
推荐指数
2
解决办法
3万
查看次数

用"纯"C++ 11替代替换BOOST_FOREACH?

是否有可能BOOST_FOREACH用"纯"C++ 11等效替换本例中的?

#include <map>
#include <functional>
#include <boost/foreach.hpp>
#include <iostream>

int main() {
  std::map<int, std::string> map = {std::make_pair(1,"one"), std::make_pair(2,"two")};
  int k;
  std::string v;
  BOOST_FOREACH(std::tie(k, v), map) {
    std::cout << "k=" << k << " - " << v << std::endl;
  }
}
Run Code Online (Sandbox Code Playgroud)

关键特性是将键/值对保留在k和的引用中v.

我试过了:

for(std::tie(k,v) : map)
{
  std::cout << "k=" << k << " - " << v << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

auto i = std::tie(k,v);
for(i : map)
{
  std::cout << "k=" …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-foreach c++11

19
推荐指数
1
解决办法
5968
查看次数

PHP:显示是/否确认对话框

我的PHP页面有一个删除一个MySQL表格数据的链接.我希望它是这样一种方式,当我点击"删除"链接时,应该出现一个确认框,它应该询问"你确定,你想删除吗?",有两个按钮:'是'和'否' .当我单击是时,我想删除MySQL表的数据,当我单击否时,什么都不会发生.

javascript php mysql

18
推荐指数
4
解决办法
18万
查看次数

将EnumSet存储在数据库中?

因此,在C++/C#中,您可以创建标记枚举以保存多个值,并且在数据库中存储单个有意义的整数当然是微不足道的.

在Java中你有EnumSets,它似乎是一种在内存中传递枚举的好方法,但是你如何将组合的EnumSet输出到一个整数来存储呢?还有另一种方法来解决这个问题吗?

java flags

18
推荐指数
5
解决办法
8289
查看次数

constexpr未定义的行为

我一直在试验constexpr.在我的测试编译器(g ++ 4.6)上,无法编译带有关于越界访问的错误.是一个编译器需要在编译时被发现呢?

#include <iostream>

constexpr const char *str = "hi";

constexpr int fail() {
  return str[1000]; // Way past the end!
}

template <int N>
struct foo {
  static void print() { std::cout << N << std::endl; }
};

int main() {  
  foo<fail()>::print();
}
Run Code Online (Sandbox Code Playgroud)

c++ undefined-behavior language-lawyer c++11

18
推荐指数
2
解决办法
933
查看次数