Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Chessboard vue component to load positions, create positions and see threats

License

NotificationsYou must be signed in to change notification settings

vitogit/vue-chessboard

Repository files navigation

npmnpmvue2

Chessboard vue component to load positions, create positions and see threats

  • It useschess.js for chess movements and validations
  • It uses chessground for chessboard UIchessground

http://g.recordit.co/40JDuy8tAk.gif

Check live examples:http://vitomd.com/vue-chessboard-examples/

Table of contents

Installation

npm install --save vue-chessboard

Default component import

import{chessboard}from'vue-chessboard'import'vue-chessboard/dist/vue-chessboard.css'

Then use it in your template

<chessboard/>

Browser

<divid="app"><chessboard></chessboard></div><linkrel="stylesheet"href="vue-chessboard/dist/vue-chessboard.css"/><scriptsrc="vue.js"></script><scriptsrc="vue-chessboard/dist/vue-chessboard.browser.js"></script><script>newVue({el:'#app',components:{    VueChessboard}});</script>

Examples

Check live examples:http://vitomd.com/vue-chessboard-examples/

Check live examples repository:https://github.com/vitogit/vue-chessboard-examples

Check full application using the component:Chess Guardian

Simple Chessboard with legal moves

<chessboard/>

Simple Chessboard with free moves

<chessboard:free="true"/>

Simple Chessboard with black orientation. Default is white

<chessboardorientation="black"/>

Simple Chessboard that shows threats for current position and player

<chessboard:showThreats="true"/>

Fen binded to the chessboard (load position when click on a new position)

<chessboard:fen="currentFen"/><buttonclass="button is-light"@click="loadFen(fen)"v-for="fen in fens">    {{fen}}</button>

Chessboard with onmove callback. Returns positional info { "legal_black": 20, "checks_black": 0, "threat_black": 0, "turn": "black" } after each move.

It also returns the fen and the history data.

<chessboard@onMove="showInfo"/><div>    {{this.positionInfo}}</div>
showInfo(data){this.positionInfo=data}

Chessboard with onpromote callback

When there is a promotion it will execute the callback. Just return the first letter of the piece: q:Queen, r:Rook, k:Knight, b:Bishop

<chessboard:onPromotion="promote"/>
promote(){return'r'// This will promote to a rook}

Extended Component (Play vs random AI).

You can extend the chessboard component to add new methods

  // newboard.vue<script>import{chessboard}from'vue-chessboard'exportdefault{name:'newboard',extends:chessboard,methods:{userPlay(){return(orig,dest)=>{if(this.isPromotion(orig,dest)){this.promoteTo=this.onPromotion()}this.game.move({from:orig,to:dest,promotion:this.promoteTo})// promote to queen for simplicitythis.board.set({fen:this.game.fen()})this.calculatePromotions()this.aiNextMove()};},aiNextMove(){letmoves=this.game.moves({verbose:true})letrandomMove=moves[Math.floor(Math.random()*moves.length)]this.game.move(randomMove)this.board.set({fen:this.game.fen(),turnColor:this.toColor(),movable:{color:this.toColor(),dests:this.possibleMoves(),events:{after:this.userPlay()},}});},},mounted(){this.board.set({movable:{events:{after:this.userPlay()}},})}}</script>

Want to see all my chess related projects?

CheckMy projects for a full detailed list.

License

GPL-3.0

About

Chessboard vue component to load positions, create positions and see threats

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp