マルチスレッド

シングルスレッド

スレッドのコントロールはThreadクラスを用いる

SingleThread.java
SingleTheadTest.java

マルチスレッド

MultiThread.java
MultiThradTest.java

Threadクラスの継承

Theadクラスの継承

修飾子 class クラス名  extends Thread {
     クラスの内容
     public void run() {
          各スレッドが行う処理
    }
     クラスの内容
]

スレッドを開始するための書式

クラス名.start();
MultiThread2.java
MultiThradTest2.java

Runnableインターフェースの実装

修飾子 class クラス名 impliments Runnable {
      クラスの内容
      public void run() {
             各スレッドが行う処理
      }
      クラスの内容
}

スレッドインスタンスを生成するための書式

クラス名 オブジェクト変数名 = new インスタンス名( );
Thread Threadオブジェクト変数名 = new Thread(オブジェクト変数名);

例:

MultiThreadExample t = new MultiThreadExample();
Thread tt = new Thread(t);
MultiThread3.java
MultiThreadTest3.java

Robocode

インストール

  • Robocodeのホームページ http://robocode.sourceforge.net/ より,最新版(1.9.2.4)をダウンロードする.;

    #ref(): File not found: "robocode-1.9.2.4-setup.jar" at page "Programming_II/15/第10回"

  • ダブルクリックでインストールを行う.
    /Users/ユーザ名/robocode
    を作るかと聞いてくるので,Yesで作成する.

Robocode 起動

$ cd
$ sh robocode/robocode.sh

Robocodeソース

  • Robocode [Robot]メニュー[Editor]より,Source Editorを開く.
  • [File]メニュー[New]>[Robot]で,新しいロボットファイルを開く.
    screenshot_04.png

で,新しいロボット(クラス)名を入れる.ここでは,MyFirstRobot つぎに

screenshot_03.png

により,パッケージ名を入れる.ここでは,e15をいれる.(小文字を使う)

つぎのようなソースファイルがデフォルトで開かれる.

~/robocode/robots/e15/MyFirstRobot.java

で保存される.

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 
 
-
!
-
!
-
|
!
 
-
-
|
!
-
-
!
-
|
!
-
!
-
-
-
!
|
|
|
!
!
|
-
|
!
-
-
!
!
|
-
|
!
-
-
!
!
|
-
|
!
-
-
!
!
!
package e15;
import robocode.*;
//import java.awt.Color;
 
// API help : http://robocode.sourceforge.net/docs/robocode/robocode/Robot.html
 
/**
 * MyFirstRobot - a robot by (your name here)
 */
public class MyFirstRobot extends Robot
{
    /**
     * run: MyFirstRobot's default behavior
     */
    public void run() {
        // Initialization of the robot should be put here
 
        // After trying out your robot, try uncommenting the import at the top,
        // and the next line:
 
        // setColors(Color.red,Color.blue,Color.green); // body,gun,radar
 
        // Robot main loop
        while(true) {
            // Replace the next 4 lines with any behavior you would like
            ahead(100);
            turnGunRight(360);
            back(100);
            turnGunRight(360);
        }
    }
 
    /**
     * onScannedRobot: What to do when you see another robot
     */
    public void onScannedRobot(ScannedRobotEvent e) {
        // Replace the next line with any behavior you would like
        fire(1);
    }
 
    /**
     * onHitByBullet: What to do when you're hit by a bullet
     */
    public void onHitByBullet(HitByBulletEvent e) {
        // Replace the next line with any behavior you would like
        back(10);
    }
    
    /**
     * onHitWall: What to do when you hit a wall
     */
    public void onHitWall(HitWallEvent e) {
        // Replace the next line with any behavior you would like
        back(20);
    }    
}
                               

ソースを読もう

  • Robocode API
    ~/robocode/javadoc/index.html
  • robotプログラムのありか.パッケージ名のディレクトリ毎に配置されています.
    ~/robocode/robots/
    • サンプルプログラムは,
      ~/robocode/robots/sample/

第1回レポート

  • 課題: ロボコードに付属している以下の11種のサンプルプログラムが,
    ~/robocode/robots/sample/
    以下にあります.
  1. 各サンプルプログラムソースにコメントをつけプログラムをくわしく説明しなさい.
    Corners.java
    Crazy.java
    Fire.java
    Interactive.java
    Interactive_v2.java 
    MyFirstJuniorRobot.java
    PaintingRobot.java
    RamFire.java
    SittingDuck.java
    SpinBot.java
    Target.java
    TrackFire.java
    Tracker.java
    VelociRobot.java
    Walls.java
  1. 各ロボットを対戦させ,各ロボットの特徴を調査しなさい.

締め切り

  • 12月21日正午

提出先



添付ファイル: filescreenshot_03.png 74件 [詳細] filescreenshot_04.png 75件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-07 (月) 10:48:31 (1444d)