小编Dav*_*les的帖子

返回多维数组的指针

我是Java程序员,我正在努力解决这些简单的问题.

我怎样才能返回这个多维数组?是否必须返回**指针?我如何在另一个文件中获取它?

static MoveDirection ghost_moves[GHOSTS_SIZE][4];

MoveDirection** get_ghost_moves() {
    return ghost_moves;
}
Run Code Online (Sandbox Code Playgroud)

c pointers

4
推荐指数
1
解决办法
2022
查看次数

在我的Pac-Man女士的实现中可能过度使用java接口

我在过去的6年里一直是Java程序员,从今年年初开始,我对游戏编程感兴趣.所以,我认为从一个流行的游戏开始是一个好主意,我在Java中实现了Pac-Man女士游戏.我可以说我的实现看起来与原始游戏大约有90%相似,我试图尽可能多地使用设计模式和最佳实践,因为这只是学习编写基本2D游戏的个人项目.

现在我完成了编码,我意识到我有19个接口,只有17个类!所以我开始想知道我是否可能过度使用接口.

以下是我使用的几个类/接口的示例:

- FullGame(实现FullGameInterface和FullGameObservable)

- View1(实现FullGameObserver)

接口 - FullGameInterface(基本功能方法:恢复,暂停,播放等)

接口 - FullGameObservable(允许注册视图以获取更新通知)

界面 - FullGameObserver(由2个不同的游戏视图实现接收通知)

我是否过度使用接口?

你有什么意见?

java design-patterns interface pacman

3
推荐指数
1
解决办法
1587
查看次数

C语言中游戏编程的基础知识

在过去的两个月里,我一直在努力学习游戏编程的基础知识.所以我用Java编写了几个简单的游戏来学习基础知识,比如俄罗斯方块,跳棋和吃豆人.

现在我想学习/提高我的C技能,所以我有这个用C语言编写游戏的想法,以便更多地了解内存管理,没有OOP等.我之前做过基本的C编程,但从来没有使用图形,所以我不喜欢我不知道从哪里开始.

我应该使用哪些库在C中编写简单的2D游戏?GTK +?开罗图书馆?你可以推荐任何教程吗?图形库?

谢谢

c gtk

3
推荐指数
1
解决办法
3124
查看次数

这个循环在做什么?

for循环在做什么?我只是无法理解.

list<pair<int, double> > nabors;
list<pair<int, double> >::iterator i;

for (i = nabors.begin(); i != nabors.end() && dist >= i->second; i++);
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
1
解决办法
333
查看次数

从满足特定条件的列表中选择随机元素的最快方法

我需要从列表中选择一个满足某些条件的随机元素.我一直在使用的方法有效,但我确信并非一切都有效.最有效的方法是什么?

以下代码位于while(true)循环内,因此在每次迭代时显然不是非常有效地对列表进行洗牌.

Foo randomPick = null;
Collections.shuffle(myList);
for (Foo f : myList) {
    if (f.property) {
        randomPick = f;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

java random algorithm

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

用于文件/图像处理的有效解释编程语言

我需要创建一个脚本来从目录中读取图像,重命名它们,将它们调整为MAX_HEIGHT,MAX_WIDTH,放置水印徽标并将其保存在JPG中.

我正在考虑使用解释性语言,如Ruby,PHP,Perl,Python或任何具有图像处理功能的语言.

你会推荐哪种语言?

php ruby python perl image-manipulation

1
推荐指数
4
解决办法
524
查看次数

如何以更简单的方式使用泛型定义/实现此接口?

我正在使用遗传算法,我希望它尽可能抽象,以便能够重用GA.我定义并实现了一个人口界面,它很有效,但我确信这不是最好的方法.我没有Java Generics的丰富经验.有没有更简单的方法来定义和实现Population接口(例如,可能避免强制转换?避免getChromosomes()中的新列表?)

public interface Population
{
    void addChromosomes(List<? extends Chromosome> chromosomes);

    List<Chromosome> getChromosomes();

    // More code here ...
}

public class TSPPopulation implements Population
{
    private List<TSPChromosome> chromosomes;

    @Override
    public void addChromosomes(List<? extends Chromosome> chromosomes) {
        for (Chromosome chromosome : chromosomes) {
            this.chromosomes.add((TSPChromosome) chromosome);
        }
    }

    @Override
    public List<Chromosome> getChromosomes() {
        List<Chromosome> newList = new ArrayList<Chromosome>();
        for (TSPChromosome chromosome : chromosomes) {
            newList.add(chromosome);
        }
        return newList;
    }
}
Run Code Online (Sandbox Code Playgroud)

java

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

Objective-C代码没有释放内存!

我正在努力学习Objective-C.我几乎完成了一个练习,但它没有释放内存:

这就是我所拥有的:

void PrintPolygonInfo() {
    NSLog(@"--------------------");
    NSLog(@" PRINT POLYGON INFO");
    NSLog(@"--------------------");
    NSMutableArray *array = [[NSMutableArray alloc] init];
    PolygonShape *p1 = [[PolygonShape alloc] initWithNumberOfSides:4 minimumNumberOfSides:3 maximumNumberOfSides:7];
    PolygonShape *p2 = [[PolygonShape alloc] initWithNumberOfSides:6 minimumNumberOfSides:5 maximumNumberOfSides:9];
    PolygonShape *p3 = [[PolygonShape alloc] initWithNumberOfSides:12 minimumNumberOfSides:9 maximumNumberOfSides:12];
    [array addObject:p1];
    [array addObject:p2];
    [array addObject:p3];
    // Log the descriptions
    for (id shape in array) {
        NSLog(@"%@", shape);
    }
    // Test the constraints
    for (PolygonShape *shape in array) {
        [shape setNumberOfSides:10];
    }
    [p1 release];
    [p2 release];
    [p3 release];
} …
Run Code Online (Sandbox Code Playgroud)

memory-leaks objective-c

0
推荐指数
1
解决办法
574
查看次数

在Java中的Vector2d类中旋转

我已经在这工作了一个小时,只是无法得到它.

我有一个Vector2d类:

public class Vector2d
{
    public double x = 0.0;
    public double y = 0.0;

    ....
}
Run Code Online (Sandbox Code Playgroud)

这个vector类有一个rotate()方法,这会给我带来麻烦.

第一个片段似乎使x和y值越来越小.第二个工作正常!我错过了一些简单的东西吗?

public void rotate(double n)
{
    this.x = (this.x * Math.cos(n)) - (this.y * Math.sin(n));
    this.y = (this.x * Math.sin(n)) + (this.y * Math.cos(n));
}
Run Code Online (Sandbox Code Playgroud)

这有效:

public void rotate(double n)
{
    double rx = (this.x * Math.cos(n)) - (this.y * Math.sin(n));
    double ry = (this.x * Math.sin(n)) + (this.y * Math.cos(n));
    x = rx;
    y = ry;
}
Run Code Online (Sandbox Code Playgroud)

我在那里找不到任何差异

java vector rotation

0
推荐指数
1
解决办法
5221
查看次数

如何在C++模板中实现Java Generics自限类型的等价物

我在Java中有一小部分算法用于播放多个回合制游戏,例如TicTacToe,Othello,Checkers等.我使用Java Generics(自我绑定类型)来使用相同的算法而不必为每场比赛专门改变它们.我在这里没有显示使用自绑定类型的原因,但是评估函数需要它.

public interface Game<GAME extends Game<GAME>> {
    GAME copy();
    int getCurPlayer();
    ...
}

public class TicTacToe implements Game<TicTacToe> {
    ...
    @Override
    public TicTacToe copy() {
        ...
    }
    @Override
    public int getCurPlayer() {
        ...
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

今天,为了学习,我尝试使用C++模板将我的Java代码移动到C++.

这是我的方法,显然它没有用.

Game.h

template <typename T>
class Game
{
    public:
        virtual T copy() const = 0;
        virtual int cur_player() const = 0;
        ...
};
Run Code Online (Sandbox Code Playgroud)

TicTacToe.h

class TicTacToe : public Game<TicTacToe>
{
public:
    virtual TicTacToe copy() const;
    virtual int cur_player() const;
    ...
};
Run Code Online (Sandbox Code Playgroud)

TicTacToe.cpp …

c++ java generics templates

0
推荐指数
1
解决办法
422
查看次数