ひろひろの生活日記(LIFE Of HIROHIRO)

パソコン講習とソフト開発をしています。自作小説も掲載しています。ネット情報発信基地(上野博隆)Hirotaka Ueno

名人戦の棋譜を掲載します。

2020年06月12日 22時52分49秒 | ゲーム開発(Game development)

棋譜を掲載します。<開始>から(後手の勝利)までを張り付けてください。

「一人将棋」は左のブックマークにあります。

名人戦

先手:豊島将之(名人) 対 後手:渡辺明(三冠)

<開始>  .
001◆歩2,6-0021.
002◇歩8,4-0021.
003◆歩2,5-0021.
004◇歩8,5-0021.
005◆歩7,6-0021.
006◇金3,2-0031.
007◆角7,7-0011.
008◇歩3,4-0021.
009◆銀6,8-0011.
010◇馬7,7-1011.
011◆銀7,7-0031.
012◇銀2,2-0031.
013◆銀4,8-0031.
014◇銀3,3-0011.
015◆金7,8-0031.
016◇銀6,2-0031.
017◆歩4,6-0021.
018◇歩6,4-0021.
019◆銀4,7-0021.
020◇銀6,3-0021.
021◆玉6,8-0031.
022◇歩7,4-0021.
023◆歩3,6-0021.
024◇玉4,2-0031.
025◆歩9,6-0021.
026◇歩1,4-0021.
027◆歩1,6-0021.
028◇桂7,3-0031.
029◆歩9,5-0021.
030◇飛8,1-0023.
031◆桂3,7-0031.
032◇金6,2-0021.
033◆飛2,9-0023.
034◇銀5,4-0031.
035◆金3,8-0011.
036◇玉4,1-0023.
037◆歩4,5-0021.
038◇玉3,1-0032.
039◆金4,8-0032.
040◇香9,2-0021.
041◆玉5,8-0012.
042◇歩4,4-0021.
043◆歩4,4-0021.
044◇銀4,4-0011.
045◆歩5,6-0021.
046◇銀3,3-0033.
047◆銀6,6-0011.
048◇玉2,2-0031.
049◆歩4,5-0100.
050◇歩8,6-0021.
051◆歩8,6-0021.
052◇飛8,6-0021.
053◆歩8,7-0100.
054◇飛8,2-0023.
055◆角4,6-0100.
(中断1日目終了).
056◇金6,3-0021.
057◆金3,8-0012.
058◇玉3,1-0013.
059◆金4,8-0032.
060◇玉2,2-0031.
061◆金3,8-0012.
062◇飛4,2-0032.
063◆歩3,5-0021.
064◇歩3,5-0021.
065◆角3,5-0011.
066◇歩3,4-0100.
067◆角6,8-0033.
068◇銀4,5-0031.
069◆桂4,5-0031.
070◇飛4,5-0021.
071◆歩2,4-0021.
072◇銀2,4-0031.
073◆銀5,5-0011.
074◇金5,4-0031.
075◆銀5,4-0021.
076◇歩5,4-0021.
077◆銀4,6-0021.
078◇飛8,5-0012.
079◆桂7,7-0011.
080◇飛8,2-0023.
081◆銀4,5-0100.
082◇歩5,5-0021.
083◆歩4,4-0100.
084◇歩4,2-0100.
085◆歩5,5-0021.
086◇歩7,5-0021.
087◆歩5,4-0021.
088◇角7,4-0100.
089◆金4,7-0100.
090◇歩7,6-0021.
091◆と5,3-1021.
092◇歩5,7-0100.
093◆玉4,8-0012.
094◇桂3,5-0100.
095◆銀3,5-0011.
096◇歩3,5-0021.
097◆歩5,6-0100.
098◇桂3,3-0011.
099◆銀3,4-0011.
100◇銀4,5-0100.
101◆銀4,5-0033.
102◇桂4,5-0011.
103◆桂3,4-0100.
104◇玉1,2-0032.
105◆歩1,5-0021.
106◇銀2,5-0100.
107◆と4,2-0011.
108◇銀3,4-0013.
109◆と3,2-0012.
110◇飛3,2-0032.
111◆歩1,4-0021.
112◇玉2,2-0012.
113◆銀4,3-0100.
114◇歩4,6-0100.
115◆と1,3-1021.
116◇香1,3-0021.
117◆全3,2-1011.
118◇玉3,2-0012.
119◆飛7,2-0100.
120◇銀5,2-0100.
121◆歩3,3-0100.
122◇銀3,3-0013.
123◆金4,3-0100.
124◇銀4,3-0013.
125◆と4,3-1021.
126◇玉4,3-0011.
127◆竜7,3-1023.
128◇金6,3-0100.
129◆桂5,5-0100.
130◇玉4,4-0021.
131◆圭6,3-1031.
132◇と4,7-1021.
133◆金4,7-0031.
134◇桂3,6-0100.
135◆玉3,8-0012.
136◇金2,8-0100.
137◆飛2,8-0021.
138◇圭2,8-1031.
139◆玉2,8-0012.
140◇銀3,7-0100.
141◆金3,7-0012.
142◇圭3,7-1031.
143◆玉3,7-0031.
144◇飛3,6-0100.
(後手の勝利)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ブロック崩しの親元コーデイング

2020年06月12日 13時38分15秒 | ゲーム開発(Game development)

<textarea name="myTEXT" rows="10">

<html>
<head>




<title>ブロック崩し</title>
<script language="javascript" src="blockgame01.js"></script>
</head>
<body onload="init()">
<canvas id="world"></canvas>

<input type="button" value="GAME.START" onClick="main()">


</body>
</html>

</textarea>

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ブロック崩しの親HTML

2020年06月12日 13時32分13秒 | ゲーム開発(Game development)

 

ブロック崩しの親HTML

<html>
<head>




<title>netO shogi</title>
<script language="javascript" src="blockgame01.js"></script>
</head>
<body onload="init()">
<canvas id="world"></canvas>

<input type="button" value="GAME.START" onClick="main()">


</body>
</html>

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最終チェック前ですが、こんな感じです。(ブロック崩しのコーディング)

2020年06月12日 12時57分07秒 | ゲーム開発(Game development)

ワ-クスルーした結果のリスト

おおよそ修正しました。

---------------------------


function sgn(a) {
    if(a > 0) return(1); else return(-1);

}

WIDTH  = 640;
HEIGHT = 480;
// white, red, yellow, green, blue
var colortable = ["red","yellow","green"];
var username = ["ipad","iphone","android"];         //端末の名前

var br = 10;       // ボールの半径
var paddlew = 96;      // パドルの幅
var paddleh = 16;      // パドルの高さ
var blockw = 48;       // ブロックの幅
var blockh = 24;       // ブロックの高さ
var blocks = [];
var blocksu = 50;
var endflag = 0;       // 処理の終わりを判定する
var gameover = 0;
var gameover1 = 0;

// ブロックスに配列要素にプロパティを付与する。
function block(x1, y1, width, height, color1) {
    this.id = 1;
    this.x = x1;
    this.y = x2;
    this.color = color1;
    this.centerx = this.x + width / 2;
    this.centery = this.y + wheight / 2;
}
// パドルの構造体
function paddlez() {
    this.centerx = 0;
    this.centery = 0;
    this.x = this.centerx - paddlew / 2;
    this.y = this.centery - paddleh / 2;
}

// 初期処理
function init(){
    canvas = document.getElementById('world');
    canvas.width = WIDTH;
    canvas.height = HEIGHT;
    ctx = canvas.getContext('2d');
    ctx.font = "64px 'MS Pゴシック'";
    user = window.navigator.userAgent.toLowerCase();
// パドルを定義する。
    paddle = new paddlez();
// マウスの処理
    for(i=0; i<username.length; i++){
        if(user.indexOf(username[i]) > 0)break;
    }
    if(i < username.length){
        document.addEventListener("touchmove", touchmove);
    }else{
        document.addEventListener("mousemove", mousemove);
    }
// ブロックスを定義する。
    blocks = new Array(blocksu);
    for(i=0; i<blocksu; i++){
        x1 = (i % 10) * (blockw + 4) + 64;
        y1 = Math.floor(i / 10) * (blockh + 4) + 64;
        color1 = Math.floor(blocks[i].y / 28) % 3;
        blocks[i] = new block(x1, y1, bolokw, blockh, color1);
        }
    }
//    for(i=0; i<blocksu; i++){
//        blocks[i].id = 1;
//        blocks[i].x = (i % 10) * (blockw + 4) + 64;
//        blocks[i].y = Math.floor(i / 10) * (blockh + 4) + 64;
//        blocks[i].color = Math.floor(blocks[i].y / 28) % 3;
//    }
}


//スマホ/タブレットのタッチイベントで起動する関数
function touchmove(e){
    if  (e.targetTouches.length == 1){
        touch = e.targetTouches[0];
        touchpice(touch.pageX ,touch.pageY);
    }
}

//pcのマウスクリックイベントで起動する関数
function mousemove(e){
    touchpice(e.clientX ,e.clientY);
}

//引数で指定した位置にある駒の移動処理(※変更前です)
function touchpice(tx,ty){
    element = document.getElementById("idselect");
    if(element.value != turn) return;          //相手の番の場合は無効
    if(isinside(tx,ty,0,0,WIDTH,HEIGHT)==false)return;          //将棋盤バッファ外なら処理を終了
    paddle.centerx = tx;
    paddle.centery = ty;
}
//座標が範囲内に存在するか判定する
function isinside(x,y,ax,ay,w,h){
    if((x<ax)||(x>=(ax+w))||(y<ay)||(y>=(ay+h)))return(false);
    return(true);
}

function main() {
        
        minit();
        //クロックの処理
        mmain();
        gameover += 1;
        if(gameover > 20) return;
        setTimeout("main()",5000);
}
// メインのイニシャル処理
function minit(){
    while(endflag == 0) {
        ballx = WIDTH / 2;      // ボールのx座標
        bally = HEIGHT - 170;   // ボールのy座標
        bx1 = 2;                // ボールの速度(x成分)
        by1 = -2.5;             // ボールの速度(y成分)
        x = WIDTH / 2;          // パドルの位置(x座標)
        y = HEIGHT - 64;        // パドルの位置(y座標)
        // パドルは左端がpaddleのx、y
        paddle.centerx = x;
        paddle.centery = y;

        for(i=0; i<blocksu; i++){
            blocks[i].id = 1;
//            blocks[i].x = (i % 10) * (blockw + 4) + 64;
//            blocks[i].y = Math.floor(i / 10) * (blockh + 4) + 64;
//            blocks[i].color = Math.floor(blocks[i].y / 28) % 3;
        }
        gameover1 = 0;
}
// メインのメイン処理
function mmain(){
    //キーコード取得しパドルの位置を移動させる。← →
    x = paddle.centerx;
  k = event.keyCode;
    if(k==100) x -= 8; if(k==102) x += 8;
    //パドルがゲーム画面内ならパドルの位置を変更する
    if( (x >= (paddlew / 2)) && (x <= (WIDTH - (paddlew / 2))){
        paddle.centerx = x;
    }
    //ボールの速度と位置の変更
    x = ballx + bx1;
    y = bally + by1;
    //ボールが左右の壁に当たるとxの速度を反転する
    if( (x < br) || (x > (WIDTH - br ) bx1 = -bx1;
    //ボールが天井にあたるとyの速度を反転する
    if( y < br ) by1 = -by1;
    //ボールが底にあたるとゲームオーバー
    if( y > HEIGHT ) gameover1 += 1;
    //パドルとボールとの距離の差を計算する
    dx = paddle.centerx - x;
    dy = paddle.centery - y;

    //ゼロ割を回避するための処理
    if(dy == 0) dy = 1;
    //パドルとボールが当たっているかの判断
    if((Math.abs(dx) < (paddlew / 2 + br)) && (Math.abs(dy) < (paddleh / 2 + br)
    {
         //角度により反射を判定
         if(Math.abs(dx / dy) > (paddlew / paddleh)){
             bx1 = -bx1;
             ballx = paddle.centerx - sgn(dx) * (paddlew / 2 + br);
         } else {
             bx1 = -dx / 10;
             by1 = -by1;
             bally = paddle.centery - sgn(dy) * (paddleh / 2 + br);
         }
     }
     //ブロックとボールが当たった時の処理
     for(i=0; i < blocksu; i++){
          dx = blocks[i].centerx - x;
          dy = blocks[i].centery - y;
          //ゼロ割を回避するための処理
          if(dy == 0) dy = 1;
          //ブロックとボールが当たっているかの判断
          if((Math.abs(dx) < (blockw / 2 + br)) && (Math.abs(dy) < (blockh / 2 + br)
          {
              //角度により反射を判定
              if(Math.abs(dx / dy) > (blockw / blockh)){
                  bx1 = -bx1;
                  ballx = blocks[i].centerx - sgn(dx) * (blockw / 2 + br);
              } else {
                  by1 = -by1;
                  bally = blocks[i].centery - sgn(dy) * (blockh / 2 + br);
              }
              blocks[i].id = 0;
              break;
          }
     }
     ballx += bx1;
     bally += by1;
     //(描画処理)
     blockdraw();
     paddledraw();
     balldraw();
     if(gameover1 > 0){
         gemeoverdraw();
         return;
//         if(gameover1 > 200) break;
     }
        //クロックの処理
     setTimeout("mmain()",100);

}
//描画ファンクションのコーディング
//つづく
// ブロックの描画
function blockdraw() {

    for (i=0; i < blocksu; i++){
        if(blocks[i].id == 1) {
            wkcolor = blocks[i].color;
            wkx = blocks[i].x;
            wky = blocks[i].y;
            ctx.fillStyle = colortable[wkcolor];
            ctx.fillRect(wkx, wky, blockw, blockh);
        }
    }
}
// パドルの描画
function paddledraw() {
     ctx.fillRect(paddle.x, paddle.y, paddlew, paddleh);
}
// ボールの描画
function balldraw() {
     wkx = Math.floor(ballx);
     wky = Math.floor(bally);
     ctx.beginPath();
     ctx.fillStyle = "white";
     ctx.arc(wkx,wky,br,0*Math.PI,2*Math.PI);
     ctx.fill();
}
// ゲームオーバーの表示
function gameoverdraw(){
    ctx.font = "64px 'MS Pゴシック'";
    ctx.fillStyle = "white";
    ctx.fillText("GAME OVER",180,300); 
}

 

以上

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする