//インポート
import gameCanvasUtil.*;
import debugger.*;

/** ゲームクラス。
 *
 * 学生が編集すべきソースコードです。
 */
public class game extends gameBase
{
    /********* 変数定義はこちらに *********/
    // 型 変数名;　の順に書いて定義する
    // ボールのX座標
    int[] ball_x = new int[10];
    // ボールのY座標
    int[] ball_y = new int[10];
    // ボールのX方向の速度
    int[] ball_speed_x = new int[10];
    // ボールのY方向の速度
    int[] ball_speed_y = new int[10];
    // ラケットのX座標
    int racket_x;
    // ラケットのY座標
    int racket_y;
    // ラケットの幅
    int racket_w;
    // ラケットの高さ
    int racket_h;

    // ボールが生きているか、死んでいるかのフラグ
    boolean[] ball_alive_flag = new boolean[10];

    // 次に有効にするボール番号
    int next_alive_ball_num;

    // ゲームの経過時間
    int time;

    /********* 初期化の手順はこちらに *********/
    public void initGame()
    {
        for(int i=0; i<10; i=i+1)
        {
            // ボールの座標を初期化する

            // ボールの速度を初期化する

            // ボールのフラグを初期化
        }

        // ラケットの座標を初期化する
        racket_x = 270;
        racket_y = 450;

        // ラケットの幅・高さを初期化する
        racket_w = 50;
        racket_h = 10;

        // 次に有効にするボール番号を初期化

        // ゲームの経過時間を初期化
    }

    /********* 物体の移動等の更新処理はこちらに *********/
    public void updateGame()
    {
        // 30回に1回、ボールを有効に
        if()
        {
            // ボールは10個までなので、それを超えない場合のみ実行する
            if()
            {
                // ボールを有効に

                // 次のボールの番号へ。
            }
        }

        // 左キーが押され続けている場合に真
        if(gc.isKeyPress(gc.KEY_LEFT))
        {
            // ラケットを左に動かす
            racket_x = racket_x - 5;
        }
        // 右キーが押され続けている場合に真
        if(gc.isKeyPress(gc.KEY_RIGHT))
        {
            // ラケットを右に動かす
            racket_x = racket_x + 5;
        }

        for(int i=0; i<10; i=i+1)
        {
            // 有効(true)なボールのみ実行
            if()
            {
                // Y方向に ball_speed_y ずつ進める

                // X方向に ball_speed_x ずつ進める

                // ボールが画面の上を越えた場合
                if()
                {
                    // ボールのY方向の速度を反転させる
                }

                // ボールが画面の右を越えるか、画面の左を越えた場合
                if()
                {
                    // ボールのX方向の速度を反転させる
                }

                // ボールが画面の下を越えた場合
                if()
                {
                    // ボールのフラグを false に
                }

                // ボールと、ラケットが当たった場合に真
                if()
                {
                    // ボールのY方向の速度を反転させる
                }
            }
        }

        // 時間を 1 進める
    }

    /********* 画像の描画はこちらに *********/
    public void drawGame()
    {
        // 画面を白で塗りつぶします
        gc.clearScreen();

        // img0.png を描画します
        for(int i=0; i<10; i=i+1)
        {
            // 有効(true)なボールのみ描画
            if()
            {
                // ボールを描画
            }
        }

        // 色を青にセットします
        gc.setColor(0, 0, 255);
        // ラケットを描画します
        gc.fillRect(racket_x, racket_y, racket_w, racket_h);
    }

    /********* 終了時の処理はこちらに *********/
    public void finalGame() {}
}
