Javascript 创建类似游戏的便携模块

Javascript 创建类似游戏的便携模块,javascript,class,Javascript,Class,我想创造一些游戏。我对这个游戏的看法必须像对模块的看法一样,这是好的吗?这意味着,在其他网站的任何地方,我想运行我的游戏,我只需要把我的模块 那么,如果我们把“我的观点”想象成类,它会像这样吗 class Mario { // Whole game module class Game { // Game properties class Player { } class Card { } }

我想创造一些游戏。我对这个游戏的看法必须像对模块的看法一样,这是好的吗?这意味着,在其他网站的任何地方,我想运行我的游戏,我只需要把我的模块

那么,如果我们把“我的观点”想象成类,它会像这样吗

class Mario {
    // Whole game module
    class Game {
        // Game properties
        class Player {
        }
        class Card {
        }
    }

    class Init {
        // This take care about gui etc.
        class Gui {
             show_cards() {
             }
        }
    }

    start() {
        var init = new Init();
        something to init Gui and run method show_cards();
    }
}

var mario = new Mario();
mario.start();
我说得对吗

但是这种语法在JavaScript中正确吗?这可能吗


谢谢你的帮助

如果你想要一个额外的HTML元素,你可以把它放进你的页面来保存你的游戏代码,你可以做一个,但是我打赌你可以通过一个

就您的代码结构而言,这应该对您有所帮助。这是一个
游戏
类模板,使用了独立的
玩家
资源
类——我为您在顶部设置了一个
游戏处理程序
类(这与您的马里奥类类似)

快乐编码

类游戏处理程序{
构造函数(){
这个.handlerSetup();
const gameResources=[//setResources方法的资源对象数组
{
输入:“卡片”,
编号:1,
},
{
输入:“卡片”,
编号:2,
选项:{类别:“A”,说明:“特殊”}
}
];
this.game=新游戏(4,gameResources);//这可以循环进行,以允许连续的游戏
}
handlerSetup(){/*在此处执行安装任务*/}
}
班级游戏{
构造函数(playerCount、resourcesArray){
this.players=this.setPlayers(playerCount);
this.resources=this.setResources(resourcesArray);
this.winnerIfAny=null;
该值为0;
此。输出(“准备就绪”);
//主回路
while(this.winnerIfAny==null){
this.winnerIfAny=this.nextTurn(++this.turnNumber);
}
this.output(`Game over--Player number${this.winnerIfAny.number}赢`);
}
赛特球员(计数){
设i=0,players=[];
而(我<计数){
players.push(新播放器(i++));
}
this.output(`${count}玩家添加`)
返回球员;
}
设置资源(已提供资源){
让资源=[];
for(让资源的资源提供){
资源。推送(新资源(资源));
}
this.output(`${resources.length}resources已添加`)
归还资源;
}
下一圈(转数){
这个。输出(“轮流…”);
设winnerFound=null;
//转弯循环代码在这里
//(例如,切换到下一个玩家,轮流,检查赢家。)
//这个演示游戏不是很有趣——它随机分配一个获胜者
设rand=(Math.floor(Math.random()*(11-turnNumber*2));
如果(turnNumber>1&&rand<4){winnerFound=this.players[rand];}
if(winnerFound){return winnerFound;}
返回null;
}
输出(文本){document.querySelector(#outputDiv”).innerHTML+=`${text}
`;} } 职业选手{ 建造师(编号){ 这个数字=数字; //等等。。。 } } 类资源{ 构造函数(类型、编号、选项){ 这个数字=数字; //等等。。。 } } 新建GameHandler();

你的代码语法不正确,你不能像那样嵌套类声明。如果你一个接一个地定义类,它会起作用。如果这是一种好的方法,那么这是个人偏好的问题,因此偏离主题,因此我投票以“主要是自以为是”来结束你的问题