# Copyright (C) 2016 Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # José Robson Mariano Alves <jose.alves@ifto.edu.br>, 2018. msgid "" msgstr "" "Project-Id-Version: colobot-data 0.1.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: DATE\n" "PO-Revision-Date: 2018-05-15 09:18-0300\n" "Last-Translator: José Robson Mariano Alves <jose.alves@ifto.edu.br>\n" "Language-Team: Portuguese <kde-i18n-pt_BR@kde.org>\n" "Language: pt_PT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 2.0\n" #. type: Title-text #: ../scene.txt:1 #, no-wrap msgid "Remote control #4" msgstr "Controle remoto #4" #. type: Resume-text #: ../scene.txt:2 #, no-wrap msgid "Remote control a bot without using an information exchange post by defining a class for the orders." msgstr "Controle remotamente um robô sem usar uma posto de troca de informações definindo uma classe para os pedidos." #. type: ScriptName-text #: ../scene.txt:3 #, no-wrap msgid "Remote4" msgstr "Remoto4" #. type: \b; header #: ../help/help.E.txt:1 #, no-wrap msgid "Exercise" msgstr "Exercício" #. type: Plain text #: ../help/help.E.txt:2 #, no-wrap msgid "Remote control a slave robot without using an <a object|exchange>information exchange post</a>. The robot should pass over the 6 blue crosses. You must use a <code><a cbot|static>static</a></code> variable to pass the orders to the slave bot." msgstr "Controle remotamente um robô escravo sem usar um <a object|exchange>posto de troca de informações</a>. O robô deve passar pelas 6 cruzes azuis. Você deve usar uma variável <code><a cbot|static>estática</a></code> para passar as ordens para o robô escravo." #. type: Plain text #: ../help/help.E.txt:4 #, no-wrap msgid "The two main actors of this exercise are:" msgstr "Os dois principais atores deste exercício são:" #. type: Bullet: '1)' #: ../help/help.E.txt:5 #, no-wrap msgid "The <a object|botgr>wheeled grabber</a> without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave." msgstr "O <a object|botgr>agarrador com rodas</a> sem uma célula de energia e, portanto, imóvel. Este é o mestre que você deve programar para transmitir ordens ao escravo." #. type: Bullet: '2)' #: ../help/help.E.txt:6 #, no-wrap msgid "The slave <a object|bottr>practice bot</a> which is already programmed and just waits for orders from the master." msgstr "O <a object|bottr>robô de prática</a> escravo que já está programado e apenas aguarda ordens do mestre." #. type: \b; header #: ../help/help.E.txt:8 #, no-wrap msgid "The slave" msgstr "O escravo" #. type: Plain text #: ../help/help.E.txt:9 #, no-wrap msgid "First of all we must understand how the program of the slave works. The <a cbot|class>class</a> <code>order</code> contains two members: <code>m_type</code> is the order to execute (move or turn) and <code>m_param</code> is the distance to move or the rotation angle:" msgstr "Primeiro de tudo, devemos entender como funciona o programa do escravo. A classe <a cbot|class>classe</a> <code>ordem</code> contém dois membros: <code>m_tipo</code> é a ordem para executar (mover ou girar) e <code>m_param</code > é a distância para se mover ou o ângulo de rotação:" #. type: Plain text #: ../help/help.E.txt:11 #, no-wrap msgid "<c/><s/><a cbot|public>public</a> <a cbot|class>class</a> order" msgstr "<c/><s/><a cbot|public>public</a> <a cbot|class>class</a> ordem" #. type: Source code #: ../help/help.E.txt:12 #, no-wrap msgid "" "{\n" "\t<a cbot|int>int</a> m_type = <a cbot|nan>nan</a>;\n" "\t<a cbot|float>float</a> m_param;\n" "}" msgstr "" "{\n" "\t<a cbot|int>int</a> m_tipo = <a cbot|nan>nan</a>;\n" "\t<a cbot|float>float</a> m_param;\n" "}" #. type: Plain text #: ../help/help.E.txt:17 #, no-wrap msgid "A second <a cbot|class>class</a> <code>exchange</code> contains the mechanism for exchanging the orders. We declare a <code><a cbot|static>static</a></code> class member <code>m_order</code> which will contain the order to be executed. The word <code>static</code> insures that the member <code>m_order</code> is shared between all instances of the <a cbot|class>class</a> exchange." msgstr "Uma segunda <a cbot|class>classe</a> <code>troca</ code> contém o mecanismo para trocar as ordens. Nós declaramos um membro de classe <code><a cbot|static>estático</a></code> <code>m_ordem</code> que conterá a ordem a ser executada. A palavra <code>static</code> assegura que o membro <code>m_ordem</code> seja compartilhado entre todas as instâncias da classe <a cbot|class>troca</a>." #. type: Plain text #: ../help/help.E.txt:19 #, no-wrap msgid "<c/><s/><a cbot|public>public</a> <a cbot|class>class</a> exchange" msgstr "<c/><s/><a cbot|public>public</a> <a cbot|class>class</a> troca" #. type: Source code #: ../help/help.E.txt:20 #, no-wrap msgid "" "{\n" "\t<a cbot|static>static</a> <a cbot|private>private</a> order m_order = new order;" msgstr "" "{\n" "\t<a cbot|static>static</a> <a cbot|private>private</a> ordem m_ordem = new ordem;" #. type: Plain text #: ../help/help.E.txt:23 #, no-wrap msgid "<n/>The <code>put</code> method will be used by the master robot for transmitting an order. As long as <code>m_order</code> is different from <code><a cbot|nan>nan</a></code>, the slave has not finished the order and the <code>put</code> method will return <code>false</code> and will do nothing:" msgstr "<n /> O método <code>colocar</code> será usado pelo robô mestre para transmitir um pedido. Enquanto <code>m_ordem</code> é diferente de <code><a cbot|nan>nan</a></code>, o escravo não finalizou o pedido e o método <code>colocar</ code> retornará <code> false </code> e não fará nada:" #. type: Plain text #: ../help/help.E.txt:25 #, no-wrap msgid "<c/><s/>\t<a cbot|synchro>synchronized</a> <a cbot|bool>bool</a> put(order a)" msgstr "<c/><s/>\t<a cbot|synchro>synchronized</a> <a cbot|bool>bool</a> colocar(ordem a)" #. type: Source code #: ../help/help.E.txt:26 #, no-wrap msgid "" "\t{\n" "\t\tif ( m_order.m_type == nan )\n" "\t\t{\n" "\t\t\tm_order = a;\n" "\t\t\treturn true;\n" "\t\t}\n" "\t\telse\n" "\t\t{\n" "\t\t\treturn false;\n" "\t\t}\n" "\t}" msgstr "" "\t{\n" "\t\tif ( m_ordem.m_tipo == nan )\n" "\t\t{\n" "\t\t\tm_ordem = a;\n" "\t\t\treturn true;\n" "\t\t}\n" "\t\telse\n" "\t\t{\n" "\t\t\treturn false;\n" "\t\t}\n" "\t}" #. type: Plain text #: ../help/help.E.txt:38 #, no-wrap msgid "Another method <code>get</code> will be used by the slave to retrieve the orders. This method returns the order to be executed:" msgstr "Outro método <code>pegar</code> será usado pelo escravo para recuperar as ordens. Este método retorna o pedido a ser executado:" #. type: Plain text #: ../help/help.E.txt:40 #, no-wrap msgid "<c/><s/>\t<a cbot|synchro>synchronized</a> order get()" msgstr "<c/><s/>\t<a cbot|synchro>synchronized</a> order pegar()" #. type: Source code #: ../help/help.E.txt:41 #, no-wrap msgid "" "\t{\n" "\t\treturn m_order;\n" "\t}" msgstr "" "\t{\n" "\t\treturn m_ordem;\n" "\t}" #. type: Plain text #: ../help/help.E.txt:45 #, no-wrap msgid "A third method <code>delete</code> will be used by the slave to indicate that the order has been executed:" msgstr "Um terceiro método <code>excluir</code> será usado pelo escravo para indicar que o pedido foi executado:" #. type: Plain text #: ../help/help.E.txt:47 #, no-wrap msgid "<c/><s/>\t<a cbot|synchro>synchronized</a> void delete()" msgstr "<c/><s/>\t<a cbot|synchro>synchronized</a> void excluir()" #. type: Source code #: ../help/help.E.txt:48 #, no-wrap msgid "" "\t{\n" "\t\tm_order.m_type = nan;\n" "\t}\n" "}" msgstr "" "\t{\n" "\t\tm_ordem.m_tipo = nan;\n" "\t}\n" "}" #. type: Plain text #: ../help/help.E.txt:53 #, no-wrap msgid "The main program of the slave contains an instance of the class <code>exchange</code> called <code>list</code>. We put () after the word <code>list</code> in order to create an instance of the class <code>exchange</code>." msgstr "O programa principal do escravo contém uma instância da classe <code>troca</code> chamada <code>lista</code>. Nós colocamos () depois da palavra <code>lista</code> para criar uma instância da classe <code>troca</code>." #. type: Plain text #: ../help/help.E.txt:55 #, no-wrap msgid "<c/><s/><a cbot|extern>extern</a> void object::Slave3( )" msgstr "<c/><s/><a cbot|extern>extern</a> void object::Escravo3( )" #. type: Source code #: ../help/help.E.txt:56 #, no-wrap msgid "" "{\n" "\texchange list();\n" "\torder todo;" msgstr "" "{\n" "\ttroca lista();\n" "\tordem para_fazer;" #. type: Plain text #: ../help/help.E.txt:60 #, no-wrap msgid "The outer <code>while</code> loop lasts for ever. The inner <code>while</code> loop waits for an order by using the <code>get</code> method of the <code>exchange</code> class. As soon as <code>get</code> returns a value different from <code>nan</code>, the while loop stops." msgstr "O laço externo <code>while</code> dura para sempre. O laço interno <code>while</code> espera por uma ordem usando o método <code>pegar</code> da classe <code>troca</code>. Assim que <code>pegar</code> retorna um valor diferente de <code>nan</code>, o laço while para." #. type: Plain text #: ../help/help.E.txt:62 #, no-wrap msgid "<c/><s/>\t<a cbot|while>while</a> ( true )" msgstr "<c/><s/>\t<a cbot|while>while</a> ( true )" #. type: Source code #: ../help/help.E.txt:63 #, no-wrap msgid "" "\t{\n" "\t\t<a cbot|while>while</a> ( true )\n" "\t\t{\n" "\t\t\ttodo = list.get();\n" "\t\t\tif ( todo.m_type != nan ) break;\n" "\t\t\twait(1);\n" "\t\t}" msgstr "" "\t{\n" "\t\t<a cbot|while>while</a> ( true )\n" "\t\t{\n" "\t\t\tpara_fazer = lista.pegar();\n" "\t\t\tif ( para_fazer.m_tipo != nan ) break;\n" "\t\t\twait(1);\n" "\t\t}" #. type: Plain text #: ../help/help.E.txt:71 #, no-wrap msgid "Now we have received the order in the <code>todo</code> variable. All we have to do is execute it:" msgstr "Agora recebemos a ordem na variável <code>para_fazer</code>. Tudo o que temos a fazer é executá-la:" #. type: Plain text #: ../help/help.E.txt:73 #, no-wrap msgid "<c/><s/>\t\tif ( todo.m_type == 1 )" msgstr "<c/><s/>\t\tif ( para_fazer.m_tipo == 1 )" #. type: Source code #: ../help/help.E.txt:74 #, no-wrap msgid "" "\t\t{\n" "\t\t\tmove(todo.m_param);\n" "\t\t}\n" "\t\telse if ( todo.m_type == 2 )\n" "\t\t{\n" "\t\t\tturn(todo.m_param);\n" "\t\t}\n" "\t\telse\n" "\t\t{\n" "\t\t\tmessage(\"Unknown order\");\n" "\t\t}" msgstr "" "\t\t{\n" "\t\t\tmove(para_fazer.m_param);\n" "\t\t}\n" "\t\telse if ( para_fazer.m_tipo == 2 )\n" "\t\t{\n" "\t\t\tturn(para_fazer.m_param);\n" "\t\t}\n" "\t\telse\n" "\t\t{\n" "\t\t\tmessage(\"Ordem desconhecida\");\n" "\t\t}" #. type: Plain text #: ../help/help.E.txt:86 #, no-wrap msgid "As soon as the execution of the order is finished, we must call the <code>delete</code> method so the master knows that another order can be sent:" msgstr "Assim que a execução do pedido estiver concluída, devemos chamar o método <code>excluir</code> para que o mestre saiba que outro pedido pode ser enviado:" #. type: Plain text #: ../help/help.E.txt:88 #, no-wrap msgid "<c/><s/>\t\tlist.delete();" msgstr "<c/><s/>\t\tlista.excluir();" #. type: Source code #: ../help/help.E.txt:89 #, no-wrap msgid "" "\t}\n" "}" msgstr "" "\t}\n" "}" #. type: \b; header #: ../help/help.E.txt:92 #, no-wrap msgid "The master" msgstr "O mestre" #. type: Plain text #: ../help/help.E.txt:93 #, no-wrap msgid "In the master we write an function called <code>SendOrder</code> which will send an order to the slave:" msgstr "No mestre nós escrevemos uma função chamada <code>EnviarOrdem</code> que irá enviar um pedido para o escravo:" #. type: Plain text #: ../help/help.E.txt:95 #, no-wrap msgid "<c/><s/>void object::SendOrder(float order, float param)" msgstr "<c/><s/>void object::EnviarOrdem(float ordem, float param)" #. type: Source code #: ../help/help.E.txt:96 #, no-wrap msgid "" "{\n" "\texchange list();\n" "\torder todo();\n" "\t\n" "\ttodo.m_type = order;\n" "\ttodo.m_param = param;\n" "\t\n" "\twhile ( list.put(todo) == false )\n" "\t{\n" "\t\twait(1);\n" "\t}\n" "}" msgstr "" "{\n" "\ttroca lista();\n" "\tordem para_fazer();\n" "\t\n" "\tpara_fazer.m_tipo = ordem;\n" "\tpara_fazer.m_param = param;\n" "\t\n" "\twhile ( lista.colocar(para_fazer) == false )\n" "\t{\n" "\t\twait(1);\n" "\t}\n" "}" #. type: Plain text #: ../help/help.E.txt:109 #, no-wrap msgid "" "The <code>while</code> loop waits until a pending order has been terminated, that is the slaved has exited from the <code>get</code> method and the <code>delete</code> method has been called.\n" "Now the main program of the master is very simple:" msgstr "" "O laço <code>while</code> aguarda até que uma ordem pendente seja finalizada, ou seja, o escravo tenha saído do método <code>pegar</ code> e o método <code>excluir</code> tenha sido chamado . \n" "Agora o programa principal do mestre é muito simples:" #. type: Plain text #: ../help/help.E.txt:112 #, no-wrap msgid "<c/><s/>extern void object::Remote4( )" msgstr "<c/><s/>extern void object::Remoto4( )" #. type: Source code #: ../help/help.E.txt:113 #, no-wrap msgid "" "{\n" "\tSendOrder(1, 20); // move(20);\n" "\tSendOrder(2, 90); // turn(90);\n" "\tSendOrder(1, 20); // move(20);\n" "\tSendOrder(2, 90); // turn(90);\n" "\tSendOrder(1, 10); // move(10);\n" "\tSendOrder(2, 90); // turn(90);\n" "\tSendOrder(1, 10); // move(10);\n" "\tSendOrder(2,-90); // turn(-90);\n" "\tSendOrder(1, 10); // move(10);\n" "}" msgstr "" "{\n" "\tEnviarOrdem(1, 20); // move(20);\n" "\tEnviarOrdem(2, 90); // turn(90);\n" "\tEnviarOrdem(1, 20); // move(20);\n" "\tEnviarOrdem(2, 90); // turn(90);\n" "\tEnviarOrdem(1, 10); // move(10);\n" "\tEnviarOrdem(2, 90); // turn(90);\n" "\tEnviarOrdem(1, 10); // move(10);\n" "\tEnviarOrdem(2,-90); // turn(-90);\n" "\tEnviarOrdem(1, 10); // move(10);\n" "}" #. type: Plain text #: ../help/help.E.txt:125 #, no-wrap msgid "<format key><key help/></format> show these instruction at any time." msgstr "<format key><key help/></format> mostra essas instruções a qualquer momento." #. type: \t; header #: ../help/help.E.txt:128 #, no-wrap msgid "See also" msgstr "Veja também" #. type: Plain text #: ../help/help.E.txt:129 #, no-wrap msgid "<a command>Controls</a> and <a cbot>programming</a>." msgstr "<a command>Controles e <a cbot>Linguagem CBOT</a>"