QA@IT
«質問へ戻る

質問を投稿

C# List内の値が重複していたら+1する

現在C#を使って自作ゲームを作っているのですが、普段使わない言語だけにどのように解決するのかわからず、質問した次第です。
構造体の入ったリストが一つあります。
public struct Test
{
 public int id;
 public int turn;
}
public List test_list = new List();

ここに仮に3つのデータが入っているとします。
1、id = 0, turn = 2
2、id = 1, turn = 3
3、id = 2, turn = 7

turnの数は1ターンに1ずつ減り、0になったら処理が行われ、また最初のturnに戻ります。
ここからわからない部分です。
リスト内の2つの要素のturnが同時に0にならないように、0になって最初のturnに戻る際、他の要素とturnを比較し、同じ値のものがあればidが大きい方を優先し、idが小さい方のturnに+1します。
これを要素内のturnが全くかぶらなくなるまで続け、処理を終了とします。

上記の処理はどのように書けば実装可能でしょうか。
なにかわからない部分がありましたらお聞きください。追記いたします。
よろしくお願いいたします。

現在C#を使って自作ゲームを作っているのですが、普段使わない言語だけにどのように解決するのかわからず、質問した次第です。
構造体の入ったリストが一つあります。
public struct Test
{
 public int id;
 public int turn;
}
public List<Test> test_list = new List<Test>();

ここに仮に3つのデータが入っているとします。
1、id = 0, turn = 2
2、id = 1, turn = 3
3、id = 2, turn = 7

turnの数は1ターンに1ずつ減り、0になったら処理が行われ、また最初のturnに戻ります。
ここからわからない部分です。
リスト内の2つの要素のturnが同時に0にならないように、0になって最初のturnに戻る際、他の要素とturnを比較し、同じ値のものがあればidが大きい方を優先し、idが小さい方のturnに+1します。
これを要素内のturnが全くかぶらなくなるまで続け、処理を終了とします。

上記の処理はどのように書けば実装可能でしょうか。
なにかわからない部分がありましたらお聞きください。追記いたします。
よろしくお願いいたします。