Jump to content

cyklop77

User
  • Posts

    1,770
  • Joined

  • Last visited

  • Days Won

    9

Posts posted by cyklop77

  1. помогите пожалуйста разобраться в коде:

    Board = function(width, height, background){   this.width = width;    this.height = height;  this.background = background;    this.Create();}Board.prototype = {  Create: function(){    console.log('create');    var board = $('<div class="board" id="board"></div>').css({      width: this.width + 'px',      height: this.height + 'px',      background: this.background    });    $('#game').append(board);  }}Qwerty = function(){   this.Create();}$(document).ready(function(){  var board = new Board(500, 500, 'orange');  var board = new Qwerty();});

    здесь я, пользуясь конструктором Board, создаю объект Board. затем через прототип родителю Board присваиваю функцию Create(). другими словами, я создаю функцию Object.Create()

     

    следовательно любая функция, конструктором которой является Object, будет иметь доступ к Create()

     

    я проверяю это, создав объект Qwerty. и ожидаю увидеть в консоли 2 раза 

    console.log('create');

    ,но вижу только один раз. помогите пожалуйста понять в чём я ошибся?

  2. помогите пожалуйста понять как на codepen.io после написания js-скрипта запустить его. обычно у подобных сервисов есть кнопочка run, которая служит для запуска скрипта. но здесь её нет

  3. 1) Какой же он синглтон если два инстанса создавать хотите?

    2) Вторая версия не работает, потому что надо self.getInstance()

    ну второй инстанс это просто для проверки. чтобы сравнить с первым и выяснить работает ли синглтон как положено

    ребята, а вот этот кусок не слишком уродливо смотрится? вменяемые люди так делают?

    for (var y = 0; y < self.y; y = y + 2){  if(x%2){    self.board[x][y] = 1;  }else{    self.board[x][y] = 0;  }}for (var y = 1; y < self.y; y = y + 2){  if(x%2){    self.board[x][y] = 0;  }else{    self.board[x][y] = 1;  }       } 

    ... даже если так переписываю, то всё равно кошки скребут на душе:

    for (var x = 0; x < self.x; x++){  self.board[x] = [];  for (var y = 0; y < self.y; y = y + 2){    x%2 ? self.board[x][y] = 1 : self.board[x][y] = 0;  }  for (var y = 1; y < self.y; y = y + 2){    x%2 ? self.board[x][y] = 0 : self.board[x][y] = 1;          }     }

    как бы вы сделали?(только без выкрутасов)

  4. неее, дядя доктор. я это уже всё проходил давно и в интернетах кучу подобных советов читал. это всё равно что сказать чучмеку: "зачем тебе учиться грамоте? ты подметай, подметай и будешь всегда при деньгах"

     

    а задачи конкретной у меня нету. ну разве что ознакомиться с паттернами

  5. помогите пожалуйста разобраться в в вопросе. привожу код на питоне, но сам язык здесь не важен потому что вопрос принципиальный. вот простыня кода, но чтобы ответить на вопрос смотреть его не обязательно:

    from datetime import datetime, date, timeimport pprintimport randomclass GameElement(object):  def __init__(self, name):    self.name = nameclass Boat(GameElement):  def __init__(self, name, peoples, speed, color, oars):    GameElement.__init__(self, name)    self.peoples = peoples    self.speed = speed    self.color = color    self.oars = oars    Boat.quantity += 1  quantity = 0  def __str__(self):    return str(self.__class__.__name__) + ': ' + str(self.__dict__)class Raft(GameElement):  def __init__(self, name, peoples, speed, color, sails):    GameElement.__init__(self, name)    self.peoples = peoples    self.speed = speed    self.color = color    self.sails = sails    Raft.quantity += 1  quantity = 0  def __str__(self):    return str(self.__class__.__name__) + ': ' + str(self.__dict__)class BoatsGenerator(object):  def factory(name, peoples, speed, color, oars):    return Boat(name, peoples, speed, color, oars)    class RaftsGenerator(object):  def factory(name, peoples, speed, color, sails):    return Raft(name, peoples, speed, color, sails)class World(object):  def __new__(cls,*dt,**mp):    if cls.obj is None:      cls.obj = object.__new__(cls,*dt,**mp)      World.quantity += 1            World.boats = []      World.rafts = []      colors = {        1: 'red',        2: 'green',        3: 'yellow',        4: 'blue',        5: 'magenta',      }      for i in range(4):        World.boats.append(BoatsGenerator.factory(          name='beda_'+str(i),           peoples=random.randint(5, 10),           speed=(random.randint(5, 10)) * 10,           color=colors[random.randint(1, 5)],           oars=random.randint(0, 2)        ))      for i in range(4):        World.rafts.append(RaftsGenerator.factory(          name='ra_'+str(i),           peoples=random.randint(1, 4),           speed=(random.randint(1, 3)) * 10,           color=colors[random.randint(1, 5)],           sails=random.randint(0, 1)        ))    return cls.obj      obj = None  quantity = 0  def __str__(self):    return str(self.__class__.__name__) + ': ' + str(self.__dict__)if __name__ == '__main__':  world1 = World()  world1.creared_at = datetime.now().strftime("%A, %d. %B %Y %I:%M%p")  print(world1)  print('worlds quantity: ' + str(World.quantity))  for boat in World.boats:    print(boat)  for raft in World.rafts:    print(raft)         

     

    здесь происходит приблизительно следующее. я создаю класс с общим для всех потомков свойством. затем классы для потомков, затем для каждого класса потомка фабрику, затем класс синглтон, который создаёт потомков(о которых я сказал чуть выше)

     

    я поместил указатели на всех созданных потомков в переменную класса синглтона и в конце скрипты вывел всех потомков так:
     

      for boat in World.boats:    print(boat)  for raft in World.rafts:    print(raft)        

    в результате получил в консоль следующий вывод:

    (python3_env)kalinin@kalinin ~/python3/python3_files/boats4 $ python index.pyWorld: {'creared_at': 'Saturday, 05. December 2015 09:40AM'}worlds quantity: 1Boat: {'oars': 2, 'peoples': 7, 'speed': 60, 'color': 'blue', 'name': 'beda_0'}Boat: {'oars': 0, 'peoples': 10, 'speed': 100, 'color': 'yellow', 'name': 'beda_1'}Boat: {'oars': 0, 'peoples': 7, 'speed': 60, 'color': 'magenta', 'name': 'beda_2'}Boat: {'oars': 1, 'peoples': 9, 'speed': 60, 'color': 'red', 'name': 'beda_3'}Raft: {'sails': 1, 'peoples': 1, 'speed': 10, 'color': 'magenta', 'name': 'ra_0'}Raft: {'sails': 1, 'peoples': 2, 'speed': 30, 'color': 'blue', 'name': 'ra_1'}Raft: {'sails': 1, 'peoples': 2, 'speed': 10, 'color': 'magenta', 'name': 'ra_2'}Raft: {'sails': 0, 'peoples': 2, 'speed': 10, 'color': 'magenta', 'name': 'ra_3'}

    но совесть мне нашёптывает в одно ухо, что хорошо бы сделать по человечьи и, используя self, всех потомков поместить в переменную объекта, а не класса. однако дьявол в другое ухо нашёптывает, что если уж у меня синглтон по определению может существовать только в единственном экземпляре, то вполне допустимо оставить всё как есть(то есть использовать пременную класса)

     

    опытные программисты, что посоветуете использовать для хранения указателей? переменную класса или переменную объекта?

  6. вставлять в нужном месте http://jsfiddle.net/9xd8k676/1/

    спасибо. но это не вариант. дело в том, что контент будет браться из БД и неизвестно сколько в нём будет абзацев, да и вообще будет ли он форматирован тегами, возвратами строки и т.п.

  7. помогите пожалуйста решить проблему, если это вообще возможно

     

    вот код: http://jsfiddle.net/9xd8k676/ 
    здесь есть контейнер, который содержит текст и врезку. врезка расположена в верхнем левом углу. но нужно чтобы она была смещена вниз на несколько сот пикселей(точность особая не нужна), относительно своего настоящего положения. и при этом освободившееся место было бы заполнено текстом

  8. в общем я тут наколбасил. извиняюсь, что такую дичь запостил. метод __init__ лишний. хотя я до сих пор не понял почему

     

    правильно будет приблизительно так: 

    ........................class World(object):  def __new__(cls,*dt,**mp):    if cls.obj is None:      cls.obj = object.__new__(cls,*dt,**mp)      World.quantity += 1      boat1 = Boat(name='beda', peoples=8, speed=110, color='red', oars=2)      boat2 = Boat(name='pobeda', peoples=10, speed=120, color='green', oars=2)      raft1 = Raft(name='zevs', peoples=2, speed=10, color='yellow', sails=1)      raft2 = Raft(name='abibas', peoples=3, speed=5, color='maroon', sails=0)      raft3 = Raft(name='qwerty', peoples=1, speed=12, color='orange', sails=1)      ocean1 = Ocean(name='north', temperature=-20)      ocean2 = Ocean(name='india', temperature=10)               print(boat1)      print(boat2)      print('boats quantity: ' + str(Boat.quantity))      print(raft1)      print(raft2)      print(raft3)      print('rafts quantity: ' + str(Raft.quantity))      print(ocean1)      print(ocean2)      print('oceans quantity: ' + str(Ocean.quantity))                     return cls.obj      obj = None  quantity = 0  def __str__(self):    return str(self.__class__.__name__) + ': ' + str(self.__dict__)world1 = World()world1.creared_at = datetime.now().strftime("%A, %d. %B %Y %I:%M%p")print(world1)print('worlds quantity: ' + str(World.quantity))

    но спасибо за попытку помочь

  9. помогите пожалуйста разобраться с синглтоном на python:

     

    код:

    class World(object):  def __new__(cls,*dt,**mp):      if cls.obj is None:          cls.obj = object.__new__(cls,*dt,**mp)      return cls.obj   def __init__(self, name, boss):    self.boss = boss    self.name = name    World.quantity += 1  obj = None  quantity = 0  def __str__(self):    return str(self.__class__.__name__) + ': ' + str(self.__dict__)

    дальше через командную строку я создаю 2 объекта:

    world1 = World('old', boss='demiurg')world2 = World('new', boss='mr. bin')

    и ожидаю, что будет создан объект с атрибутом boss='demiurg', а все последующие экземпляры будут просто ссылаться на этот объект

     

    но в результате я получаю объект с атрибутом boss='mr. bin' :

    kalinin@kalinin ~/python/boats2 $ python index2.pyWorld: {'name': 'new', 'boss': 'mr. bin'}World: {'name': 'new', 'boss': 'mr. bin'}worlds quantity: 2

    мне непонятно как объект, которые создался в первую очередь(boss='demiurg') потом был перезаписал объектом с 'boss': 'mr. bin'

  10.  

    Есть еще пыха ру, но там могут даже матом)
     

    О! Пыха. Она ещё жива, кстати. Знаком с одним великим человеком оттуда. :D

     

    А вообще лучше ищите ИРЛ коммьюнити, намного полезнее. 

     

    дык я же в провинции всё таки, какое тут ирл) это вам не спб/екб

  11. поделитесь пожалуйста рыбным местом

     

    есть ли в рунете активный русскоязычны форум, на котором можно задавать вопросы по программированию. в гугле я не забанен и знаю, что есть киберфорум, программерсфорум, винград, наисходниках и т.д., но спрашивать что-либо на перечисленных форумах это бесполезное занятие. они не дотягивают до таких ресурсов как htmlbook(если говорить про фронтэнд) или LOR(если говорить про ОС)

     

    где вы задаёте вопросы по программированию? или кроме английского stackoverflow вариантов нет?

  12. помогите пожалуйста понять кусочек кода на smallTalk. а если ещё и покажете как можно переписать его на любом современном языке(php, python, ruby), то будет вообще замечательно

     

    в книжке банды четырёх приблизительно на 91 странице есть пример построения лабиринта. я не могу понять следующий кусок кода:

    class Room : public MapSite {                 # класс Room наследуется от класса MapSite  public:                                     # блок общедоступных методов и свойств    Room(int roomNo);                         # метод, принимающий в качестве аргумента челочисленное значение    MapSite* GetSide(Direction) const;        # неведомая штука    void SetSide(Direction, MapSite*);        # неведомая штука    virtual void Enter();                     # переопределение метода Enter(), который наследуется от класса MapSite  private:                                    # блок приватных свойств    MapSite* _sides[4];                       # неведомая штука    int _roomNumber;                          # свойство челочисленного _roomNumber типа} ;

    вот моя попытка переписать этот код на ruby:

    class ApplicationController  def Enter()    .............  endendclass AlbumsController < ApplicationController  @Room = ''  # ?  # ?  def Enter()   .............  end  private    # ?    @_roomNumber = ''end
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy