0
我需要一些幫助來完成我需要做的任務。基本上這個問題是一個猜數字遊戲。根據我們的學生人數,我們在[0,1023]區間內被分配一個數字,我們有11次猜測來獲得正確的數字。我知道我必須使用二進制搜索來獲取數字,我唯一的問題是連接到服務器並獲得結果。使用jsonp製作ajax請求(無jquery)
我們給出這樣的:
的示例請求如下所示:
http://142.132.145.50/A3Server/NumberGuess?snum=1234567&callback=processResult&guess=800
而且也給該請求返回以下參數: 1:代碼以確定如果你的猜測是等於,低於數量小於或大於 2:消息字符串 3:我的應用程序所做的猜測數
這是我到目前爲止已經試過,只是作爲測試獲得日e服務器請求工作。我所得到的回報是「對象HTMLHeadingElement」
window.onload = function() {
newGuess();
}
function newGuess() {
var url = "http://142.132.145.50/A3Server/NumberGuess?snum=3057267&callback=processResult&guess=600";
var newScriptElement = document.createElement("script");
newScriptElement.setAttribute("src", url);
newScriptElement.setAttribute("id", "jsonp");
var oldScriptElement = document.getElementById("jsonp");
var head=document.getElementsByTagName("head")[0];
if (oldScriptElement == null) {
head.appendChild(newScriptElement);
} else {
head.replaceChild(newScriptElement, oldScriptElement);
}
}
function processResult(code,message,guesses) {
var code = document.getElementById("code");
var message = document.getElementById("message");
var guesses = document.getElementById("guesses");
code.innerHTML = code;
message.innerHTML = message;
guesses.innerHTML = guesses;
}
編輯:我的代碼當前狀態。
window.onload = function() {
min = 0;
max = 1023;
mid = 0;
setInterval(newGuess,1000);
};
function newGuess() {
mid = Math.floor((max-min)/2);
var url = "http://142.132.145.50/A3Server/NumberGuess?snum=3057267&callback=processResult&guess="+mid;
var newScriptElement = document.createElement("script");
newScriptElement.setAttribute("src", url);
newScriptElement.setAttribute("id", "jsonp");
var oldScriptElement = document.getElementById("jsonp");
var head=document.getElementsByTagName("head")[0];
if (oldScriptElement == null) {
head.appendChild(newScriptElement);
} else {
head.replaceChild(newScriptElement, oldScriptElement);
}
}
function processResult(codeJ,messageJ,guessesJ) {
code = document.getElementById("code");
message = document.getElementById("message");
guesses = document.getElementById("guesses");
code.innerHTML = codeJ;
message.innerHTML = messageJ;
guesses.innerHTML = guessesJ;
if(codeJ == 0){
return;
}else if(codeJ == -1){
min = mid + 1;
}else if(codeJ == 1){
max = mid -1;
}
console.log(mid);
}
哦jeeze,我不知道爲什麼我之前沒有注意到這一點。我一直試圖讓這個工作這麼長時間,一定是把自己炸了。 – Jesse 2014-11-07 01:37:09