bool MalcevSet::isNormalClosure() const { if( isNormal != dontknow ) return isNormal; if( ! isBasis ) error("Attempt to use MalcevSet::isNormalClosure before the set is full."); const BasicCommutators& BC = theCollector.commutators(); MalcevSet* This = (MalcevSet *)this; // to break physical constness //the subgroup is normal iff any w^x is in the set for(int i = 1; i < BC.theFirstOfWeight(BC.nilpotencyClass() ); i++) { if( ! theSet.bound( Generator(i) ) ) continue; PolyWord W = theSet.valueOf( Generator(i) ); for(int j = 1; j <= BC.numberOfGenerators(); j++) { PolyWord conj = collect( Letter(j, -1) * W * Letter(j, 1) ); checkMembership(conj); if(! conj.isEmpty() ) { This->isNormal = no; return false; } } } This->isNormal = yes; return true; }
DirectIP::DirectIP() { max_addr_len = 15; eye.position = Point(2.0, 2.0, 5.0); world.push_back(object_ptr(new Text())); world.push_back(object_ptr(new Body(Point(2, 3, 0.9), Size(0.9, 0.3, 0.2), Color(1,1,1), CUBE_BORDERED))); // Övre rutan world.push_back(object_ptr(new Body(Point(2, 2, 0.9), Size(2.3, 0.3, 0.2), Color(1,1,1), CUBE_BORDERED))); // Inputrutan world.push_back(object_ptr(new Body(Point(2, 1, 0.9), Size(0.9, 0.3, 0.2), Color(1,1,1), CUBE_BORDERED))); // Undre rutan world.push_back(object_ptr(new Text("PLAYER 1", Letter(Size(0.07,0.15,0.0), 0.03, 2.5, Color(0,0,0)), Point(2, 3, 1.1+MILLI)))); world.push_back(object_ptr(new Text("PLAYER 2", Letter(Size(0.07,0.15,0.0), 0.03, 2.5, Color(0,0,0)), Point(2, 1, 1.1+MILLI)))); world.push_back(object_ptr(new Text("IP:", Letter(Size(0.07,0.15,0.0), 0.03, 2.5, Color(0,0,0)), Point(1.3, 2, 1+MILLI)))); }
//ответ на команду RETR void MailHandler::getMessage(SOCKET client_socket, string req, User& curUser){ string request = req; string answer; int cnt = 0, cap = 0, num=0; cnt = curUser.lettersCount(); if (req.size() > 5){ string temp = request.substr(5, 1); try{ num = stoi(temp, nullptr); } catch (invalid_argument){ cout << "Error! Invalid argument!" << endl; answer.append("-ERR Invalid argument!"); } if (num <= cnt && num > 0) { Letter let = Letter(); let = curUser.getLetter(num); if (let.getMarker() == false){ cout << "number is " << num << endl; answer.append(responses[1] + to_string(curUser.letterSize(num)) + " octets\r\n"); answer.append("From: " + let.getFrom()); answer.append("\r\nTo: " + let.getTo()); answer.append("\r\nSubject: " + let.getSubject()); answer.append("\r\nData: " + let.getData() + "\r\n."); } else answer.append("-ERR message " + to_string(num) + " was deleted\r\n"); } else answer.append(responses[0]); } else answer.append(responses[0]); sendLine(client_socket, answer.c_str()); }
void DirectIP::OnKeyDown(const ::SDL_KeyboardEvent& key) { switch(key.keysym.sym) { case SDLK_UP: if(!addr.empty()) SetNextActivity(new Fade(new Game(true, addr, connection_ptr()), world, eye), true); break; case SDLK_DOWN: if(!addr.empty()) SetNextActivity(new Fade(new Game(false, addr, connection_ptr()), world, eye), true); break; case SDLK_ESCAPE: SetNextActivity(new Fade(new Menu, world, eye), true); break; default: break; } // Hantera input, sortera bort oönskade tecken. HandleInput(key, addr); addr = StripCharacters(addr, "abcdefghijklmnopqrstuvwxyz,!?+-:/ ="); if(addr.size() >= max_addr_len) addr = addr.substr(0, max_addr_len); world[0] = object_ptr(new Text(addr, Letter(Size(0.05,0.07,0.0), 0.03, 2.5, Color(0,0,0)), Point(2.4, 2, 1+MILLI), Size(1.3, 0.2,0), Color(0.3,0.3,0.3), Rotation(), false)); }
bool Letter::isLetter(char ch) { try { Letter(ch); } catch (std::invalid_argument e) { return false; } return true; }
std::string ID::GetIDPart1(std::string MAChash,std::string MAC)//****** { std::string key = ""; for (int i = 0; i < 6; i++) //co 4-ty znak #MAC ^ co 3-ci znak MAC licz¹c od 2 { // ASCII 48-57, 65-90, 97-122 key.push_back(Letter(MAC[i * 3 + 1], MAChash[i * 3])); } return key; }
void MalcevSet::makeNormalClosure() { if(isNormal == yes) return; const BasicCommutators& BC = theCollector.commutators(); int nilClass = BC.nilpotencyClass(); int upper_i = BC.theFirstOfWeight(nilClass); for(int i = 1; i <= upper_i; i++) { if( ! theSet.bound( Generator(i) ) ) continue; PolyWord Wi = theSet.valueOf( Generator(i) ); PolyWord WiInv = Wi.inverse(); // trying generators of the group for(int j = 1; j <= BC.numberOfGenerators(); j++) { Generator g(j); PolyWord comm = collect( Wi * Letter(g,-1) * WiInv * Letter(g,1) ); addWord(comm); } // trying basis elements int upper_j = BC.theFirstOfWeight(nilClass - BC.weightOf(i) + 1); if(upper_j > i) upper_j = i; for(int j = 1; j < upper_j; j++) { if( ! theSet.bound( Generator(j) ) ) continue; PolyWord Wj = theSet.valueOf( Generator(j) ); PolyWord comm = collect( Wi * Wj * WiInv * Wj.inverse() ); addWord(comm); } } isBasis = true; isNormal = yes; }
MailHandler::MailHandler() { // в конструкторе добавляются такие юзера в users, users - private поле в заголовочном users.push_back(User("wladez", "password")); users.push_back(User("azat", "12345")); users.push_back(User("lera", "1q2w3e")); // FOR TESTS! //и нулевому юзеру добавляются два тестовых письма Letter letter = Letter(); letter.addFrom((string)"lera"); letter.addSubject((string)"Just for fun"); letter.addTo((string)"wladez"); letter.addData((string)"Hi! How are you?"); users[0].addLetter(letter); Letter letter1 = Letter(); letter1.addFrom((string)"azat"); letter1.addSubject((string)"Study"); letter1.addTo((string)"wladez"); letter1.addData((string)"You need to get zachot for seti!"); users[0].addLetter(letter1); }
//------------------------------------------------------------------------------------------ void Server::clientConnected(int client) { log_->debug("Client connected..."); fcntl(client, F_SETFL, O_NONBLOCK); //std::string answ="220 Ready to serve\n"; //send(client, answ.c_str(), answ.length(), 0); sendStr(client, "220 Ready to serve\n"); //Letter letter(accounts_,log_); //letter.accepting==false; //clients_[client]=letter; clients_.insert( std::map< int, Letter >::value_type ( client, Letter(accounts_,log_) ) ); //log_->debug("Clients: " + itoa(clients_.size())); //log_->debug("ClientID: " + itoa(client)); }
Letter Clattr::uiData() { return Letter( ui->inputAlign->currentIndex(), ui->inputAttachement->document()->toPlainText(), ui->boolAttachement->checkState(), ui->inputClosing->text(), ui->inputDate->date(), ui->inputFontsize->value(), ui->inputLanguage->text(), ui->inputObject->text(), ui->inputOpening->text(), ui->inputPackages->document()->toPlainText(), ui->inputReceiver->document()->toPlainText(), ui->inputSenderaddress->document()->toPlainText(), ui->inputSendername->text(), ui->inputSignature->document()->toPlainText(), ui->inputTemplate->currentText(), ui->inputText->document()->toPlainText()); }
const wxUint8* wxTimeFont::Letter(wxChar letter) const { // return the known letters switch (letter) { case wxT('0'): return Letter(wxTimeFont::ELC_0); break; case wxT('1'): return Letter(wxTimeFont::ELC_1); break; case wxT('2'): return Letter(wxTimeFont::ELC_2); break; case wxT('3'): return Letter(wxTimeFont::ELC_3); break; case wxT('4'): return Letter(wxTimeFont::ELC_4); break; case wxT('5'): return Letter(wxTimeFont::ELC_5); break; case wxT('6'): return Letter(wxTimeFont::ELC_6); break; case wxT('7'): return Letter(wxTimeFont::ELC_7); break; case wxT('8'): return Letter(wxTimeFont::ELC_8); break; case wxT('9'): return Letter(wxTimeFont::ELC_9); break; case wxT('.'): return Letter(wxTimeFont::ELC_Dot); break; case wxT(':'): return Letter(wxTimeFont::ELC_Colon); break; case wxT('/'): return Letter(wxTimeFont::ELC_Slash); break; case wxT('-'): return Letter(wxTimeFont::ELC_Dash); break; case wxT(' '): return Letter(wxTimeFont::ELC_Blank); break; default: return NULL; } }
void FbLetterFunction::Execute(wxSQLite3FunctionContext& ctx) { if (ctx.GetArgCount() == 1) { ctx.SetResult(Letter(ctx.GetString(0))); } }
// on "init" you need to initialize your instance bool Game::init() { if ( !LayerColor::init()) {//initWithColor(Color4B(255, 0, 0, 255)) ) { return false; } // add background music CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("action.mp3", true); // enable touch events setTouchEnabled(true); // get screen size Size screenSize = Director::getInstance()->getVisibleSize(); // add menu button MenuItemLabel* menuItem = MainMenu::createButton("End Game", CC_CALLBACK_1(Game::menuCallback, this)); menuItem->setPosition(Point(screenSize.width - menuItem->getContentSize().width/2 - Letter::PADDING, menuItem->getContentSize().height/2 + Letter::PADDING)); // create menu, it's an autorelease object auto menu = Menu::create(menuItem, NULL); menu->setPosition(Point::ZERO); this->addChild(menu, 1); // display score on the screen scoreLabel = LabelTTF::create("Score: 0", "Arial", 35); scoreLabel->setColor(Color3B(255, 255, 255)); scoreLabel->setPosition(Point(Letter::PADDING + scoreLabel->getContentSize().width/2, screenSize.height-scoreLabel->getContentSize().height/2 - Letter::PADDING)); this->addChild(scoreLabel, 1); // display moves on the screen movesLabel = LabelTTF::create("Moves: 20", "Arial", 35); movesLabel->setColor(Color3B(255, 255, 255)); movesLabel->setPosition(Point(screenSize.width - movesLabel->getContentSize().width/2 - Letter::PADDING, screenSize.height - movesLabel->getContentSize().height/2 - Letter::PADDING)); this->addChild(movesLabel, 1); // set number of moves moves = STARTING_MOVES; // create board Board board = Board(this); // whether a letter has been selected bool letterSelected = false; auto listener = EventListenerTouch::create(Touch::DispatchMode::ONE_BY_ONE); listener->setSwallowTouches(false); listener->onTouchBegan = [=](Touch* touch, Event* event) mutable { //log("touch began"); Point location = touch->getLocation();//->getLocationInView(); // TODO: Detect touches on labels for (int i = 0; i < Board::BOARD_SIZE; i++) { vector<Letter> row = board.letters[i]; for (int j = 0; j < Board::BOARD_SIZE; j++) { Letter l = row[j]; if (location.getDistance(l.posn) < 30) { //log("touched %c", l.letter); l.label->setColor(cocos2d::Color3B(0, 255, 0)); //cocos2d::log("letter selected %s, %c", letterSelected ? "true" : "false", board.selected.letter); if (!letterSelected) { // first letter selected board.selected = l; letterSelected = true; //cocos2d::log("set selected to %c, %s", board.selected.letter, letterSelected ? "true" : "false"); } else if (board.selected != l) { // second selected letter is not the same as first board.letterSwap(l); letterSelected = false; UpdateScore(); UpdateMoves(); } else { // same letter was selected //cocos2d::log("you selected the same letter %c", board.selected.letter); // set letterSelected to false letterSelected = false; // reset selected color board.selected.label->setColor(cocos2d::Color3B(255, 255, 255)); // set selected letter to empty Letter board.selected = Letter(); } return true; } } } return false; }; // unused listeners //listener->onTouchMoved = [](Touch* touch, Event* event) { log("touch moved"); }; //listener->onTouchEnded = [](Touch* touch, Event* event) { log("touch ended"); }; //listener->onTouchCancelled = [](Touch* touch, Event* event) { log("touch canceled"); }; // The priority of the touch listener is based on the draw order of sprite //EventDispatcher::getInstance()->addEventListenerWithSceneGraphPriority(listener, sprite); // Or the priority of the touch listener is a fixed value EventDispatcher::getInstance()->addEventListenerWithFixedPriority(listener, 100); return true; }
bool MalcevSet::decomposeWord(const PolyWord& w, PolyWord& decomp) const { if( ! isBasis ) error("Attempt to use MalcevSet::decomposeWord before the set is full."); PolyWord remainder = theCollector.collect(w); decomp = PolyWord(); // try to decompose the remainder while( ! remainder.isEmpty() && theSet.bound( leader(remainder) ) ) { PolyWord divisor = theSet.valueOf( leader(remainder) ); if( absPower(remainder) % absPower(divisor) != 0 ) break; // The remainder can be reduced. Do it. int divPower = power(remainder) / power(divisor); decomp.append( Letter( leader(remainder), divPower ) ); if( divPower < 0 ) { divPower = - divPower; } else { divisor = theCollector.inverse(divisor); } for(int i = 0; i < divPower; i++) { remainder = theCollector.multiply(divisor, remainder); } } // if the remainder cannot be decomposed if( ! remainder.isEmpty() ) { decomp = PolyWord(); return false; } // if the remainder initially was empty if( decomp.isEmpty() ) return true; // initially decomp is a series of letters (gen, power), // where gen is a leader of decomposition component and // power is its power // now translate decomp to Malcev basis terms: replace // gen with index of basis word having leader gen int curElement = 0; // index of current basis element PolyWordIterator iter(decomp); iter.startFromLeft(); for( int c = 1; c <= theCollector.commutators().theHirschNumber(); c++ ) { Generator theLeader(c); if( ! theSet.bound(theLeader) ) continue; ++curElement; if( iter.thisLetter().gen == theLeader ) { iter.thisLetter().gen = Generator(curElement); iter.stepRight(); if( iter.done() ) break; } } return true; }
/* * Friend functions */ Letter operator+(const Letter& let1, const Letter& let2) { return Letter((let1.m_num + let2.m_num) % MAX_NALPHA); }