找回密码
 立即注册

QQ登录

只需一步,快速开始

chnjxyuezhe

注册会员

1

主题

2

帖子

34

积分

注册会员

积分
34
  • 32

    金币

  • 主题

  • 帖子

最新发帖
chnjxyuezhe
注册会员   /  发表于:2012-3-18 14:06  /   查看:4864  /  回复:3
在25*25的单色地图上,比如绿色,用《竞赛题目及相关说明-3月10日更新.doc》里的示例程序进行游戏,为什么建筑都被放在了从左上角到右下角的对角线上了?难道是伪随机数的问题?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3 个回复

倒序浏览
Iver
版主   /  发表于:2012-3-19 10:04:00
沙发

回复 1# chnjxyuezhe 的帖子

你好,chnjxyuezhe:
看起来是的
Radom.Next有几个重载的方法,可以尝试使用不同的重载来避免这个喜感的效果:smoke
当然,老生常谈地再补充一句,那个示例算法是演示接口使用的,仅供参考:-o
回复 使用道具 举报
Iver
版主   /  发表于:2012-3-19 14:43:00
板凳

回复 1# chnjxyuezhe 的帖子

你好,chnjxyuezhe:
好吧,我得承认,我说错话了:Z 这个问题的答案,的确只是看上去如此。
造成所有建筑都被摆放在主对角线上的原因,不是Random.Next生成的随机数的问题,而是因为以下两行:
    int x = randNum % map.Width;
    int y = randNum % map.Height;
注意到了么?如果地图的宽和高是相等的,那么,这个算法只会尝试将建筑的左上角摆放在主对角线上
回复 使用道具 举报
chnjxyuezhe
注册会员   /  发表于:2012-3-21 21:18:00
地板
哦,是。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部