gpt4 book ai didi

if-statement - 'if' 语句太多?

转载 作者:行者123 更新时间:2023-12-03 04:04:58 24 4
gpt4 key购买 nike

下面的代码确实可以按照我需要的方式工作,但它很丑陋、过多或有许多其他问题。我查看了公式并尝试编写一些解决方案,但最终得到了类似数量的语句。

在这种情况下,是否有一种数学公式对我有利,或者 16 个 if 语句是否可以接受?

解释一下代码,它是一种基于同时回合的游戏。两个玩家各有四个操作按钮,结果来自数组 (0-3),但变量“一”和“二” ' 如果有帮助的话可以分配任何东西。结果是,0 = 双方均未获胜,1 = p1 获胜,2 = p2 获胜,3 = 双方均获胜。

public int fightMath(int one, int two) {

if(one == 0 && two == 0) { result = 0; }
else if(one == 0 && two == 1) { result = 0; }
else if(one == 0 && two == 2) { result = 1; }
else if(one == 0 && two == 3) { result = 2; }
else if(one == 1 && two == 0) { result = 0; }
else if(one == 1 && two == 1) { result = 0; }
else if(one == 1 && two == 2) { result = 2; }
else if(one == 1 && two == 3) { result = 1; }
else if(one == 2 && two == 0) { result = 2; }
else if(one == 2 && two == 1) { result = 1; }
else if(one == 2 && two == 2) { result = 3; }
else if(one == 2 && two == 3) { result = 3; }
else if(one == 3 && two == 0) { result = 1; }
else if(one == 3 && two == 1) { result = 2; }
else if(one == 3 && two == 2) { result = 3; }
else if(one == 3 && two == 3) { result = 3; }

return result;
}

最佳答案

如果您无法想出公式,您可以使用表格来表示有限数量的结果:

final int[][] result = new int[][] {
{ 0, 0, 1, 2 },
{ 0, 0, 2, 1 },
{ 2, 1, 3, 3 },
{ 1, 2, 3, 3 }
};
return result[one][two];

关于if-statement - 'if' 语句太多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com