Skip to content

Commit

Permalink
Добавлена локальная база вопросов для викторины
Browse files Browse the repository at this point in the history
  • Loading branch information
rzer committed Jun 21, 2016
1 parent 51a30a6 commit 8878294
Show file tree
Hide file tree
Showing 25 changed files with 582 additions and 379 deletions.
17 changes: 0 additions & 17 deletions .gitattributes

This file was deleted.

43 changes: 0 additions & 43 deletions .gitignore

This file was deleted.

13 changes: 0 additions & 13 deletions README.md

This file was deleted.

2 changes: 1 addition & 1 deletion obj/MurClubBotConfig.old
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
</define>
<define append="true">
<name>CONFIG::timeStamp</name>
<value>'21.11.2015'</value>
<value>'21.06.2016'</value>
</define>
<define append="true">
<name>CONFIG::air</name>
Expand Down
2 changes: 1 addition & 1 deletion obj/MurClubBotConfig.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
</define>
<define append="true">
<name>CONFIG::timeStamp</name>
<value>'23.11.2015'</value>
<value>'21.06.2016'</value>
</define>
<define append="true">
<name>CONFIG::air</name>
Expand Down
8 changes: 4 additions & 4 deletions src/Main.as
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package {

import commands.LongCommand;
import common.QuizQuestions;
import common.StringUtils;
import controllers.ChatBot;
import controllers.Custom;
Expand All @@ -15,7 +16,7 @@ package {
import controllers.Voter;
import controllers.Words;
import controllers.You;
import elements.Console;
import simplify.Console;
import elements.Server;
import flash.display.Sprite;
import flash.sampler._setSamplerCallback;
Expand All @@ -31,15 +32,14 @@ package {
*/
public class Main extends Sprite {

[Embed(source = "../lib/iFlash 705.ttf", fontName="PixelFont", embedAsCFF= "false")]
public var PixelFont:Class;


public function Main():void {

Console.init(this);
Console.write("MurClubBot v2.1. Авторы: rzer, fieign" + "A".charCodeAt(0) + ", " + "Z".charCodeAt(0));
Console.toggle();

QuizQuestions.init();
Login.init();
Server.init();
Room.init();
Expand Down
2 changes: 1 addition & 1 deletion src/common/GifUploader.as
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package common {
import controllers.Login;
import elements.Console;
import simplify.Console;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
Expand Down
119 changes: 119 additions & 0 deletions src/common/QuizQuestions.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
package common {
import simplify.Console;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;

/**
* Локальная база данных вопросов
* @author rzer
*/
public class QuizQuestions {

private static var indexPath:String = File.applicationDirectory.nativePath + "/" + "quiz_index.bdb";
private static var dbPath:String = File.applicationDirectory.nativePath + "/" + "quiz_db.bdb";

private static var indexFile:File = new File(indexPath);
private static var dbFile:File = new File(dbPath);

private static var index:FileStream;
private static var db:FileStream;

private static var mode:String = "";

static private var fs:FileStream;

//Парсим вопросы из файла
public static function parse(path:String, encoding:String = "windows-1251"):void{

var file:File = new File(File.applicationDirectory.nativePath + "/" + path);
fs = new FileStream();
fs.open(file, FileMode.READ);

var text:String = fs.readMultiByte(fs.bytesAvailable, encoding);
fs.close();

var list:Array = text.split("\r\n");

for (var i:int = 0; i < list.length; i++){
var line:String = list[i];
var temp:Array = line.split("|");
add(temp[0], temp[1]);
}

Console.info("complete parse " + list.length);

}

public static function startMode(newMode:String):void{

if (mode == newMode) return;

stopMode();
mode = newMode;

index = new FileStream();
db = new FileStream();

index.open(indexFile, newMode);
db.open(dbFile, newMode);
}


//Переключаем мод - выключаем предыдущий режим
static public function stopMode():void {

if (mode == "") return;

mode = "";

index.close();
db.close();
}


public static function add(question:String, answer:String):void{

startMode(FileMode.WRITE);

var pos:uint = db.position;

index.writeUnsignedInt(pos);
db.writeUTF(question + "|" + answer);


}

static public function init():void {
Console.register("/qp", parse);
Console.register("/qt", test);
}

static private function test():void {
Console.info(JSON.stringify(getRandom()));
}

public static function getRandom():Object{

startMode(FileMode.READ);

var totalQuestions:int = indexFile.size / 4;
var questionNumber:int = Math.floor(totalQuestions * Math.random());

trace(questionNumber, totalQuestions);

index.position = questionNumber * 4;

var pos:uint = index.readUnsignedInt();

db.position = pos;

var str:String = db.readUTF();
var list:Array = str.split("|");
return {question:list[0], answer:list[1]};
}


}

}
2 changes: 1 addition & 1 deletion src/controllers/ChatBot.as
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package controllers {
import common.StringUtils;
import elements.Console;
import simplify.Console;
import elements.Server;
import flash.events.Event;
import flash.net.URLLoader;
Expand Down
4 changes: 2 additions & 2 deletions src/controllers/Custom.as
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package controllers {
import elements.Console;
import simplify.Console;


/**
Expand All @@ -24,7 +24,7 @@ package controllers {
Login.login();

//Регистрируем функции как команды
Console.registerCommand("/test", test);
Console.register("/test", test);

//Ниже добавляй подсказки в консоль
Console.info("Custom:");
Expand Down
4 changes: 2 additions & 2 deletions src/controllers/Login.as
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package controllers {
import elements.Console;
import simplify.Console;
import elements.Server;
import flash.events.Event;
import flash.events.IOErrorEvent;
Expand Down Expand Up @@ -28,7 +28,7 @@ package controllers {
private static var hash:String = "";

public static function init():void {
Console.registerCommand("/login", login);
Console.register("/login", login);
Console.info("Авторизация:");
Console.tip("/login email password - авторизация в мурклубе");
}
Expand Down
6 changes: 3 additions & 3 deletions src/controllers/Mafia.as
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package controllers {
import common.ArrayUtils;
import common.MafiaPhrases;
import common.MafiaPlayer;
import elements.Console;
import simplify.Console;
import elements.Server;
import simplify.Call;
import simplify.ObjectEvent;
Expand Down Expand Up @@ -112,8 +112,8 @@ package controllers {
[MAFIA, MAFIA, BOSS_OR_SLUT, WEREWOLF, CIVILIAN, CIVILIAN, KOMSOMOL, DOCTOR, JOURNALIST, JUDGE, OPER, MANIAC_OR_MIRROR],
];

Console.registerCommand("/startMafia", start);
Console.registerCommand("/stopMafia", stop);
Console.register("/startMafia", start);
Console.register("/stopMafia", stop);

Console.info("Mafia:");
Console.tip("/startMafia, /stopMafia - запускаем/останавливаем мафию");
Expand Down
10 changes: 5 additions & 5 deletions src/controllers/Moderator.as
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package controllers {
import elements.Console;
import simplify.Console;
import elements.Server;
import common.StringUtils;

Expand All @@ -12,10 +12,10 @@ package controllers {

public static function init():void {

Console.registerCommand("/ban", ban);
Console.registerCommand("/unban", unban);
Console.registerCommand("/prison", prison);
Console.registerCommand("/unprison", unprison);
Console.register("/ban", ban);
Console.register("/unban", unban);
Console.register("/prison", prison);
Console.register("/unprison", unprison);

Console.info("Модератор:");
Console.tip("/ban, /unban mID reason time - Забанить/Разбанить пользователя");
Expand Down
Loading

0 comments on commit 8878294

Please sign in to comment.