Use XMLHttpRequest to load Nurikabe game data
parent
a2a70ab76c
commit
8fd83c8aa7
File diff suppressed because it is too large
Load Diff
11
nikoli.rb
11
nikoli.rb
|
@ -2,13 +2,17 @@
|
|||
|
||||
require 'sinatra'
|
||||
require 'sinatra/content_for'
|
||||
require 'sinatra/json'
|
||||
|
||||
require 'yaml'
|
||||
require 'coffee-script'
|
||||
require 'slim'
|
||||
require 'sass'
|
||||
|
||||
GAMES = %i{hitori nurikabe sudoku}
|
||||
|
||||
set :data_folder, File.expand_path('./data')
|
||||
|
||||
get('/application.css') { scss :application }
|
||||
get('/application.js') { coffee :application }
|
||||
|
||||
|
@ -18,3 +22,10 @@ GAMES.each do |game|
|
|||
get("/#{game}") { slim game }
|
||||
get("/#{game}.js") { coffee game }
|
||||
end
|
||||
|
||||
get "/data/:game/:file.json" do |game, file|
|
||||
data_file = File.join(settings.data_folder, game, "#{file}.yml")
|
||||
halt(404) unless File.exist?(data_file)
|
||||
|
||||
json YAML.load_file(data_file).sample
|
||||
end
|
||||
|
|
|
@ -6,8 +6,12 @@ h1 Nurikabe
|
|||
script type="text/javascript" src="/nurikabe.js"
|
||||
javascript:
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
var game = JSON.parse("[[4,-1,-1,0,2],[0,-1,2,-1,-1],[0,-1,0,-1,3],[0,-1,-1,-1,0],[-1,-1,1,-1,0]]");
|
||||
|
||||
nurikabe = new Nurikabe(document.getElementById('board'));
|
||||
nurikabe.generate(game);
|
||||
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.open("GET", "#{url('/data/nurikabe/5x5.json')}");
|
||||
|
||||
xmlhttp.addEventListener('load', function(evt) {
|
||||
nurikabe.generate(JSON.parse(evt.target.responseText)) })
|
||||
xmlhttp.send();
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue