IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 学习日记|JavaScript在网页实现的五子棋游戏 -> 正文阅读

[游戏开发]学习日记|JavaScript在网页实现的五子棋游戏

js实现的五子棋

学习js的第三天,跟着老师完成的五子棋小游戏,记录学习成果欢迎大佬们一起分享经验,批评指正。
本程序主要通过三部分实现:
1.棋盘绘制
2.鼠标交互

3.输赢判断

<!DOCTYPE html>
<html>
<head>
  <title>
    canvastest
    </title>
</head>
<body>
     <h1> canvas</h1>
     <canvas id="canvas"width="400"height="400">
     </canvas>

     <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>

  <script>
   var canv=document.getElementById("canvas");
   var ctx=canv.getContext("2d");
   ctx.strokeStyle="black";
   var bow=0;

//画出棋盘;
var matrix=[

  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
                                              ];

ctx.beginPath();

for(var i=0;i<19;i++){

       ctx.moveTo(10+20*i,10);
       ctx.lineTo(10+i*20,370);
       ctx.moveTo(10,20*i+10);
       ctx.lineTo(370,i*20+10);

}
 ctx.stroke();
 
 //鼠标交互;
  $("#canvas").click(function(event)
      {
      console.log(event.offsetX)


      console.log(bow);
      var arcPosX,arcPosY;
     var mtxPosX,mtxPosY;
      for(var x=0;x<19;x++)
      {
      if((Math.abs(event.offsetX-(10+x*20)))<10)
        {
       arcPosX=10+x*20;
       mtxPosX=x;
        }
      if((Math.abs(event.offsetY-(10+x*20)))<10)
         {
        arcPosY=10+x*20;
        mtxPosY=x;
          }
      }

      if(matrix[mtxPosX][mtxPosY] == 0)
      {
      bow=!bow;
      ctx.beginPath();
      if(bow){

      ctx.fillStyle="Black";
      ctx.arc(arcPosX,arcPosY,10,0,Math.PI*2,false);
      matrix[mtxPosX][mtxPosY]=1;
      }
      else{
      ctx.fillStyle="White";
      ctx.arc(arcPosX,arcPosY,10,0,Math.PI*2,false);
      ctx.stroke();
      matrix[mtxPosX][mtxPosY]=2;
      }
      ctx.fill();
      }
      //实现输赢判断
      var winFlag=0;
if(winFlag==0){
if(matrix[mtxPosX-1][mtxPosY] == matrix[mtxPosX][mtxPosY])
	  	        		{
	  	        			if(matrix[mtxPosX-2][mtxPosY] == matrix[mtxPosX][mtxPosY])
	  	        			{
	  	        				if(matrix[mtxPosX-3][mtxPosY] == matrix[mtxPosX][mtxPosY])
	  		        			{
	  		        				if(matrix[mtxPosX-4][mtxPosY] == matrix[mtxPosX][mtxPosY])
	  			        			{
	  			        				winFlag = 1;
	  			        			}
	  			        			else
	  			        			{
	  			        				if(matrix[mtxPosX+1][mtxPosY] == matrix[mtxPosX][mtxPosY])
	  				        			{
	  				        				winFlag = 1;
	  				        			}
	  				        			else
	  				        			{
	  				        				winFlag = 0;
	  				        			}
	  			        			}
	  		        			}
	  		        			else
	  		        			{
	  		        				for(var w = 0; w < 2 ; w ++)
	  			        			{
	  			        				if(matrix[mtxPosX+w+1][mtxPosY] != matrix[mtxPosX][mtxPosY])
	  			        				{
	  			        					winFlag = 0;
	  			        					break;
	  			        				}
	  			        				else
	  			        				{
	  			        					winFlag = 1;
	  			        				}
	  			        			}
	  		        			}
	  	        			}
	  	        			else
	  	        			{
	  	        				for(var w = 0; w < 3 ; w ++)
	  		        			{
	  		        				if(matrix[mtxPosX+w+1][mtxPosY] != matrix[mtxPosX][mtxPosY])
	  		        				{
	  		        					winFlag = 0;
	  		        					break;
	  		        				}
	  		        				else
	  		        				{
	  		        					winFlag = 1;
	  		        				}
	  		        			}
	  	        			}
	  	        		}
	  	        		else
	  	        		{
	  	        			for(var w = 0; w < 4 ; w ++)
	  	        			{
	  	        				if(matrix[mtxPosX+w+1][mtxPosY] != matrix[mtxPosX][mtxPosY])
	  	        				{
	  	        					winFlag = 0;
	  	        					break;
	  	        				}
	  	        				else
	  	        				{
	  	        					winFlag = 1;
	  	        				}
	  	        			}
	  	        		}

if(matrix[mtxPosX][mtxPosY-1] == matrix[mtxPosX][mtxPosY])
	  	        		{
	  	        			if(matrix[mtxPosX][mtxPosY-2] == matrix[mtxPosX][mtxPosY])
	  	        			{
	  	        				if(matrix[mtxPosX][mtxPosY-3] == matrix[mtxPosX][mtxPosY])
	  		        			{
	  		        				if(matrix[mtxPosX][mtxPosY-4] == matrix[mtxPosX][mtxPosY])
	  			        			{
	  			        				winFlag = 1;
	  			        			}
	  			        			else
	  			        			{
	  			        				if(matrix[mtxPosX][mtxPosY+1] == matrix[mtxPosX][mtxPosY])
	  				        			{
	  				        				winFlag = 1;
	  				        			}
	  				        			else
	  				        			{
	  				        				winFlag = 0;
	  				        			}
	  			        			}
	  		        			}
	  		        			else
	  		        			{
	  		        				for(var w = 0; w < 2 ; w ++)
	  			        			{
	  			        				if(matrix[mtxPosX][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])
	  			        				{
	  			        					winFlag = 0;
	  			        					break;
	  			        				}
	  			        				else
	  			        				{
	  			        					winFlag = 1;
	  			        				}
	  			        			}
	  		        			}
	  	        			}
	  	        			else
	  	        			{
	  	        				for(var w = 0; w < 3 ; w ++)
	  		        			{
	  		        				if(matrix[mtxPosX][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])
	  		        				{
	  		        					winFlag = 0;
	  		        					break;
	  		        				}
	  		        				else
	  		        				{
	  		        					winFlag = 1;
	  		        				}
	  		        			}
	  	        			}
                         }
	  	        		else
	  	        		{
	  	        			for(var w = 0; w < 4 ; w ++)
	  	        			{
	  	        				if(matrix[mtxPosX][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])
	  	        				{
	  	        					winFlag = 0;
	  	        					break;
	  	        				}
	  	        				else
	  	        				{
	  	        					winFlag = 1;
	  	        				}
	  	        			}
	  	        		}

  if(matrix[mtxPosX-1][mtxPosY-1] == matrix[mtxPosX][mtxPosY])
  	  	        		{
  	  	        			if(matrix[mtxPosX-2][mtxPosY-2] == matrix[mtxPosX][mtxPosY])
  	  	        			{
  	  	        				if(matrix[mtxPosX-3][mtxPosY-3] == matrix[mtxPosX][mtxPosY])
  	  		        			{
  	  		        				if(matrix[mtxPosX-4][mtxPosY-4] == matrix[mtxPosX][mtxPosY])
  	  			        			{
  	  			        				winFlag = 1;
  	  			        			}
  	  			        			else
  	  			        			{
  	  			        				if(matrix[mtxPosX+1][mtxPosY+1] == matrix[mtxPosX][mtxPosY])
  	  				        			{
  	  				        				winFlag = 1;
  	  				        			}
  	  				        			else
  	  				        			{
  	  				        				winFlag = 0;
  	  				        			}
  	  			        			}
  	  		        			}
  	  		        			else
  	  		        			{
  	  		        				for(var w = 0; w < 2 ; w ++)
  	  			        			{
  	  			        				if(matrix[mtxPosX+w+1][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])
  	  			        				{
  	  			        					winFlag = 0;
  	  			        					break;
  	  			        				}
  	  			        				else
  	  			        				{
  	  			        					winFlag = 1;
  	  			        				}
  	  			        			}
  	  		        			}
  	  	        			}
  	  	        			else
  	  	        			{
  	  	        				for(var w = 0; w < 3 ; w ++)
  	  		        			{
  	  		        				if(matrix[mtxPosX+w+1][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])
  	  		        				{
  	  		        					winFlag = 0;
  	  		        					break;
  	  		        				}
  	  		        				else
  	  		        				{
  	  		        					winFlag = 1;
  	  		        				}
  	  		        			}
  	  	        			}
  	  	        		}
  	  	        		else
  	  	        		{
  	  	        			for(var w = 0; w < 4 ; w ++)
  	  	        			{
  	  	        				if(matrix[mtxPosX+w+1][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])
  	  	        				{
  	  	        					winFlag = 0;
  	  	        					break;
  	  	        				}
  	  	        				else
  	  	        				{
  	  	        					winFlag = 1;
  	  	        				}
  	  	        			}
	  	        		}

	  if(matrix[mtxPosX-1][mtxPosY+1] == matrix[mtxPosX][mtxPosY])
	  	        		{
	  	        			if(matrix[mtxPosX-2][mtxPosY+2] == matrix[mtxPosX][mtxPosY])
	  	        			{
	  	        				if(matrix[mtxPosX-3][mtxPosY+3] == matrix[mtxPosX][mtxPosY])
	  		        			{
	  		        				if(matrix[mtxPosX-4][mtxPosY+4] == matrix[mtxPosX][mtxPosY])
	  			        			{
	  			        				winFlag = 1;
	  			        			}
	  			        			else
	  			        			{
	  			        				if(matrix[mtxPosX+1][mtxPosY-1] != matrix[mtxPosX][mtxPosY])
	  				        			{
	  				        				winFlag = 0;
	  				        			}
	  				        			else
	  				        			{
	  				        				winFlag = 1;
	  				        			}
	  			        			}
	  		        			}
	  		        			else
	  		        			{
	  		        				for(var w = 0; w < 2 ; w ++)
	  			        			{
	  			        				if(matrix[mtxPosX+w+1][mtxPosY-w-1] != matrix[mtxPosX][mtxPosY])
	  			        				{
	  			        					winFlag = 0;
	  			        					break;
	  			        				}
	  			        				else
	  			        				{
	  			        					winFlag = 1;
	  			        				}
	  			        			}
	  		        			}
	  	        			}
	  	        			else
	  	        			{
	  	        				for(var w = 0; w < 3 ; w ++)
	  		        			{
	  		        				if(matrix[mtxPosX+w+1][mtxPosY-w-1] != matrix[mtxPosX][mtxPosY])
	  		        				{
	  		        					winFlag = 0;
	  		        					break;
	  		        				}
	  		        				else
	  		        				{
	  		        					winFlag = 1;
	  		        				}
	  		        			}
	  	        			}
	  	        		}
	  	        		else
	  	        		{
	  	        			for(var w = 0; w < 4 ; w ++)
	  	        			{
	  	        				if(matrix[mtxPosX+w+1][mtxPosY-w-1] != matrix[mtxPosX][mtxPosY])
	  	        				{
	  	        					winFlag = 0;
	  	        					break;
	  	        				}
	  	        				else
	  	        				{
	  	        					winFlag = 1;
	  	        				}
	  	        			}
	  	        		}
    }
	  	        		if(winFlag ==1){
							  if(bow)
							  alert("black win!");
							  else
	                        alert("white win!");
	  	        		}
      });

  </script>
</body>
</html>

在这里插入图片描述

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 11:09:28  更:2021-07-23 11:09:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 15:27:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码