colobot-data/levels/exercises/chapter007/level003/po/train703.pot

376 lines
10 KiB
Plaintext

# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: DATE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: One-char language identifier
#: levels-po/exercises/chapter007/level003/scene_langchar.txt:1
#, no-wrap
msgid "E"
msgstr ""
#. type: Title-text
#: levels/exercises/chapter007/level003/scene.txt:1
#, no-wrap
msgid "Remote control #5"
msgstr ""
#. type: Resume-text
#: levels/exercises/chapter007/level003/scene.txt:2
#, no-wrap
msgid ""
"Remote control a bot without using an information exchange post by storing "
"the orders."
msgstr ""
#. type: ScriptName-text
#: levels/exercises/chapter007/level003/scene.txt:3
#, no-wrap
msgid "Remote5"
msgstr ""
#. type: \b; header
#: levels/exercises/chapter007/level003/help/help.E.txt:1
#, no-wrap
msgid "Exercise"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:3
#, 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. "
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:5
#, no-wrap
msgid "The two main actors of this exercise are:\n"
msgstr ""
#. type: Bullet: '1)'
#: levels/exercises/chapter007/level003/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 ""
#. type: Bullet: '2)'
#: levels/exercises/chapter007/level003/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 ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:9
#, no-wrap
msgid ""
"The orders shall be stored, so the master will be able to transmit several "
"orders without waiting for each order being processed. We use an <a "
"cbot|array>array</a> for this purpose."
msgstr ""
#. type: \b; header
#: levels/exercises/chapter007/level003/help/help.E.txt:10
#, no-wrap
msgid "The slave"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:12
#, 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 ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:14
#, no-wrap
msgid "<c/><s/><a cbot|public>public</a> <a cbot|class>class</a> order"
msgstr ""
#. type: \s; block (usually verbatim code)
#: levels/exercises/chapter007/level003/help/help.E.txt:18
#, no-wrap
msgid ""
"{\n"
"\t<a cbot|int>int</a> m_type;\n"
"\t<a cbot|float>float</a> m_param;\n"
"}"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:20
#, 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_fifo</code> which will "
"contain the list of orders to be executed. The word <code>static</code> "
"insures that the member <code>m_fifo</code> is shared between all instances "
"of the <a cbot|class>class</a> exchange."
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:22
#, no-wrap
msgid "<c/><s/>{"
msgstr ""
#. type: \s; block (usually verbatim code)
#: levels/exercises/chapter007/level003/help/help.E.txt:23
#, no-wrap
msgid ""
"\t<a cbot|static>static</a> <a cbot|private>private</a> order m_fifo[] = "
"null;"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:25
#, no-wrap
msgid ""
"The <code>put</code> method will be used by the master robot for "
"transmitting an order. The order will simply be added at the end of the "
"<code>m_fifo</code> array:"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:27
#, no-wrap
msgid "<c/><s/>\t<a cbot|synchro>synchronized</a> void put(order a)"
msgstr ""
#. type: \s; block (usually verbatim code)
#: levels/exercises/chapter007/level003/help/help.E.txt:30
#, no-wrap
msgid ""
"\t{\n"
"\t\tm_fifo[sizeof(m_fifo)] = a;\n"
"\t}"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:32
#, 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. If the list is empty, "
"<code>null</code> will be returned and the robot must wait for more "
"orders. Otherwise the first order in the list must be returned and the "
"remaining orders must be \"scrolled up\". As an array can not be "
"\"shortened\" we use a temporary array <code>copy</code>¦:"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:34
#, no-wrap
msgid "<c/><s/>\t<a cbot|synchro>synchronized</a> order get()"
msgstr ""
#. type: \s; block (usually verbatim code)
#: levels/exercises/chapter007/level003/help/help.E.txt:46
#, no-wrap
msgid ""
"\t{\n"
"\t\tif ( sizeof(m_fifo) == 0 ) return null;\n"
"\n"
"\t\torder a = m_fifo[0];\n"
"\t\torder copy[] = null;\n"
"\t\tfor ( int i=1 ; i<sizeof(m_fifo) ; i++ )\n"
"\t\t{\n"
"\t\t\tcopy[i-1] = m_fifo[i];\n"
"\t\t}\n"
"\t\tm_fifo = copy;\n"
"\t\treturn a;\n"
"\t}"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:48
#, 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 ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:50
#, no-wrap
msgid "<c/><s/><a cbot|extern>extern</a> void object::Slave5( )"
msgstr ""
#. type: \s; block (usually verbatim code)
#: levels/exercises/chapter007/level003/help/help.E.txt:53
#, no-wrap
msgid ""
"{\n"
"\texchange list();\n"
"\torder todo;"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:55
#, 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>null</code>, the while loop stops."
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:57
#, no-wrap
msgid "<c/><s/>\t<a cbot|while>while</a> ( true )"
msgstr ""
#. type: \s; block (usually verbatim code)
#: levels/exercises/chapter007/level003/help/help.E.txt:64
#, 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 != null ) break;\n"
"\t\t\twait(1);\n"
"\t\t}"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:66
#, no-wrap
msgid ""
"Now we have received the order in the <code>todo</code> variable. All we "
"have to do is execute it:"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:68
#, no-wrap
msgid "<c/><s/>\t\tif ( todo.m_type == 1 )"
msgstr ""
#. type: \s; block (usually verbatim code)
#: levels/exercises/chapter007/level003/help/help.E.txt:81
#, 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}\n"
"\t}\n"
"}"
msgstr ""
#. type: \b; header
#: levels/exercises/chapter007/level003/help/help.E.txt:82
#, no-wrap
msgid "The master"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:84
#, no-wrap
msgid ""
"In the master we write a function called <code>SendOrder</code> which will "
"send an order to the slave:"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:86
#, no-wrap
msgid "<c/><s/>void object::SendOrder(float order, float param)"
msgstr ""
#. type: \s; block (usually verbatim code)
#: levels/exercises/chapter007/level003/help/help.E.txt:94
#, no-wrap
msgid ""
"{\n"
"\texchange list();\n"
"\torder todo();\n"
"\t\n"
"\ttodo.m_type = order;\n"
"\ttodo.m_param = param;\n"
"\tlist.put(todo);\n"
"}"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:96
#, no-wrap
msgid "Now the main program of the master is very simple:"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:98
#, no-wrap
msgid "<c/><s/>extern void object::Remote5( )"
msgstr ""
#. type: \s; block (usually verbatim code)
#: levels/exercises/chapter007/level003/help/help.E.txt:109
#, 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 ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:111
#, no-wrap
msgid "<format key><key help/></format> show these instruction at any time."
msgstr ""
#. type: \t; header
#: levels/exercises/chapter007/level003/help/help.E.txt:112
#, no-wrap
msgid "See also"
msgstr ""
#. type: Plain text
#: levels/exercises/chapter007/level003/help/help.E.txt:113
#, no-wrap
msgid "<a command>Controls</a> and <a cbot>programming</a>."
msgstr ""