多次元配列について質問
以下はあるJavaの参考書の問題文とその解答ソースコードです。
疑問点があるので、質問に答えてくだされば幸いです!
問題文:じゃんけんゲームを作成します。ジャンケンは次の図のように数値で表します。勝敗表も示します。(『次の図』と『勝敗表』は、Upした画像を参考にしてください。)
次のメソッドを持つクラスを作成します。
A.rand3メソッド
・乱数を使って1,2,3のどれかの値を作成して返す(グー、チョキ、パーにあたる)
B.jankenメソッド
・人が入力したじゃんけんの種類(1,2,3のどれか)を仮引数nに受け取り、次の処理を行う。
1:rand3メソッドでコンピューター側のじゃんけんの値を変数mに得る
2:mとnを比較して次のどれかの値を返す
・人が勝ちなら 1・コンピューターが勝ちなら2 ・引き分けなら0
C. isJankenメソッド
・int の値を仮引数nに受け取り、nが1,2,3のどれかであるときtrue、そうでなければfalseを返す
D.mainメソッド
・キーボードをタイプして1,2,3のどれかの値を入力し、それを実引数としてjankenメソッドを呼び出し、勝敗を表示する。
1:isJankenメソッドを使って、人が入力した数値が1,2,3のどれかであるかどうか検査し、もしも1,2,3以外なら「入力した値が正しくない」と表示して直ちに処理を終了します。
2:入力値が正しければ、jankenメソッドを実行する。
3:結果は、「勝ち」「負け」「引き分け」のどれかの文字列を表示する。
------解答ソースコード-------
package 第16章;
import lib.Input;
public class 通過テスト2 {
public static void main(String[]arg){
int n=Input.getInt();
if(isJanken(n)){
System.out.print(n+":");
switch(janken(n)){
case 0:
System.out.println("引き分け");
break;
case 1:
System.out.println("勝ち");
break;
case 2:
System.out.println("負け");
break;
}
}else{
System.out.println("入力した値が正しくない");
}
}
public static int rand3(){
int com=(int)(Math.random()*3+1);
return com;
}
public static boolean isJanken(int n){
if(n==1||n==2||n==3){
return true;
}else{
return false;
}
}
//
public static int janken(int n){
int[][]tb1={
{9,9,9,9},
{9,0,1,2},
{9,2,0,1},
{9,1,2,0}
};
int m=rand3();
System.out.println(m+" ");
return tb1[n][m];
}
}
-----解答ソースコード終-----------
質問:Jankenメソッドの2次元配列について、その意味が全然わかりません。Upした画像の「勝敗表」を表してるのはわかるのですが、その勝敗表とどのような対応関係にあるのかわかりません。
具体的な疑問点は以下の2点です
1点目:何故「9」という数字があるのかわかりません。
2点目:何故2次元目の要素数が「4つ」あるのかわかりません。1次元目の要素数も4つありますが、それもわかりません。
ごめんなさい、、ほんとに何もかもわからない。手取り足取り教えていただきたいです。。
お礼
連日ありがとうございます。 >ちなみに「無視される」というのは、「ゼロになる」という意味ではないので注意を。なぜならばゼロを代入するスペースすらないからです。 足りない頭で考えてみたのですが、 三次元→二次元に力をかけた場合に、『オクユキ』の力は二次元の世界へと干渉することは出来ない。しかし『オクユキ』の力自体は二次元世界に存在する(ゼロになるという意味では~というのは多分理解できました) ということなのでしょうか? もう一つ >垂直な力が影響を及ぼさないというのは、今は意味のない話ですよね この文の『今は』というのがどうも引っかかるんです。 これが 「垂直な力が影響を及ぼさないというのは意味のない話」 であればなんとなーく分かるんですけど・・・ 後々何かしらの影響を与える、もしくは常に影響を与えている、のどちらかで解釈すればよろしいのでしょうか? 連日時間を割いて頂き申し訳ありません。 本当に暇な時にでもいいのでよろしくお願い致します。