在Javascript中为国际象棋游戏创建一个2D对象数组和int对象数组

Creating a 2D array of objects vs ints for chess game in Javascript

本文关键字:对象 数组 一个 2D int Javascript 国际象棋 游戏 创建      更新时间:2023-09-26

我目前正在用Javascript + HTML5画布制作一款多人象棋游戏,作为一个小型的副项目。我想知道代表董事会的最佳做法是什么。

选项1:2D对象数组-我有一个Piece模块,具有所有板件共同的一些功能。然后,我有了从Piece继承的所有Piece的对象。-然后我可以用32个对象制作一个2D的碎片数组,并设置它们在棋盘上的位置。

选项2:2D Array of int-我可以简单地制作一个2D网格,其中某个整数代表给定的部分。

哪个选项是"最好的",或者有没有更好的?我正在尝试采用面向对象的方法。

感谢任何意见。谢谢你的家伙。

你也可以选择对象,学习OOP,编写一个整体上"更好"的代码,如果你正在编写一款带有更大"棋盘"的游戏,即拥有数千个或更多的贴图,你可能会出于性能原因考虑使用整数方法。

一个8 × 8的棋盘对于一个现代的JS解释器来说根本不算什么,所以我们不妨疯狂一下。

2D对象数组可能是更好的选择,因为您可以存储比整型数组更多的数据。例如,不使用数字5和6来表示黑兵和白兵,您可以使用一个具有type和color属性的对象。

在我看来,使用对象数组来表示棋盘更方便,这样您就可以轻松地附加每个Piece对象及其图形表示(CSS类),而使用数字来表示Piece对我来说似乎是一种更混乱的方法,绝对不是OO。