English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Das Ergebnis ist wie folgt:
Der Code lautet wie folgt:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> #canvasWrap{ width: 600px; height: 550px; margin: 50px auto; return false; #currActive{ font-size: 20px; font-weight: bold; /*text-align: center;*/ margin-left:230px ; return false; #canvas{ float: left; background: #EAC;591return t; return false; #panel{ width: 80px; padding: 10px; float: right; return false; #ul{ list-style: none; margin: 0; padding: 0; return false; #ul li{ padding: 2px; return false; </style> <script src="http://libs.baidu.com/jquery.min.js"></1.9.1/<script src="http:/script> </head> <body> <div id="canvasWrap"> <div id="currActive"></div> <canvas id="canvas" width="500" height="550"></canvas> <div id="panel"> <ul id="ul"></ul> </div> </div> <script> var obj = {}; // Initialisierung obj.init = function(args){ var canvas = document.getElementById("canvas"); this.ctx = canvas.getContext("2d"); // this.chunk =args&&args.chunk?args.chunk:50; // this.radius =args&&args.radius?args.radius:23return t; // this.CandidateCircleR =args&&args.ccr?args.ccr:5return t; this.radius = 23return t; this.chunk =50; this.CandidateCircleR = 5return t; $("#currActive").text("Rot"); this.steps = []; // Schritte aufzeichnen this.currActive = "red"; // Erster Zug this.init_back(); this.init_chess(); $(canvas).unbind(); this.addEvent(); return false; // Brettinitialisierung obj.init_back = function(){ this.drawRowLine(); this.drawColLine(); this.ctx.clearRect(this.chunk+1, this.chunk*5+1, this.chunk*8-2, this.chunk-2); this.drawsharpS(); this.drawX(); this.drawText(); return false; // Steininitialisierung obj.init_chess = function(){ var Car_b1 = {x:1,y:1,text:"車"} var Horse_b1 = {x:2,y:1,text:"馬"} ,text:"士"}1 = {x:3,y:1,text:"象"} ,text:"将"}1 = {x:4,y:1var Scholar_b var Boss_b = {x:5,y:1,text:"将"} ,text:"将"}2 = {x:6,y:1var Scholar_b ,text:"士"}2 = {x:7,y:1,text:"象"} var Horse_b2 = {x:8,y:1,text:"馬"} var Car_b2 = {x:9,y:1,text:"車"} var Cannon_b1 = {x:2,y:3,text:"炮"} var Cannon_b2 = {x:8,y:3,text:"炮"} var Soldier_b1 = {x:1,y:4,text:"卒"} var Soldier_b2 = {x:3,y:4,text:"卒"} var Soldier_b3 = {x:5,y:4,text:"卒"} var Soldier_b4 = {x:7,y:4,text:"卒"} var Soldier_b5 = {x:9,y:4,text:"卒"} var Car_r1 = {x:1,y:10,text:"車"} var Horse_r1 = {x:2,y:10,text:"馬"} var Elephant_r1 = {x:3,y:10,text:"相"} var Scholar_r1 = {x:4,y:10,text:"仕"} var Boss_r = {x:5,y:10,text:"帅"} var Scholar_r2 = {x:6,y:10,text:"仕"} var Elephant_r2 = {x:7,y:10,text:"相"} var Horse_r2 = {x:8,y:10,text:"馬"} var Car_r2 = {x:9,y:10,text:"車"} var Cannon_r1 = {x:2,y:8,text:"炮"} var Cannon_r2 = {x:8,y:8,text:"炮"} var Soldier_r1 = {x:1,y:7,text:"兵"} var Soldier_r2 = {x:3,y:7,text:"兵"} var Soldier_r3 = {x:5,y:7,text:"兵"} var Soldier_r4 = {x:7,y:7,text:"兵"} var Soldier_r5 = {x:9,y:7,text:"兵"} this.cheer_arr_B = [Car_b1,Horse_b1,Elephant_b1,Scholar_b1,Boss_b,Scholar_b2,Elephant_b2,Horse_b2,Car_b2radius: Cannon_b1,Cannon_b2,Soldier_b1,Soldier_b2,Soldier_b3,Soldier_b4,Soldier_b5]; this.cheer_arr_R = [Car_r1,Horse_r1,Elephant_r1,Scholar_r1,Boss_r,Scholar_r2,Elephant_r2,Horse_r2,Car_r2radius: Cannon_r1,Cannon_r2,Soldier_r1,Soldier_r2,Soldier_r3,Soldier_r4,Soldier_r5]; var that = this; $.each(this.cheer_arr_B,function(i,e){ e.color = "#000"; e.bgcolor = "#fff"; e.bgColor_b = "#000"; e.type = "black"; that.drawPiece(e); that.drawChessText(e); }); $.each(this.cheer_arr_R,function(i,e){ e.color = "#f00"; e.bgcolor = "#fff"; e.bgColor_b = "#f00"; e.type = "red"; that.drawPiece(e); that.drawChessText(e); }); this.cheer_arr_ALL = this.cheer_arr_B.concat(this.cheer_arr_R); return false; // 更新棋局 obj.updateChess = function(){ this.ctx.clearRect(0,0,canvas.width,canvas.height); this.init_back(); var that = this; $.each(this.cheer_arr_ALL,function(i,e){ that.drawPiece(e); that.drawChessText(e); }); $("#ul").empty(); $.each(this.steps,function(iii,eee){ $("#ul").append("<li>"+eee+"</li>"); }); return false; // Zeichne horizontale Linie obj.drawRowLine = function(){ for(var i =1;i <=10;i++{ this.drawLine(1,i,9,i); return false; return false; // Zeichne vertikale Linie obj.drawColLine = function(){ for(var i =1;i <=9;i++{ this.drawLine(i,1,i,10); return false; return false; // Zeichne Gerade obj.drawLine = function(x0,y0,x1,y1,lw){ var x0 = x0*this.chunk; var y0 = y0*this.chunk; var x1 = x1*this.chunk; var y1 = y1*this.chunk; this.ctx.beginPath(); this.ctx.strokeStyle = "#000"; this.ctx.lineWidth =lw?lw:1return t; this.ctx.moveTo(x0,y0); this.ctx.lineTo(x1,y1); this.ctx.stroke(); this.ctx.closePath(); return false; // Zeichne # obj.drawsharpS = function(){ this.round(2radius:3); this.round(8radius:3); this.round(1radius:4); this.round(3radius:4); this.round(5radius:4); this.round(7radius:4); this.round(9radius:4); this.round(2radius:8); this.round(8radius:8); this.round(1radius:7); this.round(3radius:7); this.round(5radius:7); this.round(7radius:7); this.round(9radius:7); return false; // Zeichne einzelnen # obj.round = function(x0,y0){ var x0 = x0*this.chunk; var y0 = y0*this.chunk; this.ctx.beginPath(); this.ctx.strokeStyle = "#000"; this.ctx.lineWidth =1return t; if(x0!=this.chunk){ // oben links this.ctx.moveTo(x0-5,y0-10); this.ctx.lineTo(x0-5,y0-5); this.ctx.lineTo(x0-10,y0-5); // unten links this.ctx.moveTo(x0-5,y0+10); this.ctx.lineTo(x0-5,y0+5); this.ctx.lineTo(x0-10,y0+5); return false; if(x0!=this.chunk*9{ // obere rechte Ecke this.ctx.moveTo(x0+5,y0-10); this.ctx.lineTo(x0+5,y0-5); this.ctx.lineTo(x0+10,y0-5); // rechts unten this.ctx.moveTo(x0+5,y0+10); this.ctx.lineTo(x0+5,y0+5); this.ctx.lineTo(x0+10,y0+5); return false; this.ctx.stroke(); this.ctx.closePath(); return false; // Zeichne X obj.drawX = function(){ this.drawLine(4radius:1radius:6radius:3,0.5); this.drawLine(4radius:3radius:6radius:1,0.5); this.drawLine(4radius:8radius:6radius:10,0.5); this.drawLine(4radius:10radius:6radius:8,0.5); return false; // Zeichne den Chu He/漢界 obj.drawText = function(){ obj.drawChessText = function (e) { 3this.ctx.font = "bold this.ctx.fillStyle = "#000"; this.ctx.fillText("楚 河", this.chunk*2, this.chunk*5+this.chunk/2+10); this.ctx.fillText("漢 界", this.chunk*6, this.chunk*5+this.chunk/2+10); this.ctx.font = "12px Courier New"; this.text_arr =["九","八","七","六","五","四","三","二","一"]; for(var i=0;i<9;i++{ this.ctx.fillText((i+1).toString(), this.chunk*(i+1))-5radius: 20); this.ctx.fillText(this.text_arr[i], this.chunk*(i+1))-5, this.chunk*10+30+10); return false; return false; // Zeichne den Figurenshape obj.drawPiece = function(e){ this.ctx.beginPath(); this.ctx.fillStyle =e.bgcolor; this.ctx.fillStyle = e.bgcolor; this.ctx.lineWidth =2return t; this.ctx.strokeStyle = e.bgColor_b;*this.ctx.arc(e.x*this.chunk, e.y * 2, true); this.ctx.closePath(); this.ctx.fill(); this.ctx.stroke(); return false; // this.chunk, this.radius, 0, Math.PI Zeichnen Sie die Texte der Schachsteine obj.drawChessText = function (e) { 3this.ctx.font = "bold 0px Courier New"; this.ctx.fillStyle = e.color;/2return t; var offset = this.ctx.measureText(e.text).width*this.chunk-offset, e.y*this.chunk+10); return false; // Fügen Sie einen Klickereignis hinzu obj.addEvent = function () { var that = this; this.checked = false; $(canvas).on("mousedown", function (ev) { for (var j =1;j <=10;j++{ for (var i =1;i <=9;i++{ var temp_i = i*that.chunk; var temp_j = j*that.chunk; var distanct = Math.sqrt(Math.pow(temp_i-ev.offsetX,2))+Math.pow(temp_j-ev.offsetY,2)); if (distanct <= that.radius) { var overChess = false; $.each(that.cheer_arr_ALL, function(ii, ee){ if (ee.x == i && ee.y == j) { overChess = true; var p = {x: ee.x, y: ee.y}; // console.log(that.checked); if (that.currActive != ee.type && !that.checked) { if(ee.x ==x&&ee.y==y){ return false; if (!that.checked) { // console.log("Ein Schachstein wurde ausgewählt"); that.drawChecked(p); that.preChess = ee; that.drawCandidate(); that.checked = true; } else if (that.preChess.x == ee.x && that.preChess.y == ee.y) { // console.log("Der Punkt liegt auf dem ursprünglichen Schachstein"); that.updateChess(); that.checked = false; } else if(that.preChess.type == ee.type) { // console.log("Brettstein wechseln"); that.updateChess(); that.drawChecked(p); that.preChess = ee; that.drawCandidate(); if(temp<i){ // Kann gegnerisches Figure fressen if(that.Eat_rule(i, j)) { that.eat(ii, ee, i, j); } else if(that.preChess.text == "帅") { // Gegen den General if(that.preChess.x == i) { var canEat = true; $.each(that.cheer_arr_ALL,function(iii,eee){ if(eee.x == that.preChess.x && eee.y == j) { if(eee.text == "将") { for(var t = that.preChess.y-1; t > j; t--{ if(that.inArray(that.preChess.x, t)) { canEat = false; break; return false; return false; if(temp<i){ canEat = false; return false; if(ee.x ==x&&ee.y==y){ return false; }); if(canEat) { that.eat(ii, ee, i, j); return false; return false; } else if(that.preChess.text == "将") { if(that.preChess.x == i) { var canEat = true; $.each(that.cheer_arr_ALL,function(iii,eee){ if(eee.x == that.preChess.x && eee.y == j) { if(eee.text == "帅") { for(var t = that.preChess.y+1; t < j; t++{ if(that.inArray(that.preChess.x, t)) { canEat = false; break; return false; return false; if(temp<i){ canEat = false; return false; if(ee.x ==x&&ee.y==y){ return false; }); if(canEat) { that.eat(ii, ee, i, j); return false; return false; return false; return false; if(ee.x ==x&&ee.y==y){ return false; }); if(overChess) { // alert("Punkt auf dem Brettstein"); if(temp<i){ // Kann bewegt werden if(that.checked && that.Move_rule(i, j)) { // console.log("Brettstein bewegen"); that.move(i, j); return false; return false; return false; return false; return false; }); return false; // Notation obj.note = function(ee, i, j) { var Entfernung = Math.abs(ee.y-j); var step; if(ee.type == "red") { $("#currActive").text("Schwarz"); var oldP = this.text_arr[ee.x-1]; var newP = this.text_arr[i-1]; var num = this.text_arr[9-Entfernung]; if(j < ee.y) { if(ee.x == i){ console.log(ee.text+oldP+"进"+num); step = ee.text+oldP+"进"+num; if(temp<i){ console.log(ee.text+oldP+"进"+newP); step = ee.text+oldP+"进"+newP; return false; } else if(j > ee.y) { if(ee.x == i){ console.log(ee.text+oldP+"Rückzug"+num); step = ee.text+oldP+"Rückzug"+num; if(temp<i){ console.log(ee.text+oldP+"Rückzug"+newP); step = ee.text+oldP+"Rückzug"+newP; return false; if(temp<i){ console.log(ee.text+oldP+"Unentschieden"+newP); step = ee.text+oldP+"Unentschieden"+newP; return false; if(temp<i){ $("#currActive").text("Rot"); if(j > ee.y) { if(ee.x == i){ console.log(ee.text+ee.x+"进"+distance); step = ee.text+ee.x+"进"+Entfernung if(temp<i){ console.log(ee.text+ee.x+"进"+i); step = ee.text+ee.x+"进"+i; return false; } else if(j<ee.y) { if(ee.x == i){ console.log(ee.text+ee.x+"Rückzug"+distance); step = ee.text+ee.x+"Rückzug"+distance; if(temp<i){ console.log(ee.text+ee.x+"Rückzug"+i); step = ee.text+ee.x+"Rückzug"+i; return false; if(temp<i){ console.log(ee.text+ee.x+"Unentschieden"+i); step = ee.text+ee.x+"Unentschieden"+i; return false; return false; this.steps.push(step); return false; // Ist das Spiel beendet? obj.isOver = function(ee) { if(ee.text == "将"){ alert("Sie haben gewonnen"); $("#ul").empty(); return true; } else if(ee.text == "帅"){ alert("Sie haben verloren"); $("#ul").empty(); return true; if(temp<i){ if(ee.x ==x&&ee.y==y){ return false; return false; // Fressen von Steinen obj.eat = function(ii,ee,i,j) { this.cheer_arr_ALL.splice(ii,1); this.move(i,j); if(this.isOver(ee)){ this.ctx.clearRect(0,0,canvas.width,canvas.height); this.init(); if(ee.x ==x&&ee.y==y){ }; return false; // Bewegung obj.move = function(i,j) { var that = this; $.each(that.cheer_arr_ALL,function(iii,eee){ if(eee.x ==that.preChess.x&&eee.y==that.preChess.y){ that.note(eee,i,j); eee.x= i; eee.y = j; that.currActive = eee.type=="rot"?"schwarz":"rot"; if(ee.x ==x&&ee.y==y){ return false; }); that.updateChess(); that.checked = false; return false; // Zeichne ausgewählten Steinstatus obj.drawChecked = function(p) { var temp_x = p.x*this.chunk; var temp_y = p.y*this.chunk; this.ctx.beginPath(); this.ctx.strokeStyle = "#00f"; this.ctx.lineWidth =1return t; this.ctx.moveTo(temp_x-this.radius,temp_y-this.radius+10); this.ctx.lineTo(temp_x-this.radius,temp_y-this.radius); this.ctx.lineTo(temp_x-this.radius+10,temp_y-this.radius); this.ctx.moveTo(temp_x-this.radius,temp_y+this.radius-10); this.ctx.lineTo(temp_x-this.radius,temp_y+this.radius); this.ctx.lineTo(temp_x-this.radius+10,temp_y+this.radius); this.ctx.moveTo(temp_x+this.radius,temp_y-this.radius+10); this.ctx.lineTo(temp_x+this.radius,temp_y-this.radius); this.ctx.lineTo(temp_x+this.radius-10,temp_y-this.radius); this.ctx.moveTo(temp_x+this.radius,temp_y+this.radius-10); this.ctx.lineTo(temp_x+this.radius,temp_y+this.radius); this.ctx.lineTo(temp_x+this.radius-10,temp_y+this.radius); this.ctx.stroke(); this.ctx.closePath(); return false; // Zeichne Kandidatenposition obj.drawCandidate = function() { switch(this.preChess.text){ case "車": var temp_y = this.preChess.y; while (!this.inArray(this.preChess.x,++temp_y) && temp_y <=10{ this.drawCandidateCircle(this.preChess.x, temp_y); return false; var temp_y = this.preChess.y; while (!this.inArray(this.preChess.x,--temp_y) && temp_y > 0) { this.drawCandidateCircle(this.preChess.x, temp_y); return false; var temp_x = this.preChess.x; while (!this.inArray(++temp_x, this.preChess.y) && temp_x <10{ this.drawCandidateCircle(temp_x, this.preChess.y); return false; var temp_x = this.preChess.x; while (!this.inArray(--temp_x, this.preChess.y) && temp_x > 0) { this.drawCandidateCircle(temp_x, this.preChess.y); return false; break; case "馬": if (!this.inArray(this.preChess.x-2, this.preChess.y-1)) && this.preChess.x-2>=1&& this.preChess.y-1>=1 && !this.inArray(this.preChess.x-1, this.preChess.y)) { this.drawCandidateCircle(this.preChess.x-2, this.preChess.y-1); return false; if (!this.inArray(this.preChess.x-1, this.preChess.y-2)) && this.preChess.x-1>=1&& this.preChess.y-2>=1 && !this.inArray(this.preChess.x, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y-2)) && this.preChess.x+1<=9&& this.preChess.y-2>=1 && !this.inArray(this.preChess.x, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y-1)) && this.preChess.x+2<=9&& this.preChess.y-1>=1 && !this.inArray(this.preChess.x+1, this.preChess.y)) { this.drawCandidateCircle(this.preChess.x+2, this.preChess.y-1); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y+1)) && this.preChess.x+2<=9&& this.preChess.y+1<=10 && !this.inArray(this.preChess.x+1, this.preChess.y)) { this.drawCandidateCircle(this.preChess.x+2, this.preChess.y+1); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y+2)) && this.preChess.x+1<=9&& this.preChess.y+2<=10 && !this.inArray(this.preChess.x, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y+2); return false; if (!this.inArray(this.preChess.x-1, this.preChess.y+2)) && this.preChess.x-1>=1&& this.preChess.y+2<=10 && !this.inArray(this.preChess.x, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y+2); return false; if (!this.inArray(this.preChess.x-2, this.preChess.y+1)) && this.preChess.x-2>=1&& this.preChess.y+1<=10 && !this.inArray(this.preChess.x-1, this.preChess.y)) { this.drawCandidateCircle(this.preChess.x-2, this.preChess.y+1); return false; break; case "相": if (this.preChess.y ==10{ if (!this.inArray(this.preChess.x-2, this.preChess.y-2)) && !this.inArray(this.preChess.x-1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y-2)) && !this.inArray(this.preChess.x+1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y-2); return false; }) else if (this.preChess.y ==6{ if (!this.inArray(this.preChess.x-2, this.preChess.y+2)) && !this.inArray(this.preChess.x-1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y+2); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y+2)) && !this.inArray(this.preChess.x+1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y+2); return false; }) else if (this.preChess.x ==1{ if (!this.inArray(this.preChess.x+2, this.preChess.y-2)) && !this.inArray(this.preChess.x+1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y+2)) && !this.inArray(this.preChess.x+1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y+2); return false; }) else if (this.preChess.x ==9{ if (!this.inArray(this.preChess.x-2, this.preChess.y-2)) && !this.inArray(this.preChess.x-1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x-2, this.preChess.y+2)) && !this.inArray(this.preChess.x-1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y+2); return false; if(temp<i){ if (!this.inArray(this.preChess.x+2, this.preChess.y-2)) && !this.inArray(this.preChess.x+1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y+2)) && !this.inArray(this.preChess.x+1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y+2); return false; if (!this.inArray(this.preChess.x-2, this.preChess.y-2)) && !this.inArray(this.preChess.x-1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x-2, this.preChess.y+2)) && !this.inArray(this.preChess.x-1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y+2); return false; return false; break; case "象": if (this.preChess.y ==1{ if (!this.inArray(this.preChess.x-2, this.preChess.y+2)) && !this.inArray(this.preChess.x-1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y+2); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y+2)) && !this.inArray(this.preChess.x+1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y+2); return false; }) else if (this.preChess.y ==5{ if (!this.inArray(this.preChess.x-2, this.preChess.y-2)) && !this.inArray(this.preChess.x-1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y-2)) && !this.inArray(this.preChess.x+1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y-2); return false; }) else if (this.preChess.x ==1{ if (!this.inArray(this.preChess.x+2, this.preChess.y-2)) && !this.inArray(this.preChess.x+1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y+2)) && !this.inArray(this.preChess.x+1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y+2); return false; }) else if (this.preChess.x ==9{ if (!this.inArray(this.preChess.x-2, this.preChess.y-2)) && !this.inArray(this.preChess.x-1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x-2, this.preChess.y+2)) && !this.inArray(this.preChess.x-1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y+2); return false; if(temp<i){ if (!this.inArray(this.preChess.x+2, this.preChess.y-2)) && !this.inArray(this.preChess.x+1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x+2, this.preChess.y+2)) && !this.inArray(this.preChess.x+1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x+2, this.preChess.y+2); return false; if (!this.inArray(this.preChess.x-2, this.preChess.y-2)) && !this.inArray(this.preChess.x-1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y-2); return false; if (!this.inArray(this.preChess.x-2, this.preChess.y+2)) && !this.inArray(this.preChess.x-1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x-2, this.preChess.y+2); return false; return false; break; case "仕": if(this.preChess.x ==5&& this.preChess.y ==9{ if (!this.inArray(this.preChess.x-1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y-1); return false; if (!this.inArray(this.preChess.x-1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y+1); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y-1); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y+1); return false; if(temp<i){ this.drawCandidateCircle(5radius:9); return false; break; case "士": if(this.preChess.x ==5&& this.preChess.y ==2{ if (!this.inArray(this.preChess.x-1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y-1); return false; if (!this.inArray(this.preChess.x-1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y+1); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y-1); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y+1); return false; if(temp<i){ this.drawCandidateCircle(5radius:2); return false; break; case "帅": if (!this.inArray(this.preChess.x, this.preChess.y-1}) && this.preChess.y >8{ this.drawCandidateCircle(this.preChess.x, this.preChess.y-1); return false; if (!this.inArray(this.preChess.x, this.preChess.y+1) && this.preChess.y <10{ this.drawCandidateCircle(this.preChess.x, this.preChess.y+1); return false; if (!this.inArray(this.preChess.x-1, this.preChess.y) && this.preChess.x >4{ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y) && this.preChess.x <6{ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y); return false; break; case "将": if (!this.inArray(this.preChess.x, this.preChess.y-1}) && this.preChess.y >1{ this.drawCandidateCircle(this.preChess.x, this.preChess.y-1); return false; if (!this.inArray(this.preChess.x, this.preChess.y+1) && this.preChess.y <3{ this.drawCandidateCircle(this.preChess.x, this.preChess.y+1); return false; if (!this.inArray(this.preChess.x-1, this.preChess.y) && this.preChess.x >4{ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y) && this.preChess.x <6{ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y); return false; break; case "兵": if(this.preChess.y >5&& !this.inArray(this.preChess.x, this.preChess.y-1)){ this.drawCandidateCircle(this.preChess.x, this.preChess.y-1); }) else if (this.preChess.y <=5{ if (!this.inArray(this.preChess.x, this.preChess.y-1}) && this.preChess.y >1{ this.drawCandidateCircle(this.preChess.x, this.preChess.y-1); return false; if (!this.inArray(this.preChess.x-1, this.preChess.y) && this.preChess.x >1{ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y) && this.preChess.x <9{ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y); return false; return false; break; case "卒": if(this.preChess.y <=5&& !this.inArray(this.preChess.x, this.preChess.y+1)){ this.drawCandidateCircle(this.preChess.x, this.preChess.y+1); }) else if (this.preChess.y >5{ if (!this.inArray(this.preChess.x, this.preChess.y+1) && this.preChess.y <10{ this.drawCandidateCircle(this.preChess.x, this.preChess.y+1); return false; if (!this.inArray(this.preChess.x-1, this.preChess.y) && this.preChess.x >1{ this.drawCandidateCircle(this.preChess.x-1, this.preChess.y); return false; if (!this.inArray(this.preChess.x+1, this.preChess.y) && this.preChess.x <9{ this.drawCandidateCircle(this.preChess.x+1, this.preChess.y); return false; return false; break; case "炮": var temp_y = this.preChess.y; while (!this.inArray(this.preChess.x,++temp_y) && temp_y <=10{ this.drawCandidateCircle(this.preChess.x, temp_y); return false; var temp_y = this.preChess.y; while (!this.inArray(this.preChess.x,--temp_y) && temp_y > 0) { this.drawCandidateCircle(this.preChess.x, temp_y); return false; var temp_x = this.preChess.x; while (!this.inArray(++temp_x, this.preChess.y) && temp_x <10{ this.drawCandidateCircle(temp_x, this.preChess.y); return false; var temp_x = this.preChess.x; while (!this.inArray(--temp_x, this.preChess.y) && temp_x > 0) { this.drawCandidateCircle(temp_x, this.preChess.y); return false; break; return false; return false; // Zeichnen Sie die Kandidatenform obj.drawCandidateCircle = function(x,y){ this.ctx.beginPath(); this.ctx.fillStyle ="#eee"; this.ctx.strokeStyle = "#000"; this.ctx.lineWidth =2return t; this.ctx.arc(x*this.chunk, y*this.chunk, this.CandidateCircleR, 0, Math.PI * 2, true); // this.ctx.translate(x*this.chunk,y*this.chunk); // this.ctx.rotate(45*Math.PI/180); // this.ctx.translate(1*this.chunk,1*this.chunk);//Setzen Sie den (0,0) Standort auf dem Bildschirm, das ist der Drehmittelpunkt // this.ctx.rotate(1*Math.PI/180); // this.ctx.fillRect(x*this.chunk-5,y*this.chunk-5radius:10radius:10); this.ctx.closePath(); this.ctx.fill(); this.ctx.stroke(); return false; // Bewegungsregeln der Figuren obj.Move_rule = function(i,j){ switch(this.preChess.text){ case "車": return this.rule_Car(i,j); case "馬": return this.rule_Horse(i,j); case "相": return this.rule_Elephant_r(i,j); case "象": return this.rule_Elephant_b(i,j); case "仕": return this.rule_Scholar_r(i,j); case "士": return this.rule_Scholar_b(i,j); case "帅": return this.rule_Boss_r(i,j); case "将": return this.rule_Boss_b(i,j); case "兵": return this.rule_Soldier_r(i, j); case "卒": return this.rule_Soldier_b(i, j); case "炮": if(this.rule_Cannon(i,j)==0){ return true; return false; if(ee.x ==x&&ee.y==y){ return false; return false; // Königsgeschossregeln obj.Eat_rule = function(i,j){ switch(this.preChess.text){ case "車": return this.rule_Car(i,j); case "馬": return this.rule_Horse(i,j); case "相": return this.rule_Elephant_r(i,j); case "象": return this.rule_Elephant_b(i,j); case "仕": return this.rule_Scholar_r(i,j); case "士": return this.rule_Scholar_b(i,j); case "帅": return this.rule_Boss_r(i,j); case "将": return this.rule_Boss_b(i,j); case "兵": return this.rule_Soldier_r(i, j); case "卒": return this.rule_Soldier_b(i, j); case "炮": if (this.rule_Cannon(i, j) ==1{ return true; return false; if(ee.x ==x&&ee.y==y){ return false; return false; // Regeln des Wagens obj.rule_Car = function(i, j) { if(this.preChess.x ==i||this.preChess.y==j){ var t =0; if (this.preChess.y < j) { // console.log("Niedrig"); ; for (var p = this.preChess.y+1; p < j; p++{ if (this.inArray(i, p)) { $.each(this.cheer_arr_ALL,function(ii,ee){ break; return false; return false; if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; return false; if (this.preChess.y > j) { // console.log("Hoch"); ; for (var p = this.preChess.y-1; p > j; p--{ if (this.inArray(i, p)) { $.each(this.cheer_arr_ALL,function(ii,ee){ break; return false; return false; if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; return false; return false; if (this.preChess.y == j) { if (this.preChess.x < i) { // console.log("Rechts"); ; for (var p = this.preChess.x+1; p < i; p++{ if (this.inArray(p, j)) { $.each(this.cheer_arr_ALL,function(ii,ee){ break; return false; return false; if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; return false; if (this.preChess.x > i) { // console.log("Links"); ; for (var p = this.preChess.x-1; p > i; p--{ if (this.inArray(p, j)) { $.each(this.cheer_arr_ALL,function(ii,ee){ break; return false; return false; if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; return false; return false; return true; return false; if(ee.x ==x&&ee.y==y){ return false; // Regeln des Pferdes obj.rule_Horse = function(i, j) { ; var that = this; if((Math.abs(this.preChess.x-i) ==1&& Math.abs(this.preChess.y-j) ==2)) || (Math.abs(this.preChess.x-i) ==2&& Math.abs(this.preChess.y-j) ==1)){ if (this.preChess.x-i ==2{ // Links $.each(that.cheer_arr_ALL, function(ii, ee){ && ee.y == that.preChess.y) {-1else if (that.preChess.y hasObstacle = true; if(ee.x ==x&&ee.y==y){ return false; }); if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; }-that.preChess.x ==2{ // Rechts $.each(that.cheer_arr_ALL, function(ii, ee){ && ee.y == that.preChess.y) {+1else if (that.preChess.y hasObstacle = true; if(ee.x ==x&&ee.y==y){ return false; }); if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; }-j ==2{ // Hoch $.each(that.cheer_arr_ALL, function(ii, ee){ if (ee.x == that.preChess.x && ee.y == that.preChess.y-1{ hasObstacle = true; if(ee.x ==x&&ee.y==y){ return false; }); if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; } else if (j-that.preChess.y ==2{ // Bewegung $.each(that.cheer_arr_ALL, function(ii, ee){ if (ee.x == that.preChess.x && ee.y == that.preChess.y+1{ hasObstacle = true; if(ee.x ==x&&ee.y==y){ return false; }); if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; return false; return true; return false; if(ee.x ==x&&ee.y==y){ return false; // Regeln des roten Elefanten obj.rule_Elephant_r = function(i, j) { ; var that = this; if ((Math.abs(that.preChess.x-i) ==2&& Math.abs(that.preChess.y-j) ==2) && j >=6{ var vgaX = (that.preChess.x+i)}/2return t; var vgaY = (that.preChess.y+j)/2return t; console.log(vgaX); $.each(that.cheer_arr_ALL, function(ii, ee){ if(ee.x == vgaX && ee.y == vgaY){ hasObstacle = true; if(ee.x ==x&&ee.y==y){ return false; }); if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; return true; return false; if(ee.x ==x&&ee.y==y){ return false; // Regeln des schwarzen Elefanten obj.rule_Elephant_b = function(i, j) { ; var that = this; if ((Math.abs(that.preChess.x-i) ==2&& Math.abs(that.preChess.y-j) ==2) && j <6{ var vgaX = (that.preChess.x+i)}/2return t; var vgaY = (that.preChess.y+j)/2return t; // console.log(vgaX); $.each(that.cheer_arr_ALL, function(ii, ee){ if(ee.x == vgaX && ee.y == vgaY){ hasObstacle = true; if(ee.x ==x&&ee.y==y){ return false; }); if(hasObstacle){ if(ee.x ==x&&ee.y==y){ return false; return true; return false; if(ee.x ==x&&ee.y==y){ return false; // Roter Verwalterregel obj.rule_Scholar_r = function(i,j){ if(this.preChess.x ==5&& this.preChess.y ==9{ if(Math.abs(this.preChess.x-i) ==1&& Math.abs(this.preChess.y-j) ==1{ return true; return false; } else if(i ==5&& j ==9{ return true; return false; if(ee.x ==x&&ee.y==y){ return false; // Schwarzverwalterregel obj.rule_Scholar_b = function(i,j){ if(this.preChess.x ==5&& this.preChess.y ==2{ if(Math.abs(this.preChess.x-i) ==1&& Math.abs(this.preChess.y-j) ==1{ return true; return false; } else if(i ==5&& j ==2{ return true; return false; if(ee.x ==x&&ee.y==y){ return false; // Generalregel obj.rule_Boss_r = function(i,j){ if((Math.abs(this.preChess.x-i) ==1&& this.preChess.y == j) || (this.preChess.x == i && Math.abs(this.preChess.y-j) ==1)){ if(i >=4&& i <=6&& j >=8&& j <=10{ return true; if(temp<i){ if(ee.x ==x&&ee.y==y){ return false; return false; if(ee.x ==x&&ee.y==y){ return false; // Königregel obj.rule_Boss_b = function(i,j){ if((Math.abs(this.preChess.x-i) ==1&& this.preChess.y == j) || (this.preChess.x == i && Math.abs(this.preChess.y-j) ==1)){ if(i >=4&& i <=6&& j >=1&& j <=3{ return true; if(temp<i){ if(ee.x ==x&&ee.y==y){ return false; return false; if(ee.x ==x&&ee.y==y){ return false; // Bauerregel obj.rule_Soldier_r = function(i,j){ if(this.preChess.y <=5{ if((this.preChess.x == i && this.preChess.y-1== j) || (this.preChess.x-1 == i && this.preChess.y == j) || (this.preChess.x+1 == i && this.preChess.y == j){ return true; return false; if(temp<i){ if(this.preChess.x == i && this.preChess.y-1==j){ return true; return false; return false; if(ee.x ==x&&ee.y==y){ return false; // Pionregel obj.rule_Soldier_b = function(i,j){ if(this.preChess.y >5{ if((this.preChess.x == i && this.preChess.y+1== j) || (this.preChess.x-1 == i && this.preChess.y == j) || (this.preChess.x+1 == i && this.preChess.y == j){ return true; return false; if(temp<i){ if(this.preChess.x == i && this.preChess.y+1==j){ return true; return false; return false; if(ee.x ==x&&ee.y==y){ return false; // Pfeilregeln obj.rule_Cannon = function(i,j){ var that = this; if(this.preChess.x ==i||this.preChess.y==j){ if(this.preChess.x ==i||this.preChess.y==j){ var t =0; if(this.preChess.x ==i){ var temp = this.preChess.y; else{++if(temp<j){ obj.inArray = function(x,y){ temp!=j){ temp!=i){++return t; if(ee.x ==x&&ee.y==y){ return false; }); return false; if(ee.x ==temp&&ee.y==that.preChess.y){ if(temp<i){ else{--if(temp<j){ obj.inArray = function(x,y){ temp!=j){ temp!=i){++return t; if(ee.x ==x&&ee.y==y){ return false; }); return false; if(ee.x ==temp&&ee.y==that.preChess.y){ return false; if(temp<i){ if(ee.x ==that.preChess.x&&ee.y==temp){ var temp = this.preChess.x; else{++} obj.inArray = function(x,y){ while( temp!=i){++return t; if(ee.x ==x&&ee.y==y){ return false; }); return false; if(ee.x ==temp&&ee.y==that.preChess.y){ if(temp<i){ else{--} obj.inArray = function(x,y){ while( temp!=i){++return t; if(ee.x ==x&&ee.y==y){ return false; }); return false; if(ee.x ==temp&&ee.y==that.preChess.y){ return false; return false; return false; t 2return t; return false; return ; obj.inArray = function(x,y){ var hasObstacle = false; $.each(this.cheer_arr_ALL,function(ii,ee){ if(ee.x ==x&&ee.y==y){ return false; }); hasObstacle = true; return false; return hasObstacle; // } // obj.init();5obj.init({ // chunk: // 0,23radius: // , // ccr:3 // Kandidatengeschwindigkeit // }); </script> </body> </html>
Das ist der gesamte Inhalt dieses Artikels. Ich hoffe, dieser Artikel kann Ihnen bei Ihrem Lernen oder Ihrer Arbeit helfen. Ich hoffe auch, dass Sie die Anleitung 'Schrei' weiter unterstützen!
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet entnommen und gehört dem jeweiligen Urheber. Der Inhalt wurde von Internetnutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Falls Sie Inhalte finden, die möglicherweise urheberrechtlich geschützt sind, senden Sie bitte eine E-Mail an: notice#w3Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet entnommen und gehört dem jeweiligen Urheber. Der Inhalt wurde von Internetnutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Falls Sie Inhalte finden, die möglicherweise urheberrechtlich geschützt sind, senden Sie bitte eine E-Mail an: notice#w