Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Desafio: seu futuro ainda não está escrito

Criei um projeto um pouco diferente, não foi exatamente a proposta e obviamente poderia ser melhor mas era a ideia que queria passar kkkk

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

import 'dart:io';

void main() {

  Group gp = Group();
  User joao = User(name: 'Joao');
  User maria = User(name: 'Mariana');
  gp.addUsers([joao,maria]);

  Future futureObj = Future(() => 'Iniciando conversa...').then((value) async {
    print(value);
    await groupChat(gp).then((value) => print(value));
  });

}

Future groupChat(Group group) async {
  try {
    print('type \'end\' to end the group chat\n\n');
    bool leaveChat = false;

    while(leaveChat == false){
      for(int i = 0; i < group.getUsers.length; ++i){
        // print('${group.getUsers[i].getName} is typing...');
        leaveChat = group.sendMessageOnChat(group.getUsers[i], group.getUsers[i].sendMessage());
        Future.delayed(Duration(seconds: 2));
        if(leaveChat == true) {
          print('terminando conversa...');
          Future.delayed(Duration(seconds: 3));
          return 'conversa terminada';
        }
      }
    }
  } catch (e) {
    print('an error has occurred: ' + e.toString());
  }
}

class User {
  final String name;

  User({required this.name});

  String get getName => name;

  String sendMessage() {
    String? msg = stdin.readLineSync();

    // return msg != null ? msg : '';
    if(msg !=null) {
      return msg;
    }
    return '';
  }
}

class Group {

  List<User> usersList = [];

  List<User> get getUsers => usersList;

  bool sendMessageOnChat (User user,String msg)  {
    if(msg != 'end') {
      print('${user.getName}: ' + msg);
      return false;
    }
    return true;
  }

  void addUsers(List<User> list) => usersList.addAll(list);
  void addUser(User user) => usersList.add(user);
}
2 respostas
solução!

Fala Vinicius, de boa ?

Cara bem bacana, a ideia do desafio é apenas estimular a galera num ambiente simulado, no teu caso tu mandou bem, saiu da caixinha e fez uma solução bem maneira

Obrigado pelo feedback Matheus!!! eh nois man