changeset 3273:706c45790b74

rogin
author Minoru Konno <c113069@e.koeki-u.ac.jp>
date Fri, 22 Jul 2016 21:14:15 +0900
parents 09d2631e8230
children dc2eecba9982
files event/oasis2016/attack.css event/oasis2016/db/point.yaml event/oasis2016/don/1.png event/oasis2016/don/ckgame.rb event/oasis2016/rogin.rb event/oasis2016/sea/ckgame.rb event/oasis2016/tori/ckgame.rb
diffstat 7 files changed, 100 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/event/oasis2016/attack.css	Fri Jul 22 15:23:43 2016 +0900
+++ b/event/oasis2016/attack.css	Fri Jul 22 21:14:15 2016 +0900
@@ -37,3 +37,7 @@
 div.sea div:first-child {left: 0px; top: 0px}
 div.sea div:nth-child(2) {position: absolute; left: 0px; top: 150px;}
 div.sea div:nth-child(3) {position: absolute; left: 0px; top: 300px;}
+
+
+
+.jyama{color:#f9f5a9;}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/event/oasis2016/db/point.yaml	Fri Jul 22 21:14:15 2016 +0900
@@ -0,0 +1,6 @@
+---
+info:
+  ! '':
+    name: aa
+    bingo:
+      "きゅうり": true
Binary file event/oasis2016/don/1.png has changed
--- a/event/oasis2016/don/ckgame.rb	Fri Jul 22 15:23:43 2016 +0900
+++ b/event/oasis2016/don/ckgame.rb	Fri Jul 22 21:14:15 2016 +0900
@@ -1,7 +1,7 @@
 #!/usr/bin/env ruby
 # -*- coding: utf-8 -*-
 require 'yaml/store'
-file = "db/point.yaml"
+file = "../db/point.yaml"
 bingoword = %w(きゅうり えび どんぶり さーもん まぐろ ほし わさび たまご まる) # 正解キーワード9つ
 
 require 'cgi'
@@ -15,13 +15,13 @@
 form_name=c["playname"]        # nameをフォームから取得(もしあれば)
 form_kwd=c["keyword"]          # keywordも取得(もしあれば)
 
-if cookie_id == nil             # (1)もしcookieからのidがなければ新規生成
+#if cookie_id == nil             # (1)もしcookieからのidがなければ新規生成
   # 新規idは、現在時刻を秒(to_i)にした文字列(to_s)と乱数の組み合わせ
   newid = Time.now.to_i.to_s + "/" + rand(99999).to_s
   id=newid                      # 新規idをidとする
-else                            # (2)cookieからのidがあればそれをidとする
+#else                            # (2)cookieからのidがあればそれをidとする
   id=cookie_id
-end
+#end
 
 # idをすぐcookieで相手ブラウザに送る
 # 変数の期限を24時間に設定し、expire変数に入れる
@@ -46,17 +46,18 @@
     hello = "まちがいさがしスタート"
     guide = "あなたのプレイ名を決めます"
     input = '<input name="playname">'
+    submit = '<input type="submit" value="送信">'
+    reset = '<input type="reset" value="リセット">'
   else                          # プレイ名設定済みならキーワード入力
     title = sprintf("%s さんのホーム", info[id]["name"])
     setumei = "海鮮丼の絵から間違いを3個見つけよう!"
     setumei2 = "間違っている絵のパネルは全部で9個あるよ♪"
-    guide = "キーワードを入れてください"
-    input = '<input name="keyword">'
-    seikai = '<img src="kaisendon.jpg" width="600px" height="600px">'
+    seikai = 
+         '<img src="kaisendon.jpg" width="600px" height="600px">'
     # プレイ名設定済みで、さらにキーワードが入力されていたら
     if form_kwd > ""
       index = bingoword.index(form_kwd) # 配列から入力単語(form_kwd)を探索
-      hello = sprintf("現在のポイントは %dpt です。", 25*point)
+      #hello = sprintf("現在のポイントは %dpt です。", 25*point)
       if index
         # 見付かった! その単語をハッシュのキーとして適当に値(true)を入れておく
         info[id]["bingo"][bingoword[index]] = true
@@ -104,11 +105,9 @@
 <h2>%s</h2>
 <h2>%s</h2>
 <p>%s</p>
-<p>開けたパネル(%d/%d): %s</p>
+<p>開けたパネル(%d/%d)</p>
 <form action="?" method="GET">
-<p>%s: %s<br>
-<input type="submit" value="送信">
-<input type="reset" value="リセット"></p>
+<p class=jyama>%s: %s: %s: %s</p>
 </form>
 <p>%s</p>
 <div class="don">
@@ -123,5 +122,5 @@
 <div>%s</div></div>
 </body></html>
 EOF
-         umi, title, setumei, setumei2, hello, point, bingoword.length, bingos, guide, input, seikai, kaisen, kaisen4, kaisen7, kaisen2, kaisen5, kaisen8, kaisen3, kaisen6, kaisen9,)
+         umi, title, setumei, setumei2, hello, point, bingoword.length, guide, input, submit, reset, seikai, kaisen, kaisen4, kaisen7, kaisen2, kaisen5, kaisen8, kaisen3, kaisen6, kaisen9,)
 end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/event/oasis2016/rogin.rb	Fri Jul 22 21:14:15 2016 +0900
@@ -0,0 +1,77 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+require 'yaml/store'
+file = "db/point.yaml"
+
+require 'cgi'
+c = CGI.new(:accept_charset => "UTF-8")
+
+# 前回のアクセスで既にcookieが定義されていたら取得
+# ブラウザからのcookieは、c.cookies[変数名][0] で受け取る
+cookie_id=c.cookies["id"][0]
+
+# 前回のアクセスで入力された値を取得
+form_name=c["playname"]        # nameをフォームから取得(もしあれば)
+
+
+if cookie_id == nil             # (1)もしcookieからのidがなければ新規生成
+  # 新規idは、現在時刻を秒(to_i)にした文字列(to_s)と乱数の組み合わせ
+  newid = Time.now.to_i.to_s + "/" + rand(99999).to_s
+  id=newid                      # 新規idをidとする
+else                            # (2)cookieからのidがあればそれをidとする
+  id=cookie_id
+end
+
+# idをすぐcookieで相手ブラウザに送る
+# 変数の期限を24時間に設定し、expire変数に入れる
+expire = (Time.now+24*3600).gmtime.strftime("%a, %d %b %Y %H:%M:%S GMT")
+printf("Content-type: text/html; charset=UTF-8\n")
+printf("Set-Cookie: id=%s; expires=%s\n\n", id, expire)
+
+
+db = YAML::Store.new(file)
+db.transaction do
+  info = db["info"] = db.fetch("info", Hash.new)
+  if !info[id]              # もしそのユーザ情報が未登録(空)なら
+    info[id] = Hash.new     # 新規ハッシュを割り当てる
+  end
+  if form_name > ""             # formからの名前設定がもしあれば
+    info[id]["name"] = form_name # それをユーザ情報に記録
+    info[id]["bingo"] = Hash.new # 正解した単語保存用のハッシュも作成
+  end
+ if !info[id]["name"]      # もしユーザのプレイ名が未設定なら
+   umi = '<img src="./img/umi.png" width="800px" height="600px">'
+   title = "ようこそ!"
+   hello = "QRコードを読みこんで間違い探しをしましょう!"
+   guide = "まずはあなたのプレイ名を決めます"
+   input = '<input name="playname">'
+   submit = '<input type="submit" value="送信">'
+   reset = '<input type="reset" value="リセット">'
+ else            # プレイ名設定済みならキーワード入力
+   title = "登録完了!"
+   hello = "プレイ名の登録は完了しました!"
+   guide = "QRコードを読みこんで楽しみましょう♪"
+ end
+
+printf(<<-EOF,
+<!DOCTYPE html>
+<html lang="ja">
+<head>
+<title>まちがいみつけでみっちゃ</title>
+<link rel="stylesheet" type="text/css" href="attack.css">
+</head>
+
+<body>
+<img src="./img/logo.png" width="900px" height="100px">
+<p>%s</p>    
+<h1>%s</h1>  
+<h2>%s</h2>  
+<h2>%s</h2>  
+<form action="?" method="GET">
+<p> %s<br>
+%s: %s</p>    
+</body></html>
+EOF
+        umi, title, hello, guide, input, submit, reset,)
+end
+
--- a/event/oasis2016/sea/ckgame.rb	Fri Jul 22 15:23:43 2016 +0900
+++ b/event/oasis2016/sea/ckgame.rb	Fri Jul 22 21:14:15 2016 +0900
@@ -49,7 +49,7 @@
     title = sprintf("%s さんのホーム", info[id]["name"])
     setumei = "絵から間違いを3個見つけよう!"
     setumei2 = "間違っている絵のパネルは全部で3個あるよ♪"
-    guide = "キーワードを入れてください"
+    guide = "QRコードを読みこんでパネルを埋めよう!
     input = '<input name="keyword">'
     seikai = '<img src="ans.jpg" width="450px" height="450px">'
     # プレイ名設定済みで、さらにキーワードが入力されていたら
--- a/event/oasis2016/tori/ckgame.rb	Fri Jul 22 15:23:43 2016 +0900
+++ b/event/oasis2016/tori/ckgame.rb	Fri Jul 22 21:14:15 2016 +0900
@@ -51,14 +51,6 @@
     setumei2 = "間違っている絵のパネルは全部で3個あるよ♪"
     seikai = '<img src="tori.jpg" width="450px" height="450px">'
     # プレイ名設定済みで、さらにキーワードが入力されていたら
-    if form_kwd > ""
-      index = bingoword.index(form_kwd) # 配列から入力単語(form_kwd)を探索
-      hello = sprintf("現在のポイントは %dpt です。", 25*point)
-      if index
-        # 見付かった! その単語をハッシュのキーとして適当に値(true)を入れておく
-        info[id]["bingo"][bingoword[index]] = true
-      end
-    end
     point = info[id]["bingo"].length # ハッシュの長さで正解数が分かる
     bingos = info[id]["bingo"].keys.collect do |x|
       "「" + x + "」"# collectメソッドで 「 」 で括った単語を集めて

yatex.org