2017-04-15 1 views
0
public class Spieler 
{ 
    public Magier Henri = new Magier ("Magier Henri");  
    public Krieger Christian = new Krieger ("Krieger Christian"); 
    public Supporter Judith = new Supporter ("Suppporter Judith"); 
    public Schuetze Lukas = new Schuetze ("Schuetze Lukas"); 
    public Magier Nick = new Magier ("Magier Nick");  
    public Krieger Anna = new Krieger ("Krieger Anna"); 
    public Supporter Neele = new Supporter ("Suppporter Neele"); 
    public Schuetze Christoph = new Schuetze ("Schuetze Christoph"); 
    public int i; 
    public int besten5; 
    public int bestPlayerEU; 
    public int[][] kandidat = new int[8][2]; 
    int t; 

    public void fuelleArray() 
    { 
     kandidat[0][0] = Henri.getGesamtPunkte(); 
     kandidat[0][1] = 1; 
     kandidat[1][0] = Christian.getGesamtPunkte(); 
     kandidat[1][1] = 2; 
     kandidat[2][0] = Judith.getGesamtPunkte(); 
     kandidat[2][1] = 3; 
     kandidat[3][0] = Lukas.getGesamtPunkte(); 
     kandidat[3][1] = 4; 
     kandidat[4][0] = Nick.getGesamtPunkte(); 
     kandidat[4][1] = 5; 
     kandidat[5][0] = Anna.getGesamtPunkte(); 
     kandidat[5][1] = 6; 
     kandidat[6][0] = Neele.getGesamtPunkte(); 
     kandidat[6][1] = 7; 
     kandidat[7][0] = Christoph.getGesamtPunkte(); 
     kandidat[7][1] = 8; 
    } 

    public int[][] sort() 
    { 
     fuelleArray(); 
     int temp = 0; 
     for (int i = 0; i < kandidat.length; i++) 
     { 
      for(int j = 1; j < kandidat.length-i; j++) 
      { 
       if(kandidat[j][t] < kandidat[j-1][t]) 
       { 
        temp = kandidat [j-1][t]; 
        kandidat[j-1][t] = kandidat [j][t]; 
        kandidat[j][t] = temp; 
       } 
      } 
     } 
     return kandidat; 
    } 
} 

ここでは、ランダム値をソートした配列の左側を取得しますが、2次元配列の右側の値が文字に適していることも念頭に置いてください。だから私はkandidat "アンリ"はまだ値1、 "キリスト教" = 2、 "ジュディス" = 3、 "ルーカス" = 4というようにしたいと思います。アレイの右側の数字が文字/ kandidatに適しているように、誰かが説明またはコードを書くことができますか?他の値に適した2次元配列の値をソートする方法は?

だから、配列が最初にこのようになりますとき:

0 1 
0 26 1 
1 45 2 
2 37 3 
3 33 4 
4 27 5 
5 29 6 
6 41 7 
7 49 8 

それは最後に次のようになります。

 0 1 
0 26 1 
1 27 5 
2 29 6 
3 33 4 
4 37 3 
5 41 7 
6 45 2 
7 49 8 
+0

あなたが望む結果と、そこに到達するために必要な個々のステップについて詳細に説明してみてください。 –

+0

@ThorbjørnRavnAndersenしたがって、配列の左側はランダムな値で満たされ、ソート方法ではソートされているので、最も高い値は配列の一番下にあります。配列の正しい場所に1,2,3などがあります。この特定の数値は、キリスト教徒のようなランダムな値に属しています。常に数字2であるべきです。あるいは、ヘンリは常に1でなければなりません。ソートされた値はソートされますが、ソート方法の後には、どのようにランダムな値を並べ替えることができ、特定の数値はランダムな値にとどまりますか? :) pls help – L2XU

+0

いくつかの無関係なアドバイス:可能であれば、英語でコーディングの習慣を身につけてみてください。優れたプラクティス、業界標準であり、このような国際的なプラットフォームで質問をすると便利です。 :) – domsson

答えて

0

私はそれを正しく理解していれば、あなたがペアを交換したいですそれらのペアを一緒に保っている「カンディダート」+数字。これはペア(kanditate[j-1][0], kandidate[j-1][1])とペア(kanditate[j][0], kandidate[j][1])を入れ替え

int[] temp = kandidat [j-1]; 
kandidat[j-1] = kandidat [j]; 
kandidat[j] = temp; 

:あなたはこのような何かを試してみました。

+0

あなたは素晴らしいです!どうもありがとうございました!私もint temp = 0の定義を削除しなければならなかった。今それは動作します。素敵です:) – L2XU

+0

ようこそ。面白いのですが、これを正しくマークしましたが、役に立たずにアップヴォートしないでください:p – Imus

+0

upvoteが記録されますが、私の評判は15以下ですので表示されません:D – L2XU

関連する問題