Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获引用错误:未定义war_Javascript_Php_Jquery_Html_Reference - Fatal编程技术网

Javascript 未捕获引用错误:未定义war

Javascript 未捕获引用错误:未定义war,javascript,php,jquery,html,reference,Javascript,Php,Jquery,Html,Reference,我正在尝试制作一个简单的纸牌游戏web应用程序 尝试从按钮单击运行war.refillDeck()函数时,我在控制台中收到以下错误:未捕获引用错误:未定义war 根据我的研究,我的javascript似乎没有被加载到页面中,但是我不确定我做错了什么,因为我已经在我的页面标题中包含了我的javascript和jQuery引用 以下是我的php页面和javascript的片段: war.php <meta name="viewport" content="width=device-wi

我正在尝试制作一个简单的纸牌游戏web应用程序

尝试从按钮单击运行war.refillDeck()函数时,我在控制台中收到以下错误:未捕获引用错误:未定义war

根据我的研究,我的javascript似乎没有被加载到页面中,但是我不确定我做错了什么,因为我已经在我的页面标题中包含了我的javascript和jQuery引用

以下是我的php页面和javascript的片段:

war.php

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!--------------------------CSS--------------------------->
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <!-- Page CSS -->
    <link rel="stylesheet" href="css/war.css">
    <!-----------------------Javascript----------------------->
    <!-- jQuery library -->
    <script src="js/jquery-2.2.0.min.js"></script>
    <!-- Latest compiled JavaScript -->
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <!-- Page JS -->
    <script src="js/war.js"></script>

</head>
<body>
    <div class="container war">
        <!-- Heading -->
        <div class="row">
            <div id="p1-cards-remaining" class="col-sm-6 col-md-6 col-lg-6 war-head">
                <h2 class="ht">Player 1 Cards Remaining</h2>
            </div>
            <div id="p2-cards-remaining" class="col-sm-6 col-md-6 col-lg-6 war-head">
                <h2 class="ht">Player 2 Cards Remaining</h2>
            </div>
        </div>
        <!-- Play Field -->
        <div class="row">
            <div class="col-sm-6 col-md-6 col-lg-6">
                <div id="p1-field" class="pf">
                    <p>p1 card goes here</p>
                    <button onclick="war.refillDeck()">Refill Deck</button>
                </div>
            </div>
        </div>

玩家1剩余的牌
玩家剩余2张牌
p1卡在这里

补给甲板
war.js

$(document).ready(function () {
var aDeck =[],
    aP1Deck =[],
    aP2Deck = [],
    iTurnCounter = 0,
    aNumbers = [
        'ace',
        '2',
        '3',
        '4',
        '5',
        '6',
        '7',
        '8',
        '9',
        '10',
        'jack',
        'queen',
        'king'
    ],
    aSuits = [
        'clubs',
        'diamonds',
        'spades',
        'hearts'
    ],
    oColors = {
        club: 'black',
        diamond: 'red',
        heart: 'red',
        spade: 'red'
    },
    oRanks = {
        ace: {
            rank: '1'
        },
        '2': {
            rank: '2'
        },
        '3': {
            rank: '3'
        },
        '4': {
            rank: '4'
        },
        '5': {
            rank: '5'
        },
        '6': {
            rank: '6'
        },
        '7': {
            rank: '7'
        },
        '8': {
            rank: '8'
        },
        '9': {
            rank: '9'
        },
        '10': {
            rank: '10'
        },
        jack: {
            rank: '11'
        },
        'queen': {
            rank: '12'
        },
        'king': {
            rank: '13'
        }
    },
    iCounter,
    oImageObjects = {},
    oImageBack = new Image(),
    oLastCard;

var war = {

    // used to create each card combination
    returnCard: function (sNumber, sSymbol) {
        var oCard,
            sColor = oColors[sSymbol];

        oCard = {
            color: sColor,
            rank: oRanks[sNumber],
            number: sNumber,
            symbol: sSymbol
        }

        return oCard;
    },

    //shuffle
    shuffleDeck: function (aCards) {
        "use strict";

        iCounter = aCards.length;

        //while there are still cards
        while (iCounter > 0) {

            //get a random index
            var iIndex = Math.floor(Math.random() * iCounter),
                aTemp;

            //decrease counter
            iCounter--;

            //swap the last element
            aTemp = aCards[iCounter];
            aCards[iCounter] = aCards[iIndex];
            aCards[iIndex] = aTemp;
        }

        return aCards;
    },

    refillDeck: function () {

        //reset player decks
        aP1Deck = [];
        aP2Deck = [];

        $.each(aNumbers, function (i, sNumber) {
            $.each(aSuits, function (j, sSuit) {
                aDeck.push(this.returnCard(sNumber, sSuit));

                //images
                if (oImageObjects.length !== 52) {
                    var oImage = new Image(),
                        sCardNumberSuit = sNumber + '_of_' + sSuit;

                    oImage.src = 'images/cards/' + sCardNumberSuit + '.png';
                    oImageObjects[sCardNumberSuit] = oImage;
                }
            }.bind(this));
        }.bind(this));

        aDeck = this.shuffleDeck(aDeck);
    },

    splitDeck: function (aDeck) {
        //deal the shuffled cards to each player deck
        while (aDeck.length > 0) {
            aP1Deck.push(aDeck.shift());
            aP2Deck.push(aDeck.shift());
        }
        console.log('player decks done.');
    },

    compareCards: function (oP1Card, oP2Card) {
        var sWinner;

        if (oP1Card.rank > oP2Card.rank) {
            sWinner = 'p1';
        } else if (oP1Card.rank < oP2Card.rank) {
            sWinner = 'p2';
        } else {
            sWinner = 'tie'
        }

        return sWinner;
    },

    drawCards: function (aP1Deck, aP2Deck) {
        var aBattlefield,
            oP1Card = aP1Deck.shift(),
            oP2Card = aP2Deck.shift(),
            sWinner;

        aBattlefield[oP1Card, oP2Card];


        //get drawn cards images
        document.getElementById('p1-field').style.backgroundImage =
                "url(" + oImageObjects[oP1Card.number + "_of_" 
                    + oP1Card.symbol].src + ")";

        document.getElementById('p2-field').style.backgroundImage =
                "url(" + oImageObjects[oP2Card.number + "_of_" 
                    + oP2Card.symbol].src + ")";

        sWinner = war.compareCards(aBattlefield[0], aBattlefield[1]);

        if (sWinner == 'p1') {
            //alert the players
            alert('p2 is battle winner with ' + aBattlefield[0].number + 
                    ' of ' + aBattlefield[0].symbol + ' over ' + 
                    aBattlefield[1].number + ' of ' + aBattlefield[1].symbol);
            // give the winner their rewards
            while (aBattlefield.length > 0) {
                //TODO: maybe use splice instead of push to make more random
                aP1Deck.push(aBattlefield.shift());
            }

        } else if (sWinner == 'p2') {
            //alert the players
            alert('p2 is battle winner with ' + aBattlefield[1].number + 
                    ' of ' + aBattlefield[1].symbol + ' over ' + 
                    aBattlefield[0].number + ' of ' + aBattlefield[0].symbol);
            //give the winner their rewards
            while (aBattlefield.length > 0) {
                //TODO: maybe use splice instead of push to make more random
                aP2Deck.push(aBattlefield.shift());
            }

        } else if (sWinner == 'tie') {
            alert('There was a tie. Press \'OK\' for tie breaker');
            //TODO something if there is a tie
        } else {
            console.error('something fucked up when drawing cards');
            alert('please check console log');
        }
    }
};

});
$(文档).ready(函数(){
var aDeck=[],
aP1Deck=[],
aP2Deck=[],
iTunesCounter=0,
数量=[
“A”,
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'10',
“杰克”,
“女王”,
“国王”
],
aSuits=[
“俱乐部”,
“钻石”,
“黑桃”,
“红心”
],
颜色={
俱乐部:“黑色”,
钻石:“红色”,
心:“红”,
黑桃:“红色”
},
oRanks={
王牌:{
排名:“1”
},
'2': {
排名:“2”
},
'3': {
排名:“3”
},
'4': {
排名:“4”
},
'5': {
排名:“5”
},
'6': {
排名:“6”
},
'7': {
排名:“7”
},
'8': {
排名:“8”
},
'9': {
排名:“9”
},
'10': {
排名:“10”
},
杰克:{
排名:“11”
},
“女王”:{
排名:“12”
},
“国王”:{
排名:“13”
}
},
I计数器,
oImageObjects={},
oImageBack=新图像(),
oLastCard;
var war={
//用于创建每个卡片组合
返回卡:功能(sNumber,sSymbol){
瓦尔·奥卡德,
sColor=oColors[sSymbol];
oCard={
颜色:色,
排名:oRanks[sNumber],
编号:sNumber,
符号:sSymbol
}
返回OCAD;
},
//洗牌
shuffleDeck:功能(aCards){
“严格使用”;
i计数器=aCards.length;
//还有牌的时候
而(i计数器>0){
//获取一个随机索引
var iIndex=Math.floor(Math.random()*iCounter),
aTemp;
//减少计数器
i计数器--;
//交换最后一个元素
aTemp=aCards[i计数器];
aCards[iCounter]=aCards[iIndex];
aCards[iIndex]=aTemp;
}
回信;
},
refillDeck:函数(){
//重置玩家牌组
aP1Deck=[];
aP2Deck=[];
$.each(数量,函数(i,数量){
$每个(A单元,功能(j,S单元){
aDeck.push(这个.returnCard(sNumber,sSuit));
//图像
if(oImageObjects.length!==52){
var oImage=新图像(),
sCardNumberSuit=sNumber+'''u of_'+sSuit;
oImage.src='images/cards/'+sCardNumberSuit+'.png';
oImageObjects[sCardNumberSuit]=oImage;
}
}.约束(这个);
}.约束(这个);
aDeck=这个。shuffleDeck(aDeck);
},
splitDeck:功能(aDeck){
//将洗牌后的牌发给每个玩家牌组
而(aDeck.length>0){
aP1Deck.push(aDeck.shift());
aP2Deck.push(aDeck.shift());
}
console.log('玩家组完成');
},
比较卡:函数(oP1Card、oP2Card){
var sWinner;
如果(oP1Card.rank>oP2Card.rank){
斯温纳='p1';
}否则如果(oP1Card.rank0){
//TODO:可能使用拼接而不是推送来增加随机性
aP1Deck.push(abatterfield.shift());
}
}else if(sWinner=='p2'){
//提醒玩家
警报('p2是带'+abatterfield[1]的战斗胜利者)。编号+
'of'+abatterfield[1]。符号+'over'+
AbatterField[0]。编号为“+”或“+AbatterField[0]。符号);
//给获胜者奖励
while(aBattlefield.length>0){
/
var war = {
  ...
}
window.war = war;
var war = {
  ...
}
$('#p1-field button').click(war.refillDeck);