【问题标题】:Accessing Data From Flutter Class从 Flutter 类访问数据
【发布时间】:2020-05-05 23:12:06
【问题描述】:
class Player{
final String playerName;
final int playerValue;

Player({this.playerName,this.playerValue});

final List <Player> playersList = [
 Player(playerName: 'player1', playerValue: 20),
 Player(playerName: 'player2', playerValue: 20),
 Player(playerName: 'player1', playerValue: 30),
 Player(playerName: 'player3', playerValue: 50),
 Player(playerName: 'player5', playerValue: 60),
];
player1 = (playersList..shuffle()).first;
player2 = (playersList..shuffle()).last;

while (player1.playerName == player2.playerName || player1.playerValue == player2.playerVaue) {

 player2 = (playersList..shuffle()).last;

   }

所以这就是我想要做的:我想手动创建一个玩家列表,如上所示,并希望将其中一个玩家随机分配给 player1 和 player2,以防他们两个结果相同值或名称,我想随机选择播放器,以便我们可以比较它们的值。我真的无法弄清楚如何在代码中制定它。 另外,我想将 playerName 和 playerValue 发送到另一个类,在那里我将它们显示在有状态的小部件中。如您所见,我刚刚开始使用 Flutter,因此非常感谢任何帮助!

【问题讨论】:

    标签: flutter dart getter-setter


    【解决方案1】:

    这行得通...

       final List<Player> playersList = [
        Player(playerName: 'player1', playerValue: 20),
        Player(playerName: 'player2', playerValue: 20),
        Player(playerName: 'player1', playerValue: 30),
        Player(playerName: 'player3', playerValue: 50),
        Player(playerName: 'player5', playerValue: 60),
      ];
    
      playersList.shuffle();
      var player1 = playersList.first;
      var player2 = player1;
      while (player1.playerName == player2.playerName) {
        playersList.shuffle();
        player2 = playersList.first;
      }
    
      print(player1);
      print(player2);
    

    更新:将其包装在 Player 类的方法中

    
    class Player {
      final String playerName;
      final int playerValue;
    
      Player({this.playerName, this.playerValue});
    
      static List<Player> pairPlayers() {
        final List<Player> playersList = [
          Player(playerName: 'player1', playerValue: 20),
          Player(playerName: 'player2', playerValue: 20),
          Player(playerName: 'player1', playerValue: 30),
          Player(playerName: 'player3', playerValue: 50),
          Player(playerName: 'player5', playerValue: 60),
        ];
    
        playersList.shuffle();
        var player1 = playersList.first;
        var player2 = player1;
        while (player1.playerName == player2.playerName) {
          playersList.shuffle();
          player2 = playersList.first;
        }
    
        return [player1, player2];
      }
    
      @override
      String toString() {
        return playerName;
      }
    }
    

    那么任何时候你想配对玩家使用

    Players.pairPlayers();
    

    【讨论】:

    • 感谢您的快速回复!你试过代码吗?我遇到了很多错误:/您能否尝试复制和粘贴相同的代码来帮助调试?当您插入代码时(从 playerList.shuffle(); 开始直到结束),在 void 函数中,我没有收到错误,我唯一要做的就是找到一种方法来尽快启动该函数当应用程序启动时。有什么帮助吗?
    • 不客气。请赞成并接受,以便其他人可以看到相关性。 @K.Fawaz
    猜你喜欢
    • 2020-10-23
    • 2021-11-11
    • 2020-09-26
    • 2018-08-24
    • 2019-10-11
    • 1970-01-01
    • 2021-04-22
    • 2020-06-05
    • 2021-02-21
    相关资源
    最近更新 更多