Javascript 未捕获引用错误:未定义war
我正在尝试制作一个简单的纸牌游戏web应用程序 尝试从按钮单击运行war.refillDeck()函数时,我在控制台中收到以下错误:未捕获引用错误:未定义war 根据我的研究,我的javascript似乎没有被加载到页面中,但是我不确定我做错了什么,因为我已经在我的页面标题中包含了我的javascript和jQuery引用 以下是我的php页面和javascript的片段: war.phpJavascript 未捕获引用错误:未定义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
<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);