0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

BINGO「Webツール」の構成を考える

Last updated at Posted at 2020-06-27

-- 目次はこちら。PythonでBINGOの「Webツール」をつくる
-- 記事作成:2019年12月、訂正:2020年6月

「Webツール」の構成を考える

前々回インフラ屋がお題として「Webツール」を開発することになったが。。
BINGOゲームの抽選機と表示器を作成することとして、「Webツール」作成用の環境を考えるから、前回はWebワークフレームのFLaskをインストールしました。
今回は、「Webツール」の構成を考えていきます。

画面構成

FlaskでWebを起動した場合、http://localhost:5000/ にアクセスする。
以下の様な構成を作る。

トップページ
 | BINGO Webツールの説明
 | 抽選状態の概要
 | 各種機能へのリンク
 |
 +-ー 直近の抽選結果の表示
 | | 直近の抽選数字を大きく表示 
 | | 
 | + 抽選 ⇒ 直近の抽選結果表示へ
 | + 過去抽選表示へ
 | + トップページへ
 | 
 +-ー 過去抽選結果表示
 | | 最初から直近までの抽選数字を表示
 | | 
 | + 抽選 ⇒ 直近の抽選結果表示へ
 | + 直近の抽選結果の表示へ
 | + トップページへ
 | 
 +-ー BINGOカード登録
 | | 登録者名+カードを登録 
 | |   登録時にカードの有効性を確認(JavaScript?)
 | | ※カードを画像認識して登録できるとBEST!
 | | 登録後⇒登録者BINGOカード表示へ
 | | 
 | + トップページへ
 | 
 +-ー BINGOカード配布
 | | 登録ユーザ名よりBINGOカードを作成
 | | 作成後⇒登録者BINGOカード表示へ
 | | 
 | + トップページへ
 | 
 +-ー BINGO!一覧表示
 | | 登録カードからBINGO、リーチなどの順位を表示
 | | 直近の抽選でBINGO者の表示
 | | 
 | + トップページへ
 |
 +-ー 登録者BINGOカード表示
 | | 登録者名のビンゴカードを表示
 | | 抽選途中の状態(当選状況)を表示(JavaScript?)
 | | 再表示で内容を更新
 | | 
 | + トップページへ
 |

プログラムの構成(検討中)

△は後日追加機能
error処理、ログ機能は後日

main.py
 #Flask + jinja2 + BINGOツール
 初期設定
   抽選したボールの置き場を用意する。
   ビンゴゲーム状態
   カード置き場(登録者名、カード情報、当選情報を記録)
 状態保持
   結果を保存するファイルを用意する
   カードの情報を保存
 共通処理
   抽選したボール置き場が75個あればBINGOは終了状態とする。
 (/)トップページのりクエスト
   ビンゴゲーム状態を表示
   トップページのHTMLを返す
 (/ball)直近の抽選結果の表示
   抽選したボール置き場の最後尾の値を表示
    △上記の値でビンゴしたカードの枚数
    △上記の値でリーチしたカードの枚数
 (/get_ball)抽選のリクエスト
   ビンゴゲームの終了状態が終了のときは(/)を表示
   乱数で1~75の数字を作成
   抽選したボール置き場に同じ数字があれば再度やり直し
   なければ、抽選したボール置き場の最後に置く
    △抽選したボール番号と、カード置き場の各カードの当選処理をする。
   抽選したボール置き場が75個あればビンゴゲーム状態を終了とする。
   (/ball)を表示する
 (/list_ball)過去抽選結果表示のリクエスト
   抽選したボール置き場の数値と以下の表中の数値が同じものを反転色等にする
   以下の並びは縦で表示する。
   B: 1~15
   I:15~30
   N:31~45
   G:46~60
   O:61~75
 (/card)BINGOカード登録
   入力フォームを表示
   検査用JavaScriptの埋め込み
 (/card_input)
   登録者名、カード情報をカード置き場に登録 
   登録後(/card_self?name=登録者名)で開く
 (/card_self)
   nameの値のカードを表示
   抽選したボール置き場の値とカードの値が同じときは反転表示
 (/list)
   一覧表示をする。
   登録カードからBINGO、リーチなどの順位を表示
   直近の抽選でBINGO者の表示
   各カードへのリンクを付ける。

次回は、BINGO「Webツール」の抽選機のみ(デザインなし)を作成する。

-- 目次はこちら。PythonでBINGOの「Webツール」をつくる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?