我对编程很陌生,我正尝试在我做的一个小游戏中添加一个随机机器人移动。我的想法是制作一个所有合法移动的元组列表,然后从列表中随机选择一个元组,然后解构和改变二维数组中的一个值。我在互联网上找遍了,找到了制作元组列表的方法(我想),但无法从列表中随机选择一个元素。
我是这么试的:
List<Tuple<int, int>> legalMoves; // To make the list of tuples
// Later on in a double for-loop that iterates through all the rows and columns of the 2D-array I check if that certain row and column combination is a legal move and then add it to the list like so:
legalMoves.Add(Tuple.Create(row, col));
//Then in a different method I try to pick a random element from that list (this doesn't work)
Random random = new Random();
int randomIndex = random.Next(legalMoves.Count);
(int, int) randomMove = legalMoves[randomIndex];
它在最后一行给出以下错误:错误CS0029无法将类型"System. Tuple〈int,int〉"隐式转换为"(int,int)"
有什么办法能让这件事成功吗?
先谢了!
1条答案
按热度按时间z9ju0rcb1#
语法
(int, int)
定义ValueTuple<int,int>
,而不是Tuple<int,int>
。将列表定义更改为:以及
Tuple.Create
至ValueTuple.Create