プログラミング木曽研修


2016/10/20

課題3_1 指摘事項 楊先生 [#f0d6622d]

  • クラス名は大文字で始まる。ソース中で見分けやすくするため。
    dice X → Dice ○
  • 複数の単語を組み合わせた識別子の場合、二つ目の単語の先頭を大文字にする
    minnumber -> minNumber
  • Eclipse 識別子を関連箇所含めて一気に直す
    識別子を選択して 右クリック-> Refactor -> Rename
  • setter/getterの自動生成
    識別子を選択して右クリック -> Source -> Generate Setter and Getter
  • Diceのようなクラスの場合、toString() をオーバーライドしておくと、文字列結合の時勝手に暗黙の変換をしてくれる。
    class Dice {
     @Override
     public String toString(){
      return number;
    }
    main(){
     Dice d = new Dice();
     System.out.println("すうじ:"+d);
    }
  • static を付けるとクラスメソッドになるのでインスタンス化なしに使用できるが、代償としてその中ではstaticなメソッドのみ呼べる。static ではないメソッドを呼び出す場合、ふつーにnewして関数実行するだけ。
    public class Kadai3_1{
     main(){
       	Kadai3_1 k3_1 = new Kadai3_1();
       	
       	Dice d = new Dice(6);
       	d.shuffle();
       	System.out.println("サイコロの数字: "+d);
       	System.out.print("サイコロの目は");
       	/*if(isOdd(Integer.parseInt(d.toString()))){*/
       	if(k3_1.isOdd(d.getNumber())){
       		System.out.println("奇数です");
       	}else{
       		System.out.println("偶数です");
       	}
       }
       
       boolean isOdd(int i){
       	if(i%2 == 1){
       		return true; //kisuu
       	}else{
       		return false; //even
       	}
       }

課題3_2 指摘事項 楊先生 [#eef651b8]

  • Javaの整数の乱数発生メソッド(クラスメソッドとして利用可能)
    number = new java.util.Random().nextInt(6) + 1;
    nextInt(6) は 0-5 の数字を発生する。
  • 改造版
    number = (new java.util.Random().nextInt(Math.abs(maxNumber) - Math.abs(minNumber) + 1)) + minNumber 
  • じゃんけんの判定
    p: Player
    c: Computer
    
    0:グー 1:チョキ 2:パー
    
    p c  p c  p c  r
    0 0  1 1  2 2  draw   c-p=0 		+2 -> 2
    0 1  1 2  2 0  win    c-p=1 or -2 	+2 -> 3 or 0
    0 2  1 0  2 1  lose   c-p=2 or -1 	+2 -> 4 or 1 
    ->
    0 is win
    1 is lose
    2 is draw
    matrix{ 0 , 1 , 2 , 0 , 1 }  -> matrix[c-p+2]
    
    こういう判定もある。
    p c  p c  p c  r
    0 0  1 1  2 2  draw  c-p=0
    0 1  1 2  2 0  win    p+1={ 1  2  3 } %3-> 1 2 0  --> same as c then win 
    0 2  1 0  2 1  lose    
    
    
    if( p - c ){  
          -> draw
    }else if( (p + 1) % 3 == c ){
         -> p win
    }else{
         -> p lose
    }

課題3_3 指摘事項 中島先生

  • if文は考えすぎず、処理回数を減らす方向で検討すべき。規模が大きくなると速度に効いてくる。
    if(){}
    if(){}
    if(){}
    ->
    if(){}
    else if(){}
    else if(){}
    

課題3_4 指摘 中島先生

  • 課題を見てもらいながら、いろいろ質問して先生からいろいろ学ぶといい。
  • CodeIQのようなところで課題をとくべき。120%くらい力が必要な課題に取り組んだほうがいい。

BigOrSmall

最新の20件

2017-12-05 2017-09-08 2017-08-07 2017-06-01 2016-11-18 2016-11-06
  • プログラミング木曽研修
2016-10-20

今日の6件

  • counter: 134
  • today: 2
  • yesterday: 0
  • online: 1