<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=Tutorial_Project._Release_7</id>
	<title>Tutorial Project. Release 7 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=Tutorial_Project._Release_7"/>
	<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;action=history"/>
	<updated>2026-05-18T17:32:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2569&amp;oldid=prev</id>
		<title>Victor Yukhtenko at 13:39, 1 April 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2569&amp;oldid=prev"/>
		<updated>2011-04-01T13:39:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:39, 1 April 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;vip&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;vip&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/***************************************************************&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/***************************************************************&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Copyright (c) &lt;/del&gt;Victor Yukhtenko&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Written by &lt;/ins&gt;Victor Yukhtenko&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SpbSolutions/Examples/Polyline&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SpbSolutions/Examples/Polyline&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Victor Yukhtenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2559&amp;oldid=prev</id>
		<title>Victor Yukhtenko at 13:13, 31 March 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2559&amp;oldid=prev"/>
		<updated>2011-03-31T13:13:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:13, 31 March 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|open=&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|open=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Polyline1_10Open|project=&amp;#039;&amp;#039;&amp;#039;Examples\Polyline\&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Polyline1&lt;/del&gt;\Polyline7.prj&amp;#039;&amp;#039;&amp;#039;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Polyline1_10Open|project=&amp;#039;&amp;#039;&amp;#039;Examples\Polyline\&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Polyline7&lt;/ins&gt;\Polyline7.prj&amp;#039;&amp;#039;&amp;#039;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you do not have the set of examples from VipSPBSDK, then please make the steps as follows:  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you do not have the set of examples from VipSPBSDK, then please make the steps as follows:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Victor Yukhtenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2539&amp;oldid=prev</id>
		<title>Victor Yukhtenko at 16:35, 28 March 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2539&amp;oldid=prev"/>
		<updated>2011-03-28T16:35:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:35, 28 March 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Tutorial Project. Release 7. Players}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Tutorial Project. Release 7. Players}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;spbCopyright&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PolylineTemplateEn&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|goal= To demonstrate the features of the Visual Prolog programming language and system features.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|goalContent=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|code=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* The code is updated to support the new functionality.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|functionality=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Multilanguage feature;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Indication of the process in the multi game mode.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|install={{PolylineInstall&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This program is part of the [[Tutorial Project Evolutions]] article.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|open=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Polyline1_10Open|&lt;/ins&gt;project&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/ins&gt;&amp;#039;&amp;#039;&amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Examples&lt;/ins&gt;\&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Polyline&lt;/ins&gt;\&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Polyline1&lt;/ins&gt;\&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Polyline7&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;prj&lt;/ins&gt;&amp;#039;&amp;#039;&amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PolyLine Game Rules}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Differences (relative to version 6):&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Multilanguage feature&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Indication of the process in the multi game mode&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Code rerganized&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This page doesn&amp;#039;t contain models of players.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To run the game please make the steps as follows: &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Create the new project with the User Interface strategy Console&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*In the created project replace the entire content of the file &amp;quot;main.pro&amp;quot; by the code shown below&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Add to the file &amp;quot;main.pro&amp;quot; the text of the program at the page &amp;#039;&amp;#039;Class GenericComputer&amp;#039;&amp;#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Add to the file &amp;quot;main.pro&amp;quot; classes of players&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*While building the project answer &amp;quot;Add All&amp;quot;, when any dialog with proposals to include any packages to the &lt;/del&gt;project &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;appears&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The language of the application may be defined in the command line by the language indetifier:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*en - English&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*ru - Russian&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;When running the program from the IDE, the parameter of the language must be placed to the field &lt;/del&gt;&amp;#039;&amp;#039;&amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;quot;Project Settings&amp;quot;&lt;/del&gt;\&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Run Options&lt;/del&gt;\&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Run Arguments&amp;#039;&amp;#039;&amp;#039;, available from menu &amp;#039;&amp;#039;&amp;#039;Project&lt;/del&gt;\&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Settings..&lt;/del&gt;.&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;If you do not have the set of examples from VipSPBSDK, then please make the steps as follows: &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Create the new project with the User Interface strategy Console;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Replace the entire content of the file &quot;main.pro&quot; by the code shown below;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Build project;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Add to the file &quot;main.pro&quot; the text of the program at the page &#039;&#039;Class GenericComputer&#039;&#039;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Add to the file &quot;main.pro&quot; classes of players and modify the code of the class “Competitors”.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|run=Run the application using the “E” of the IDE or run the executable at the directory EXE.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;vip&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;vip&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/***************************************************************&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/***************************************************************&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Copyright (c) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2007-2010 &lt;/del&gt;Victor Yukhtenko&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Copyright (c) Victor Yukhtenko&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tested with Vip7.3&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SpbSolutions/Examples/Polyline&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SpbSolutions/Examples/Polyline&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l38&quot;&gt;Line 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     neighbourOutOfPolyLine_nd&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     neighbourOutOfPolyLine_nd&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;based on solutions proposed by Elena Efimova&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;based on solutions proposed by Elena Efimova&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Written by: Victor Yukhtenko&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;***************************************************************/&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;***************************************************************/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l127&quot;&gt;Line 127:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 117:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;clauses&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;clauses&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     setLanguage():-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     setLanguage():-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         CommandLine = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;exe_native&lt;/del&gt;::getCommandLine(),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         CommandLine = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mainExe&lt;/ins&gt;::getCommandLine(),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         if string::hasSuffix(CommandLine,&amp;quot;ru&amp;quot;,_RestRu) then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         if string::hasSuffix(CommandLine,&amp;quot;ru&amp;quot;,_RestRu) then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             language_V:=ru&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             language_V:=ru&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1008&quot;&gt;Line 1,008:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 998:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end implement competitors&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end implement competitors&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/vip&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/vip&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=References&lt;/del&gt;=&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|rusver&lt;/ins&gt;=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[ru:Учебный Проект. Релиз 7]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[ru:Учебный Проект. Релиз 7]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Tutorial Project Evolutions]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Victor Yukhtenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2538&amp;oldid=prev</id>
		<title>Victor Yukhtenko at 12:57, 28 March 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2538&amp;oldid=prev"/>
		<updated>2011-03-28T12:57:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:57, 28 March 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Tutorial Project. Release 7. Players}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{spbCopyright}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{spbCopyright}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This program is part of the [[Tutorial Project Evolutions]] article.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This program is part of the [[Tutorial Project Evolutions]] article.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Tutorial Project&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Release 7. Players}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{PolyLine Game Rules}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{PolyLine Game Rules}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Victor Yukhtenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2411&amp;oldid=prev</id>
		<title>Victor Yukhtenko at 21:59, 4 June 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2411&amp;oldid=prev"/>
		<updated>2010-06-04T21:59:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:59, 4 June 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot;&gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To run the game please make the steps as follows:  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To run the game please make the steps as follows:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Create the new project with the User Interface strategy Console&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Create the new project with the User Interface strategy Console&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*In the created project replace the entire content of the file &amp;quot;main.pro&amp;quot; by the code shown below &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(&amp;#039;&amp;#039;&amp;#039;VIP 7.2 only&amp;#039;&amp;#039;&amp;#039;)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*In the created project replace the entire content of the file &amp;quot;main.pro&amp;quot; by the code shown below&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Add to the file &amp;quot;main.pro&amp;quot; the text of the program at the page &amp;#039;&amp;#039;Class GenericComputer&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Add to the file &amp;quot;main.pro&amp;quot; the text of the program at the page &amp;#039;&amp;#039;Class GenericComputer&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Add to the file &amp;quot;main.pro&amp;quot; classes of players&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Add to the file &amp;quot;main.pro&amp;quot; classes of players&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot;&gt;Line 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;vip&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;vip&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/***************************************************************&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/***************************************************************&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;VIP 7.2&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Copyright (c) 2007-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2010 &lt;/ins&gt;Victor Yukhtenko&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Copyright (c) 2007-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2008 &lt;/del&gt;Victor Yukhtenko&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tested with Vip7.3&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SpbSolutions/Examples/Polyline&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SpbSolutions/Examples/Polyline&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l724&quot;&gt;Line 724:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 724:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     announceLine_C=starterLine_C+1.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     announceLine_C=starterLine_C+1.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     actionLine_C=announceLine_C+1.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     actionLine_C=announceLine_C+1.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    polylineLine_C=actionLine_C+1.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class facts&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class facts&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Victor Yukhtenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2389&amp;oldid=prev</id>
		<title>Victor Yukhtenko at 14:45, 26 May 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2389&amp;oldid=prev"/>
		<updated>2010-05-26T14:45:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:45, 26 May 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{spbCopyright}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This program is part of the [[Tutorial Project Evolutions]] article.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This program is part of the [[Tutorial Project Evolutions]] article.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l27&quot;&gt;Line 27:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/***************************************************************&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/***************************************************************&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;VIP 7.2&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;VIP 7.2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Copyright (c) 2007-2008 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Prolog Development Center SPb&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Copyright (c) 2007-2008 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Victor Yukhtenko&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SpbSolutions/Examples/Polyline&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SpbSolutions/Examples/Polyline&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Victor Yukhtenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2001&amp;oldid=prev</id>
		<title>Victor Yukhtenko at 13:26, 22 October 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=2001&amp;oldid=prev"/>
		<updated>2009-10-22T13:26:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:26, 22 October 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This program is part of the [[Tutorial Project Evolutions]] article.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This program is part of the [[Tutorial Project Evolutions]] article.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PolyLine7&lt;/del&gt;.Players}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tutorial Project. Release 7&lt;/ins&gt;. Players}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{PolyLine Game Rules}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{PolyLine Game Rules}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Victor Yukhtenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=1956&amp;oldid=prev</id>
		<title>Victor Yukhtenko: New page: This program is part of the Tutorial Project Evolutions article.  {{PolyLine7.Players}}  {{PolyLine Game Rules}}  Differences (relative to version 6): * Multilanguage feature * Indicat...</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Tutorial_Project._Release_7&amp;diff=1956&amp;oldid=prev"/>
		<updated>2009-10-20T13:29:55Z</updated>

		<summary type="html">&lt;p&gt;New page: This program is part of the &lt;a href=&quot;/index.php?title=Tutorial_Project_Evolutions&quot; class=&quot;mw-redirect&quot; title=&quot;Tutorial Project Evolutions&quot;&gt;Tutorial Project Evolutions&lt;/a&gt; article.  {{PolyLine7.Players}}  {{PolyLine Game Rules}}  Differences (relative to version 6): * Multilanguage feature * Indicat...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This program is part of the [[Tutorial Project Evolutions]] article.&lt;br /&gt;
&lt;br /&gt;
{{PolyLine7.Players}}&lt;br /&gt;
&lt;br /&gt;
{{PolyLine Game Rules}}&lt;br /&gt;
&lt;br /&gt;
Differences (relative to version 6):&lt;br /&gt;
* Multilanguage feature&lt;br /&gt;
* Indication of the process in the multi game mode&lt;br /&gt;
* Code rerganized&lt;br /&gt;
&lt;br /&gt;
This page doesn&amp;#039;t contain models of players.&lt;br /&gt;
&lt;br /&gt;
To run the game please make the steps as follows: &lt;br /&gt;
*Create the new project with the User Interface strategy Console&lt;br /&gt;
*In the created project replace the entire content of the file &amp;quot;main.pro&amp;quot; by the code shown below (&amp;#039;&amp;#039;&amp;#039;VIP 7.2 only&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
*Add to the file &amp;quot;main.pro&amp;quot; the text of the program at the page &amp;#039;&amp;#039;Class GenericComputer&amp;#039;&amp;#039;&lt;br /&gt;
*Add to the file &amp;quot;main.pro&amp;quot; classes of players&lt;br /&gt;
*While building the project answer &amp;quot;Add All&amp;quot;, when any dialog with proposals to include any packages to the project appears&lt;br /&gt;
&lt;br /&gt;
The language of the application may be defined in the command line by the language indetifier:&lt;br /&gt;
*en - English&lt;br /&gt;
*ru - Russian&lt;br /&gt;
When running the program from the IDE, the parameter of the language must be placed to the field &amp;#039;&amp;#039;&amp;#039;&amp;quot;Project Settings&amp;quot;\Run Options\Run Arguments&amp;#039;&amp;#039;&amp;#039;, available from menu &amp;#039;&amp;#039;&amp;#039;Project\Settings...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
VIP 7.2&lt;br /&gt;
Copyright (c) 2007-2008 Prolog Development Center SPb&lt;br /&gt;
&lt;br /&gt;
SpbSolutions/Examples/Polyline&lt;br /&gt;
&lt;br /&gt;
Predicates&lt;br /&gt;
    neighbour_nd,&lt;br /&gt;
    neighbourOutOfPolyLine_nd&lt;br /&gt;
based on solutions proposed by Elena Efimova&lt;br /&gt;
&lt;br /&gt;
Written by: Victor Yukhtenko&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
/*****************&lt;br /&gt;
  GOAL&lt;br /&gt;
*****************/&lt;br /&gt;
goal&lt;br /&gt;
    mainExe::run(main::run).&lt;br /&gt;
 &lt;br /&gt;
/*****************&lt;br /&gt;
  Class Main&lt;br /&gt;
*****************/&lt;br /&gt;
implement main&lt;br /&gt;
    open core&lt;br /&gt;
 &lt;br /&gt;
constants&lt;br /&gt;
    className = &amp;quot;main&amp;quot;.&lt;br /&gt;
    classVersion = &amp;quot;1.0&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    classInfo(className, classVersion).&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    run():-&lt;br /&gt;
        console::init(),   &lt;br /&gt;
        game::run().&lt;br /&gt;
 &lt;br /&gt;
end implement main&lt;br /&gt;
 &lt;br /&gt;
class game&lt;br /&gt;
open core&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    classInfo : core::classInfo.&lt;br /&gt;
 &lt;br /&gt;
domains&lt;br /&gt;
    language_D=&lt;br /&gt;
        en;&lt;br /&gt;
        ru.&lt;br /&gt;
 &lt;br /&gt;
properties&lt;br /&gt;
    language_V:language_D.&lt;br /&gt;
    players_V:player*.&lt;br /&gt;
    multiMode_V:boolean.&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    run:().&lt;br /&gt;
    addPlayer:(player Player).&lt;br /&gt;
 &lt;br /&gt;
end class game&lt;br /&gt;
 &lt;br /&gt;
implement game&lt;br /&gt;
open core&lt;br /&gt;
 &lt;br /&gt;
constants&lt;br /&gt;
    className = &amp;quot;game&amp;quot;.&lt;br /&gt;
    classVersion = &amp;quot;1.0&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    classInfo(className, classVersion).&lt;br /&gt;
 &lt;br /&gt;
class facts&lt;br /&gt;
    language_V:language_D:=en.&lt;br /&gt;
    multiMode_V:boolean:=false.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    run():-&lt;br /&gt;
        setLanguage(),&lt;br /&gt;
        humanInterface::setLanguage(language_V),&lt;br /&gt;
        Mode=chooseSingleOrMultiGame(),&lt;br /&gt;
        setGameProperties(),&lt;br /&gt;
        competitors::involvePlayers(),&lt;br /&gt;
        if Mode=single_S then &lt;br /&gt;
            playSingle()&lt;br /&gt;
        else&lt;br /&gt;
            multiMode_V:=true,&lt;br /&gt;
            seniourJudge::playMulti()&lt;br /&gt;
        end if.&lt;br /&gt;
 &lt;br /&gt;
domains&lt;br /&gt;
    mode_D=&lt;br /&gt;
        single_S;&lt;br /&gt;
        multi_S.&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    setLanguage:().&lt;br /&gt;
clauses&lt;br /&gt;
    setLanguage():-&lt;br /&gt;
        CommandLine = exe_native::getCommandLine(),&lt;br /&gt;
        if string::hasSuffix(CommandLine,&amp;quot;ru&amp;quot;,_RestRu) then&lt;br /&gt;
            language_V:=ru&lt;br /&gt;
        end if,&lt;br /&gt;
        if string::hasSuffix(CommandLine,&amp;quot;en&amp;quot;,_RestEn) then&lt;br /&gt;
            language_V:=en&lt;br /&gt;
        end if.&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    chooseSingleOrMultiGame:()-&amp;gt;mode_D GameOrCompetition.&lt;br /&gt;
clauses&lt;br /&gt;
    chooseSingleOrMultiGame()=Choice:-&lt;br /&gt;
        ChoiceStr=humanInterface::getInput(humanInterface::singleOrMulti_S),&lt;br /&gt;
        if (string::equalIgnoreCase(ChoiceStr,&amp;quot;S&amp;quot;) or ChoiceStr=&amp;quot;&amp;quot;),! then&lt;br /&gt;
            Choice=single_S,&lt;br /&gt;
            !&lt;br /&gt;
        else&lt;br /&gt;
            Choice=multi_S&lt;br /&gt;
        end if.&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    playSingle:().&lt;br /&gt;
clauses&lt;br /&gt;
    playSingle():-&lt;br /&gt;
        StartingPlayer=chooseStartingPlayer(),&lt;br /&gt;
        seniourJudge::playSingle(StartingPlayer),&lt;br /&gt;
        !,&lt;br /&gt;
        playSingle().&lt;br /&gt;
    playSingle().&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    setGameProperties:().&lt;br /&gt;
clauses&lt;br /&gt;
    setGameProperties():-&lt;br /&gt;
        juniourJudge::defineStage().&lt;br /&gt;
 &lt;br /&gt;
/***************************&lt;br /&gt;
  Players&lt;br /&gt;
***************************/&lt;br /&gt;
class facts&lt;br /&gt;
    players_V:player*:=[].&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    addPlayer(Player):-&lt;br /&gt;
        players_V:=list::append(players_V,[Player]).&lt;br /&gt;
 &lt;br /&gt;
/***************************&lt;br /&gt;
 Shoose Starting Player&lt;br /&gt;
***************************/&lt;br /&gt;
class predicates&lt;br /&gt;
    chooseStartingPlayer:()-&amp;gt;player determ.&lt;br /&gt;
clauses&lt;br /&gt;
    chooseStartingPlayer()=Player:-&lt;br /&gt;
        not(players_V=[]) and not(players_V=[_SiglePlayer]),&lt;br /&gt;
        findAll(PlayListMember,PlayListMember=playListMember(),PlayList),&lt;br /&gt;
        PlayListStr=string::concatList(PlayList),&lt;br /&gt;
        StartingPlayer=getStartingPlayerInput(PlayListStr),&lt;br /&gt;
        Player=list::nth(StartingPlayer-1,players_V).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    playListMember:()-&amp;gt;string nondeterm.&lt;br /&gt;
clauses&lt;br /&gt;
    playListMember()=PlayersListMember:-&lt;br /&gt;
        I = std::fromTo(1, list::length(game::players_V)),&lt;br /&gt;
            Player=list::nth(I-1,game::players_V),&lt;br /&gt;
            PlayersListMember=string::format(&amp;quot;\n% - %&amp;quot;,I,Player:name).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    getStartingPlayerInput:(string PlayListStr)-&amp;gt;positive StartingPlayerNo determ.&lt;br /&gt;
clauses&lt;br /&gt;
    getStartingPlayerInput(PlayListStr)=StartingPlayer:-&lt;br /&gt;
        StartingPlayerStr=humanInterface::getInput(humanInterface::startingPlayer_S,PlayListStr),&lt;br /&gt;
        if StartingPlayerStr=&amp;quot;&amp;quot; then&lt;br /&gt;
            !,&lt;br /&gt;
            fail&lt;br /&gt;
        else&lt;br /&gt;
            try&lt;br /&gt;
                StartingPlayer=toTerm(StartingPlayerStr),&lt;br /&gt;
                !&lt;br /&gt;
            catch _TraceID1 do&lt;br /&gt;
                humanInterface::announce(humanInterface::errorMustBeNumber_S,&amp;quot;&amp;quot;),&lt;br /&gt;
                fail&lt;br /&gt;
            end try,&lt;br /&gt;
            if StartingPlayer&amp;gt;list::length(players_V) then&lt;br /&gt;
                humanInterface::announce(humanInterface::errorStartingPlayer_S,&amp;quot;&amp;quot;),&lt;br /&gt;
                fail&lt;br /&gt;
            end if&lt;br /&gt;
        end if.&lt;br /&gt;
    getStartingPlayerInput(PlayListStr)=StartingPlayer:-&lt;br /&gt;
        StartingPlayer=getStartingPlayerInput(PlayListStr).&lt;br /&gt;
 &lt;br /&gt;
end implement game&lt;br /&gt;
 &lt;br /&gt;
/************************&lt;br /&gt;
  Class seniorJudge&lt;br /&gt;
************************/&lt;br /&gt;
class seniourJudge&lt;br /&gt;
open core&lt;br /&gt;
 &lt;br /&gt;
properties&lt;br /&gt;
    inProgress_V:boolean.&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    playSingle:(player CurrentPlayer).&lt;br /&gt;
    playMulti:().&lt;br /&gt;
 &lt;br /&gt;
end class seniourJudge&lt;br /&gt;
 &lt;br /&gt;
implement seniourJudge&lt;br /&gt;
open core, humanInterface&lt;br /&gt;
 &lt;br /&gt;
class facts&lt;br /&gt;
    inProgress_V:boolean:=false.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    playSingle(Player):-&lt;br /&gt;
        inProgress_V=false,&lt;br /&gt;
        humanInterface::showStage(),&lt;br /&gt;
        humanInterface::announce(humanInterface::starter_S,Player:name),&lt;br /&gt;
        inProgress_V:=true,&lt;br /&gt;
        Player:move(),&lt;br /&gt;
        playSingle(Player),&lt;br /&gt;
        !.&lt;br /&gt;
    playSingle(Player):-&lt;br /&gt;
        juniourJudge::isGameOver(),&lt;br /&gt;
        !,&lt;br /&gt;
        if game::multiMode_V=false then&lt;br /&gt;
            Player:announceWin(),&lt;br /&gt;
            foreach (Participant=list::getMember_nd(game::players_V) and not(Participant=Player)) do&lt;br /&gt;
                Participant:announceLoss()&lt;br /&gt;
            end foreach&lt;br /&gt;
        else&lt;br /&gt;
            addWinner(Player)&lt;br /&gt;
        end if,&lt;br /&gt;
        inProgress_V:=false,&lt;br /&gt;
        juniourJudge::reset().&lt;br /&gt;
    playSingle(Player):-&lt;br /&gt;
        NextPlayer=nextPlayer(Player),&lt;br /&gt;
        NextPlayer:move(),&lt;br /&gt;
        !,&lt;br /&gt;
        playSingle(NextPlayer).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    nextPlayer:(player CurrentPlayer)-&amp;gt;player NextPlayer.&lt;br /&gt;
clauses&lt;br /&gt;
    nextPlayer(Player)=NextPlayer:-&lt;br /&gt;
        Index=list::tryGetIndex(Player,game::players_V),&lt;br /&gt;
        NextPlayer=list::tryGetNth(Index+1,game::players_V),&lt;br /&gt;
        !.&lt;br /&gt;
    nextPlayer(_Player)=list::nth(0,game::players_V).&lt;br /&gt;
 &lt;br /&gt;
/************************&lt;br /&gt;
  Multi Mode Handle&lt;br /&gt;
************************/&lt;br /&gt;
class predicates&lt;br /&gt;
    defineNoOfRounds:().&lt;br /&gt;
clauses&lt;br /&gt;
    defineNoOfRounds():-&lt;br /&gt;
        InputString=humanInterface::getInput(humanInterface::noOfRounds_S,toString(noOfRounds_V)),&lt;br /&gt;
        not(InputString=&amp;quot;&amp;quot;),&lt;br /&gt;
        try&lt;br /&gt;
            noOfRounds_V:=toTerm(InputString)&lt;br /&gt;
        catch _TraceID do&lt;br /&gt;
            humanInterface::announce(humanInterface::errorNoOfRounds_S,&amp;quot;&amp;quot;),&lt;br /&gt;
            defineNoOfRounds()&lt;br /&gt;
        end try,&lt;br /&gt;
        !.&lt;br /&gt;
    defineNoOfRounds().&lt;br /&gt;
 &lt;br /&gt;
class facts&lt;br /&gt;
    starter_V:player:=erroneous.&lt;br /&gt;
    noOfRounds_V:positive:=10.&lt;br /&gt;
    statistics_F:(boolean TrueIfWon,player,positive Won).&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    playMulti():-&lt;br /&gt;
        defineNoOfRounds(),&lt;br /&gt;
        Player=list::getMember_nd(game::players_V),&lt;br /&gt;
            starter_V:=Player,&lt;br /&gt;
            playRound(noOfRounds_V),&lt;br /&gt;
        fail().&lt;br /&gt;
    playMulti():-&lt;br /&gt;
        humanInterface::reset(),&lt;br /&gt;
        PlayersNo=list::length(game::players_V),&lt;br /&gt;
        humanInterface::announce(humanInterface::reportHeader_S,toString(PlayersNo*noOfRounds_V)),&lt;br /&gt;
        findAll&lt;br /&gt;
            (&lt;br /&gt;
            PlayerResultList,&lt;br /&gt;
            (&lt;br /&gt;
                Player=list::getMember_nd(game::players_V),&lt;br /&gt;
                    WinsFirst=calculateWins(Player,true),&lt;br /&gt;
                    WinsNext=calculateWins(Player,false),&lt;br /&gt;
                    WnsTotal=WinsFirst+WinsNext,&lt;br /&gt;
                    PlayerResultList=[Player:name,toString(WnsTotal),toString(WinsFirst),toString(WinsNext)]&lt;br /&gt;
            ),&lt;br /&gt;
            PlayerResultListList&lt;br /&gt;
            ),&lt;br /&gt;
        humanInterface::announce(humanInterface::report_S,toString(PlayerResultListList)),&lt;br /&gt;
        fail().&lt;br /&gt;
    playMulti():-&lt;br /&gt;
        humanInterface::waitOK().&lt;br /&gt;
 &lt;br /&gt;
class facts&lt;br /&gt;
    wins_V:integer:=0.&lt;br /&gt;
class predicates&lt;br /&gt;
    calculateWins:(player Player,boolean TrueIfFirst)-&amp;gt;integer Sum.&lt;br /&gt;
clauses&lt;br /&gt;
    calculateWins(Player,TrueIfFirst)=_:-&lt;br /&gt;
        wins_V:=0,&lt;br /&gt;
        statistics_F(TrueIfFirst,Player,Won),&lt;br /&gt;
            trap(wins_V:=wins_V+Won,_TraceID,fail),&lt;br /&gt;
        fail.&lt;br /&gt;
    calculateWins(_Player,_TrueIfFirst)=wins_V.&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    playRound:(positive NoOfRounds).&lt;br /&gt;
clauses&lt;br /&gt;
    playRound(0):-!.&lt;br /&gt;
    playRound(NoOfRounds):-&lt;br /&gt;
        humanInterface::announce(round_S,toString(noOfRounds_V-NoOfRounds+1)),&lt;br /&gt;
        seniourJudge::playSingle(starter_V),&lt;br /&gt;
        playRound(NoOfRounds-1).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    addWinner:(player).&lt;br /&gt;
clauses&lt;br /&gt;
    addWinner(Player):-&lt;br /&gt;
        if Player=starter_V then &lt;br /&gt;
            TrueIfStarted=true &lt;br /&gt;
        else&lt;br /&gt;
            TrueIfStarted=false &lt;br /&gt;
        end if,&lt;br /&gt;
        addWinner(TrueIfStarted,Player).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    addWinner:(boolean TrueIfStarted,player Player).&lt;br /&gt;
clauses&lt;br /&gt;
    addWinner(TrueIfStarted,Player):-&lt;br /&gt;
        retract(statistics_F(TrueIfStarted,Player,Won)),&lt;br /&gt;
        !,&lt;br /&gt;
        assert(statistics_F(TrueIfStarted,Player,Won+1)).&lt;br /&gt;
    addWinner(TrueIfStarted,Player):-&lt;br /&gt;
        assert(statistics_F(TrueIfStarted,Player,1)).&lt;br /&gt;
 &lt;br /&gt;
end implement seniourJudge&lt;br /&gt;
 &lt;br /&gt;
/************************&lt;br /&gt;
  Class juniourJudge&lt;br /&gt;
************************/&lt;br /&gt;
class juniourJudge&lt;br /&gt;
open core&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    classInfo : core::classInfo.&lt;br /&gt;
 &lt;br /&gt;
domains&lt;br /&gt;
    cell = c(positive,positive).&lt;br /&gt;
    stepType_D=&lt;br /&gt;
        ordinary_S;&lt;br /&gt;
        winner_S.&lt;br /&gt;
 &lt;br /&gt;
properties&lt;br /&gt;
    maxRow_P:positive.&lt;br /&gt;
    maxColumn_P:positive.&lt;br /&gt;
    polyline_P:cell*.&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    defineStage:().&lt;br /&gt;
    neighbour_nd: (cell,cell) nondeterm (i,o) (i,i).&lt;br /&gt;
    neighbourOutOfPolyLine_nd:(cell,cell)-&amp;gt;cell nondeterm.&lt;br /&gt;
    set: (string ).&lt;br /&gt;
    isGameOver:() determ.&lt;br /&gt;
    reset:().&lt;br /&gt;
 &lt;br /&gt;
end class juniourJudge&lt;br /&gt;
 &lt;br /&gt;
implement juniourJudge&lt;br /&gt;
open core, humanInterface&lt;br /&gt;
 &lt;br /&gt;
constants&lt;br /&gt;
    className = &amp;quot;JuniourJudge&amp;quot;.&lt;br /&gt;
    classVersion = &amp;quot;1.0&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    classInfo(className, classVersion).&lt;br /&gt;
 &lt;br /&gt;
class facts&lt;br /&gt;
    maxRow_P:positive:=6.&lt;br /&gt;
    maxColumn_P:positive:=6.&lt;br /&gt;
    polyline_P:cell*:=[].&lt;br /&gt;
    endOfGame_V:boolean:=false.&lt;br /&gt;
 &lt;br /&gt;
domains&lt;br /&gt;
    fieldSize_D=tableSize(positive X,positive Y).&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    defineStage():-&lt;br /&gt;
        defineFieldSize().&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    defineFieldSize:().&lt;br /&gt;
clauses&lt;br /&gt;
    defineFieldSize():-&lt;br /&gt;
        InputString=humanInterface::getInput(humanInterface::fieldSize_S,string::format(&amp;quot;%s,%s&amp;quot;,toString(maxColumn_P),toString(maxRow_P))),&lt;br /&gt;
        not(InputString=&amp;quot;&amp;quot;),&lt;br /&gt;
        try&lt;br /&gt;
            hasDomain(fieldSize_D,FieldSize),&lt;br /&gt;
            FieldSize=toTerm(string::format(&amp;quot;tableSize(%s)&amp;quot;,InputString)),&lt;br /&gt;
            FieldSize=tableSize(X,Y),&lt;br /&gt;
            maxColumn_P:=X,&lt;br /&gt;
            maxRow_P:=Y&lt;br /&gt;
        catch _TraceID do&lt;br /&gt;
            humanInterface::announce(humanInterface::errorFieldSize_S,&amp;quot;&amp;quot;),&lt;br /&gt;
            defineFieldSize()&lt;br /&gt;
        end try,&lt;br /&gt;
        !.&lt;br /&gt;
    defineFieldSize().&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    isGameOver():-&lt;br /&gt;
        endOfGame_V=true.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    set(InputString):-&lt;br /&gt;
        Cell=convertToCell(InputString),&lt;br /&gt;
        handleInput (Cell).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    convertToCell:(string InputString)-&amp;gt;cell.&lt;br /&gt;
clauses&lt;br /&gt;
    convertToCell(InputString)=Cell:-&lt;br /&gt;
        trap(Cell=toTerm(InputString),_TraceID,fail),&lt;br /&gt;
        !.&lt;br /&gt;
    convertToCell(InputString)=Cell:-&lt;br /&gt;
        CellString=string::format(&amp;quot;c(%s)&amp;quot;,InputString),&lt;br /&gt;
        trap(Cell=toTerm(CellString),_TraceID,fail),&lt;br /&gt;
        !.&lt;br /&gt;
    convertToCell(InputString)=toTerm(InputString).&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    reset():-&lt;br /&gt;
        juniourJudge:: polyline_P:=[],&lt;br /&gt;
        juniourJudge::endOfGame_V:=false.&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    handleInput:(juniourJudge::cell).&lt;br /&gt;
clauses&lt;br /&gt;
    handleInput(Cell):-&lt;br /&gt;
        list::isMember(Cell,polyline_P),&lt;br /&gt;
        try &lt;br /&gt;
            _=makePolyLine(Cell,polyline_P) % it will be an exception if wrong Cell, but we ignore it by failing&lt;br /&gt;
        catch _TraceID do&lt;br /&gt;
            fail&lt;br /&gt;
        end try,&lt;br /&gt;
        !,&lt;br /&gt;
        endOfGame_V:=true,&lt;br /&gt;
        humanInterface::showStep(Cell,winner_S).&lt;br /&gt;
    handleInput (Cell):-&lt;br /&gt;
        polyline_P:=makePolyLine(Cell,polyline_P),&lt;br /&gt;
        !,&lt;br /&gt;
        humanInterface::showStep(Cell,ordinary_S).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    makePolyLine: (cell,cell*)-&amp;gt; cell* multi.&lt;br /&gt;
clauses&lt;br /&gt;
    makePolyLine(c(X,Y),[])=[c(X,Y)]:-&lt;br /&gt;
        X&amp;gt;0,X&amp;lt;=maxColumn_P,&lt;br /&gt;
        Y&amp;gt;0,Y&amp;lt;=maxRow_P,&lt;br /&gt;
        !.&lt;br /&gt;
    makePolyLine(NewCell,[SingleCell])=[NewCell,SingleCell]:-&lt;br /&gt;
        neighbour_nd(SingleCell, NewCell),&lt;br /&gt;
        !.&lt;br /&gt;
    makePolyLine(NewCell,[Left, RestrictingCell | PolyLineTail])=[NewCell, Left, RestrictingCell | PolyLineTail]:-&lt;br /&gt;
        NewCell=neighbourOutOfPolyLine_nd(Left,RestrictingCell).&lt;br /&gt;
    makePolyLine(NewCell,PolyLine)=list::reverse([NewCell,Left, RestrictingCell | PolyLineTail]):-&lt;br /&gt;
        [Left, RestrictingCell | PolyLineTail]= list::reverse(PolyLine),&lt;br /&gt;
        NewCell=neighbourOutOfPolyLine_nd(Left,RestrictingCell).&lt;br /&gt;
    makePolyLine(NewCell,_PolyLine)= _PolyLine1:-&lt;br /&gt;
        exception::raise(classInfo,wrongStepException,[namedValue(&amp;quot;data&amp;quot;,string(toString(NewCell)))]).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    wrongStepException:exception.&lt;br /&gt;
clauses&lt;br /&gt;
    wrongStepException&lt;br /&gt;
        (&lt;br /&gt;
        classInfo,&lt;br /&gt;
        predicate_Name(),&lt;br /&gt;
        &amp;quot;&amp;quot;&lt;br /&gt;
        ).&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    neighbourOutOfPolyLine_nd(Cell,RestrictingCell)=NewCell:-&lt;br /&gt;
        neighbour_nd(Cell,NewCell),&lt;br /&gt;
            not(NewCell = RestrictingCell).&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    neighbour_nd(c(X, Y), c(X + 1, Y)):- X &amp;lt; maxColumn_P.        &lt;br /&gt;
    neighbour_nd(c(X, Y), c(X, Y + 1)):- Y &amp;lt; maxrow_P.            &lt;br /&gt;
    neighbour_nd(c(X, Y), c(X - 1, Y)):- X &amp;gt; 1.&lt;br /&gt;
    neighbour_nd(c(X, Y), c(X, Y - 1)):- Y &amp;gt; 1.    &lt;br /&gt;
 &lt;br /&gt;
end implement juniourJudge&lt;br /&gt;
 &lt;br /&gt;
/******************************************&lt;br /&gt;
  Interface Player&lt;br /&gt;
******************************************/&lt;br /&gt;
interface player&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    setName:(string).&lt;br /&gt;
    move:().&lt;br /&gt;
    announceWin:().&lt;br /&gt;
    announceLoss:().&lt;br /&gt;
 &lt;br /&gt;
properties&lt;br /&gt;
    name:string.&lt;br /&gt;
 &lt;br /&gt;
end interface player&lt;br /&gt;
 &lt;br /&gt;
/**************&lt;br /&gt;
  Text localization&lt;br /&gt;
**************/&lt;br /&gt;
interface polyLineText&lt;br /&gt;
open core&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
        getText:(humanInterface::actionID_D)-&amp;gt;string Text.&lt;br /&gt;
end interface polyLineText&lt;br /&gt;
 &lt;br /&gt;
class polyLineTextRu:polyLineText&lt;br /&gt;
end class polyLineTextRu&lt;br /&gt;
 &lt;br /&gt;
implement polyLineTextRu&lt;br /&gt;
open core, humanInterface&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    getText(TextID)=Text:-&lt;br /&gt;
        Text=getTextInt(TextID),&lt;br /&gt;
        !.&lt;br /&gt;
    getText(_TextID)=&amp;quot;Текст не предусмотрен&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    getTextInt:(humanInterface::actionID_D TextID)-&amp;gt;string Text determ.&lt;br /&gt;
clauses&lt;br /&gt;
    getTextInt(thinker_S)=&amp;quot;% думает ...&amp;quot;.&lt;br /&gt;
    getTextInt(round_S)=&amp;quot;Раунд: %&amp;quot;.&lt;br /&gt;
    getTextInt(beginner_S)=&amp;quot;Первый ход: %&amp;quot;.&lt;br /&gt;
    getTextInt(congratulation_S)=&amp;quot;Игрок % выиграл!&amp;quot;.&lt;br /&gt;
    getTextInt(sorryLoss_S)=&amp;quot;%,  к сожалению, Вы проиграли :-(&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
    getTextInt(singleOrMultipleChoice_S)=&amp;quot;Выберите режим (S или Enter - одиночная игра, другое - мульти):&amp;quot;.&lt;br /&gt;
    getTextInt(fieldSize_S)=&amp;quot;\nВведите размер игрового поля X,Y (по умолчанию %):&amp;quot;.&lt;br /&gt;
    getTextInt(playerStep_S)=&amp;quot;Введите координаты клетки как c(X,Y) или как X,Y: &amp;quot;.&lt;br /&gt;
    getTextInt(playerType_S)=&amp;quot;\nВозможные типы игроков:\n%s\nИгрок #%s. Укажите тип (Enter - конец выбора игроков):&amp;quot;.&lt;br /&gt;
    getTextInt(playerName_S)=&amp;quot;\nВведите имя Игрока (предлагается %):&amp;quot;.&lt;br /&gt;
    getTextInt(startingPlayer_S)=&amp;quot;\nКто первый ходит (номер Игрока или Enter - конец игры)?:&amp;quot;.&lt;br /&gt;
    getTextInt(searchDepth_S)=&amp;quot;\nУкажите глубину поиска решения в шагах(% - по умолчанию): &amp;quot;.&lt;br /&gt;
    getTextInt(noOfRounds_S)=&amp;quot;\nВведите число партий игры (по умолчанию %):&amp;quot;.&lt;br /&gt;
    getTextInt(reportHeader_S)=&amp;quot;\nРезультаты % игр:&amp;quot;.&lt;br /&gt;
    getTextInt(playerReport_S)=&amp;quot;\nИгрок %:\n\t Всего побед % из них:\n\t\tПри ходе первым - \t%\n\t\tПри ходе следующим - \t% &amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
    getTextInt(error_S)=&amp;quot;Ошибка, % &amp;quot;.&lt;br /&gt;
    getTextInt(errorPlayerType_S)=&amp;quot;\nТакого ТИПА Игрока нет! Enter - для повторного ввода:&amp;quot;.&lt;br /&gt;
    getTextInt(errorMustBeNumber_S)=&amp;quot;\nДолжен быть номер! Повторите ввод:&amp;quot;.&lt;br /&gt;
    getTextInt(errorstartingPlayer_S)=&amp;quot;\nТакого Игрока нет! Повторите ввод:&amp;quot;.&lt;br /&gt;
    getTextInt(errorFieldSize_S)=&amp;quot;\nНеправильно указан размер игрового поля! Повторите ввод:&amp;quot;.&lt;br /&gt;
    getTextInt(errorNoOfRounds_S)=&amp;quot;\nНеправильно указано число партий! Повторите ввод:&amp;quot;.&lt;br /&gt;
    getTextInt(errorWrongCell_S)=&amp;quot;Ход % не может быть продолжением линии:&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
end implement polyLineTextRu&lt;br /&gt;
 &lt;br /&gt;
class polyLineTextEn:polyLineText&lt;br /&gt;
end class polyLineTextEn&lt;br /&gt;
 &lt;br /&gt;
implement polyLineTextEn&lt;br /&gt;
open core, humanInterface&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    getText(TextID)=Text:-&lt;br /&gt;
        Text=getTextInt(TextID),&lt;br /&gt;
        !.&lt;br /&gt;
    getText(_TextID)=&amp;quot;No Text Exists&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
class predicates&lt;br /&gt;
    getTextInt:(humanInterface::actionID_D TextID)-&amp;gt;string Text determ.&lt;br /&gt;
clauses&lt;br /&gt;
    getTextInt(thinker_S)=&amp;quot;% is thinking ...&amp;quot;.&lt;br /&gt;
    getTextInt(round_S)=&amp;quot;Round: %&amp;quot;.&lt;br /&gt;
    getTextInt(beginner_S)=&amp;quot;First move done by: %&amp;quot;.&lt;br /&gt;
    getTextInt(congratulation_S)=&amp;quot;Player % won!&amp;quot;.&lt;br /&gt;
    getTextInt(sorryLoss_S)=&amp;quot;%,  Sorry, you loss :-(&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
    getTextInt(singleOrMultipleChoice_S)=&amp;quot;Please choose the mode (S or Enter - single game, other - multiple):&amp;quot;.&lt;br /&gt;
    getTextInt(fieldSize_S)=&amp;quot;\nPlease enter the size of the gaimbling field X,Y (% by default):&amp;quot;.&lt;br /&gt;
    getTextInt(playerStep_S)=&amp;quot;Please enter your move as c(X,Y) or as X,Y: &amp;quot;.&lt;br /&gt;
    getTextInt(playerType_S)=&amp;quot;\nPossible player types:\n%s\nPlayer #%s. Please enter the player type (Enter - end of list):&amp;quot;.&lt;br /&gt;
    getTextInt(playerName_S)=&amp;quot;\nPlease assign the name to the player (% proposed):&amp;quot;.&lt;br /&gt;
    getTextInt(startingPlayer_S)=&amp;quot;\nWho moves the first (PlayerNo or Enter - end of the game)?:&amp;quot;.&lt;br /&gt;
    getTextInt(searchDepth_S)=&amp;quot;\nChoose the depth of the prognosis (% - by default): &amp;quot;.&lt;br /&gt;
    getTextInt(noOfRounds_S)=&amp;quot;\nPlease enter the number of games (% by default):&amp;quot;.&lt;br /&gt;
    getTextInt(reportHeader_S)=&amp;quot;\nResult of % games:&amp;quot;.&lt;br /&gt;
    getTextInt(playerReport_S)=&amp;quot;\nPlayer %:\n\t Wins Total % and:\n\t\tWhile first move - \t%\n\t\tWhile next move - \t% &amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
    getTextInt(error_S)=&amp;quot;Error, % &amp;quot;.&lt;br /&gt;
    getTextInt(errorPlayerType_S)=&amp;quot;\nNo such player type exiasts! Enter - repeat input:&amp;quot;.&lt;br /&gt;
    getTextInt(errorMustBeNumber_S)=&amp;quot;\nMust be number! Please repeat input:&amp;quot;.&lt;br /&gt;
    getTextInt(errorstartingPlayer_S)=&amp;quot;\nNo such Player exiasts! Please repeat input:&amp;quot;.&lt;br /&gt;
    getTextInt(errorFieldSize_S)=&amp;quot;\nWrong size of the field entered! Please repeat input:&amp;quot;.&lt;br /&gt;
    getTextInt(errorNoOfRounds_S)=&amp;quot;\nWrong amount of games entered! Please repeat input:&amp;quot;.&lt;br /&gt;
    getTextInt(errorWrongCell_S)=&amp;quot;The Move % doesn&amp;#039;t prolong the PolyLine:&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
end implement polyLineTextEn&lt;br /&gt;
 &lt;br /&gt;
/******************************************&lt;br /&gt;
  Class HumanInterface&lt;br /&gt;
******************************************/&lt;br /&gt;
class humanInterface&lt;br /&gt;
open core&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    classInfo : core::classInfo.&lt;br /&gt;
 &lt;br /&gt;
domains&lt;br /&gt;
    actionID_D=&lt;br /&gt;
        beginner_S;&lt;br /&gt;
        thinker_S;&lt;br /&gt;
        congratulation_S;&lt;br /&gt;
        sorryLoss_S;&lt;br /&gt;
 &lt;br /&gt;
        reportHeader_S;&lt;br /&gt;
        playerReport_S;&lt;br /&gt;
        report_S;&lt;br /&gt;
 &lt;br /&gt;
        round_S;&lt;br /&gt;
        starter_S;&lt;br /&gt;
 &lt;br /&gt;
        win_S;&lt;br /&gt;
        loss_S;&lt;br /&gt;
 &lt;br /&gt;
        singleOrMultipleChoice_S;&lt;br /&gt;
        fieldSize_S;&lt;br /&gt;
        playerStep_S;&lt;br /&gt;
        playerType_S;&lt;br /&gt;
        playerName_S;&lt;br /&gt;
        startingPlayer_S;&lt;br /&gt;
        searchDepth_S;&lt;br /&gt;
        noOfRounds_S;&lt;br /&gt;
 &lt;br /&gt;
        singleOrMulti_S;&lt;br /&gt;
 &lt;br /&gt;
        error_S;&lt;br /&gt;
        errorPlayerType_S;&lt;br /&gt;
        errorMustBeNumber_S;&lt;br /&gt;
        errorstartingPlayer_S;&lt;br /&gt;
        errorFieldSize_S;&lt;br /&gt;
        errorNoOfRounds_S;&lt;br /&gt;
        errorWrongCell_S.&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
   reset:().&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    announceStartUp:().&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    setLanguage:(game::language_D).&lt;br /&gt;
    waitOK:().&lt;br /&gt;
    showStage:().&lt;br /&gt;
    showStep:(juniourJudge::cell,juniourJudge::stepType_D).&lt;br /&gt;
    getInput:(actionID_D,string StringParameter)-&amp;gt;string InputString.&lt;br /&gt;
    getInput:(actionID_D)-&amp;gt;string InputString.&lt;br /&gt;
    announce:(actionID_D AnnounceID,string AnnounceText).&lt;br /&gt;
 &lt;br /&gt;
end class humanInterface&lt;br /&gt;
 &lt;br /&gt;
implement humanInterface&lt;br /&gt;
open core&lt;br /&gt;
 &lt;br /&gt;
constants&lt;br /&gt;
    className = &amp;quot;humanInterface&amp;quot;.&lt;br /&gt;
    classVersion = &amp;quot;1.0&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    classInfo(className, classVersion).&lt;br /&gt;
 &lt;br /&gt;
constants&lt;br /&gt;
    cellMarkedOrdinary_C=&amp;quot;*&amp;quot;.&lt;br /&gt;
    cellMarkedWinner_C=&amp;quot;O&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
constants&lt;br /&gt;
    verticalSpace_C=2.&lt;br /&gt;
    horizontalSpace_C=3.&lt;br /&gt;
    emptyLineLenght_C=80.&lt;br /&gt;
 &lt;br /&gt;
constants % Position of Line&lt;br /&gt;
    starterLine_C=1.&lt;br /&gt;
    announceLine_C=starterLine_C+1.&lt;br /&gt;
    actionLine_C=announceLine_C+1.&lt;br /&gt;
    polylineLine_C=actionLine_C+1.&lt;br /&gt;
 &lt;br /&gt;
class facts&lt;br /&gt;
    language_V:polyLineText:=erroneous.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    setLanguage(Language):-&lt;br /&gt;
        if Language=game::en then&lt;br /&gt;
            language_V:=polyLineTextEn::new()&lt;br /&gt;
        else &lt;br /&gt;
            language_V:=polyLineTextRu::new()&lt;br /&gt;
        end if.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    getInput(InputType)=Input:-&lt;br /&gt;
        Input=getInput(InputType,&amp;quot;&amp;quot;).&lt;br /&gt;
 &lt;br /&gt;
    getInput(InputType,StringParameter)=Input:-&lt;br /&gt;
        inputInvitation(InputType,StringParameter),&lt;br /&gt;
        !,&lt;br /&gt;
        Input = console::readLine(),&lt;br /&gt;
        console::clearInput().&lt;br /&gt;
    getInput(_InputType,_StringParameter)=_Input:-&lt;br /&gt;
        common_Exception::raise_error(classInfo,predicate_Name(),&amp;quot;InternalException. Extra alternative&amp;quot;).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    inputInvitation:(actionID_D,string StringParameter) determ.&lt;br /&gt;
clauses&lt;br /&gt;
    inputInvitation(playerStep_S,_StringParameter):-&lt;br /&gt;
        clearMessageArea(actionLine_C),&lt;br /&gt;
        writeMessage(actionLine_C,&amp;quot;%&amp;quot;,language_V:getText(playerStep_S)).&lt;br /&gt;
    inputInvitation(playerName_S,StringParameter):-&lt;br /&gt;
        console::writef(language_V:getText(playerName_S),StringParameter).&lt;br /&gt;
    inputInvitation(playerType_S,StringParameter):-&lt;br /&gt;
        hasDomain(string,PlayersDescriptor),&lt;br /&gt;
        [PlayersDescriptor,PlayerNo]=toTerm(StringParameter),&lt;br /&gt;
        console::writef(language_V:getText(playerType_S),PlayersDescriptor,PlayerNo).&lt;br /&gt;
    inputInvitation(startingPlayer_S,StringParameter):-&lt;br /&gt;
        console::write(StringParameter,language_V:getText(startingPlayer_S)).&lt;br /&gt;
    inputInvitation(searchDepth_S,StringParameter):-&lt;br /&gt;
        console::writef(language_V:getText(searchDepth_S),StringParameter).&lt;br /&gt;
    inputInvitation(fieldSize_S,StringParameter):-&lt;br /&gt;
        console::writef(language_V:getText(fieldSize_S),StringParameter).&lt;br /&gt;
    inputInvitation(noOfRounds_S,StringParameter):-&lt;br /&gt;
        console::writef(language_V:getText(noOfRounds_S),StringParameter).&lt;br /&gt;
    inputInvitation(singleOrMulti_S,_StringParameter):-&lt;br /&gt;
        console::write(language_V:getText(singleOrMultipleChoice_S)).&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    showStage():-&lt;br /&gt;
        game::multiMode_V=true,&lt;br /&gt;
        !.&lt;br /&gt;
    showStage():-&lt;br /&gt;
        console::clearOutput(),&lt;br /&gt;
        foreach I = std::fromTo(1, juniourJudge::maxColumn_P) do&lt;br /&gt;
            console::setLocation(console_native::coord(horizontalSpace_C*I, 0)), &lt;br /&gt;
            console::write(I)&lt;br /&gt;
        end foreach,&lt;br /&gt;
        foreach J = std::fromTo(1, juniourJudge::maxRow_P) do    &lt;br /&gt;
            console::setLocation(console_native::coord(0, verticalSpace_C*J)), &lt;br /&gt;
            console::write(J)&lt;br /&gt;
        end foreach.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    showStep(_Cell,_Type):-&lt;br /&gt;
        game::multiMode_V=true,&lt;br /&gt;
        clearMessageArea(actionLine_C),&lt;br /&gt;
        nextChar(char_V),&lt;br /&gt;
        !,&lt;br /&gt;
        writeMessage(actionLine_C,&amp;quot;%&amp;quot;,char_V).&lt;br /&gt;
    showStep(juniourJudge::c(X,Y),_Type):-&lt;br /&gt;
        console::setLocation(console_native::coord(horizontalSpace_C*X, verticalSpace_C*Y)),&lt;br /&gt;
        fail.&lt;br /&gt;
    showStep(_Cell,juniourJudge::ordinary_S):-&lt;br /&gt;
        console::write(cellMarkedOrdinary_C).&lt;br /&gt;
    showStep(_Cell,juniourJudge::winner_S):-&lt;br /&gt;
        console::write(cellMarkedWinner_C).&lt;br /&gt;
&lt;br /&gt;
class facts&lt;br /&gt;
    char_V:string:=&amp;quot;-&amp;quot;. % -\|/&lt;br /&gt;
class predicates&lt;br /&gt;
    nextChar:(string CharIn) determ.&lt;br /&gt;
clauses&lt;br /&gt;
    nextChar(&amp;quot;-&amp;quot;):-char_V:=&amp;quot;\\&amp;quot;.&lt;br /&gt;
    nextChar(&amp;quot;\\&amp;quot;):-char_V:=&amp;quot;|&amp;quot;.&lt;br /&gt;
    nextChar(&amp;quot;|&amp;quot;):-char_V:=&amp;quot;/&amp;quot;.&lt;br /&gt;
    nextChar(&amp;quot;/&amp;quot;):-char_V:=&amp;quot;-&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    announceStartUp():-&lt;br /&gt;
        reset().&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    announce(reportHeader_S,Parameter):-&lt;br /&gt;
        !,&lt;br /&gt;
        console::writef(language_V:getText(reportHeader_S),Parameter).&lt;br /&gt;
    announce(report_S,PlayerResultListList):-&lt;br /&gt;
        !,&lt;br /&gt;
        findAll&lt;br /&gt;
            (&lt;br /&gt;
            PlayerReport,&lt;br /&gt;
            (&lt;br /&gt;
            hasDomain(string,Name),&lt;br /&gt;
            [Name,WinsTotal,WinsFirst,WinsNext]=list::getMember_nd(toTerm(PlayerResultListList)),&lt;br /&gt;
                PlayerReport=string::format(language_V:getText(playerReport_S),Name,WinsTotal,WinsFirst,WinsNext)&lt;br /&gt;
             ),   &lt;br /&gt;
            PlayerReportList&lt;br /&gt;
            ),&lt;br /&gt;
        console::write(string::concatList(PlayerReportList)).&lt;br /&gt;
    announce(round_S,RoundString):-&lt;br /&gt;
        !,&lt;br /&gt;
        clearMessageArea(announceLine_C),&lt;br /&gt;
        writeMessage(announceLine_C,language_V:getText(round_S),RoundString).&lt;br /&gt;
    announce(starter_S,Name):-&lt;br /&gt;
        !,&lt;br /&gt;
        clearMessageArea(starterLine_C),&lt;br /&gt;
        writeMessage(starterLine_C,language_V:getText(beginner_S),Name).&lt;br /&gt;
    announce(errorPlayerType_S,_IgnoredText):-&lt;br /&gt;
        !,&lt;br /&gt;
        console::write(language_V:getText(errorPlayerType_S)),&lt;br /&gt;
        _=console::readLine().&lt;br /&gt;
    announce(errorMustBeNumber_S,_IgnoredText):-&lt;br /&gt;
        !,&lt;br /&gt;
        console::write(language_V:getText(errorMustBeNumber_S)).&lt;br /&gt;
    announce(errorStartingPlayer_S,_IgnoredText):-&lt;br /&gt;
        !,&lt;br /&gt;
        console::write(language_V:getText(errorStartingPlayer_S)).&lt;br /&gt;
    announce(errorFieldSize_S,_IgnoredText):-&lt;br /&gt;
        !,&lt;br /&gt;
        console::write(language_V:getText(errorFieldSize_S)).&lt;br /&gt;
    announce(errorNoOfRounds_S,_IgnoredText):-&lt;br /&gt;
        !,&lt;br /&gt;
        console::write(language_V:getText(errorNoOfRounds_S)).&lt;br /&gt;
    announce(error_S,ErrorText):-&lt;br /&gt;
        !,&lt;br /&gt;
        clearMessageArea(announceLine_C),&lt;br /&gt;
        writeMessage(announceLine_C,language_V:getText(error_S),ErrorText).&lt;br /&gt;
    announce(errorWrongCell_S,InvalidData):-&lt;br /&gt;
        !,&lt;br /&gt;
        clearMessageArea(announceLine_C),&lt;br /&gt;
        writeMessage(announceLine_C,language_V:getText(errorWrongCell_S),InvalidData).&lt;br /&gt;
    announce(win_S,Name):-&lt;br /&gt;
        !,&lt;br /&gt;
        clearMessageArea(announceLine_C),&lt;br /&gt;
        clearMessageArea(actionLine_C),&lt;br /&gt;
        writeMessage(announceLine_C,language_V:getText(congratulation_S),Name),&lt;br /&gt;
        _ = console::readLine().&lt;br /&gt;
    announce(loss_S,Name):-&lt;br /&gt;
        !,&lt;br /&gt;
        clearMessageArea(announceLine_C),&lt;br /&gt;
        clearMessageArea(actionLine_C),&lt;br /&gt;
        writeMessage(announceLine_C,language_V:getText(sorryLoss_S),Name),&lt;br /&gt;
        _ = console::readLine().&lt;br /&gt;
    announce(thinker_S,_Name):-&lt;br /&gt;
        game::multiMode_V=true,&lt;br /&gt;
        !.&lt;br /&gt;
    announce(thinker_S,Name):-&lt;br /&gt;
        !,&lt;br /&gt;
        clearMessageArea(announceLine_C),&lt;br /&gt;
        clearMessageArea(actionLine_C),&lt;br /&gt;
        writeMessage(actionLine_C,language_V:getText(thinker_S),Name).&lt;br /&gt;
    announce(_Any,_Name):-&lt;br /&gt;
        common_Exception::raise_error(classInfo,predicate_Name(),&amp;quot;InternalException. Extra alternative&amp;quot;).&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    waitOK():-&lt;br /&gt;
        _=console::readLine().&lt;br /&gt;
 &lt;br /&gt;
clauses&lt;br /&gt;
    reset():-&lt;br /&gt;
        console::setLocation(console_native::coord(0,0)),&lt;br /&gt;
        console::write(string::create(1600,&amp;quot; &amp;quot;)),&lt;br /&gt;
        console::clearOutput().&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    clearMessageArea:(positive AreaID).&lt;br /&gt;
clauses&lt;br /&gt;
    clearMessageArea(AreaID):-&lt;br /&gt;
        console::setLocation(console_native::coord(0,juniourJudge::maxRow_P*verticalSpace_C+AreaID)),&lt;br /&gt;
        console::write(string::create(emptyLineLenght_C,&amp;quot; &amp;quot;)).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    writeMessage:(positive AreaID,string FormatString,string ParameterString).&lt;br /&gt;
clauses&lt;br /&gt;
    writeMessage(AreaID,FormatString,ParameterString):-&lt;br /&gt;
        console::setLocation(console_native::coord(0, juniourJudge::maxRow_P*verticalSpace_C+AreaID)),&lt;br /&gt;
        console::writef(FormatString,ParameterString).&lt;br /&gt;
 &lt;br /&gt;
end implement humanInterface&lt;br /&gt;
 &lt;br /&gt;
/******************&lt;br /&gt;
  Class Competitors&lt;br /&gt;
******************/&lt;br /&gt;
class competitors&lt;br /&gt;
open core&lt;br /&gt;
 &lt;br /&gt;
predicates&lt;br /&gt;
    involvePlayers:().&lt;br /&gt;
 &lt;br /&gt;
end class competitors&lt;br /&gt;
 &lt;br /&gt;
implement competitors&lt;br /&gt;
open core&lt;br /&gt;
clauses&lt;br /&gt;
    involvePlayers():-&lt;br /&gt;
        involvePlayers(1).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    involvePlayers:(positive PlayerNo).&lt;br /&gt;
clauses&lt;br /&gt;
    involvePlayers(PlayerNo):-&lt;br /&gt;
        humanInterface::announceStartUp(),&lt;br /&gt;
        findAll&lt;br /&gt;
            (&lt;br /&gt;
            PlayerDescriptor,&lt;br /&gt;
            (&lt;br /&gt;
                playerDescriptor(No,PlayerDescriptorSrc),&lt;br /&gt;
                PlayerDescriptor=string::format(&amp;quot;% - %\n&amp;quot;,No,PlayerDescriptorSrc)&lt;br /&gt;
            ),&lt;br /&gt;
            PlayerDescriptorList&lt;br /&gt;
            ),&lt;br /&gt;
        PlayersDescriptor=string::concatList(PlayerDescriptorList),&lt;br /&gt;
        PlayerType=humanInterface::getInput(humanInterface::playerType_S,toString([PlayersDescriptor,toString(PlayerNo)])),&lt;br /&gt;
        not(PlayerType=&amp;quot;&amp;quot;),&lt;br /&gt;
        try&lt;br /&gt;
            Player=createPlayerObject(toTerm(PlayerType)),&lt;br /&gt;
            Player:setName(toString(PlayerNo)),&lt;br /&gt;
            game::addPlayer(Player),&lt;br /&gt;
            NewPlayerNo=PlayerNo+1&lt;br /&gt;
        catch _TraceID do&lt;br /&gt;
            humanInterface::announce(humanInterface::errorPlayerType_S,&amp;quot;&amp;quot;),&lt;br /&gt;
            NewPlayerNo=PlayerNo&lt;br /&gt;
        end try,&lt;br /&gt;
        !,&lt;br /&gt;
        involvePlayers(NewPlayerNo).&lt;br /&gt;
    involvePlayers(_PlayerNo).&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    wrongInputException:exception.&lt;br /&gt;
clauses&lt;br /&gt;
    wrongInputException&lt;br /&gt;
        (&lt;br /&gt;
        classInfo,&lt;br /&gt;
        predicate_Name(),&lt;br /&gt;
        &amp;quot;&amp;quot;&lt;br /&gt;
        ).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    playerDescriptor:(positive No [out],string PlayerDescriptorSrc [out]) multi.&lt;br /&gt;
clauses&lt;br /&gt;
    playerDescriptor(1,human::getPlayerDescriptor(game::language_V)).&lt;br /&gt;
    playerDescriptor(2,computer0::getPlayerDescriptor(game::language_V)).&lt;br /&gt;
    playerDescriptor(3,computer1::getPlayerDescriptor(game::language_V)).&lt;br /&gt;
    playerDescriptor(4,computer2::getPlayerDescriptor(game::language_V)).&lt;br /&gt;
/*Include here lines corresponding to the Player Class*/&lt;br /&gt;
%    playerDescriptor(5,computer3::getPlayerDescriptor(game::language_V)).&lt;br /&gt;
 &lt;br /&gt;
class predicates&lt;br /&gt;
    createPlayerObject:(positive)-&amp;gt;player.&lt;br /&gt;
clauses&lt;br /&gt;
    createPlayerObject(1)=Player:-&lt;br /&gt;
        !,&lt;br /&gt;
        Player=human::new().&lt;br /&gt;
   createPlayerObject(2)=Player:-&lt;br /&gt;
        !,&lt;br /&gt;
        Player=computer0::new().&lt;br /&gt;
   createPlayerObject(3)=Player:-&lt;br /&gt;
        !,&lt;br /&gt;
        Player=computer1::new().&lt;br /&gt;
    createPlayerObject(4)=Player:-&lt;br /&gt;
        !,&lt;br /&gt;
        Player=computer2::new().&lt;br /&gt;
/*Include here lines corresponding to the Player Class*/&lt;br /&gt;
/*&lt;br /&gt;
    createPlayerObject(5)=Player:-&lt;br /&gt;
        !,&lt;br /&gt;
        Player=computer3::new().&lt;br /&gt;
*/&lt;br /&gt;
    createPlayerObject(_)=_Player:-&lt;br /&gt;
        exception::raise(classInfo,wrongInputException,[]).&lt;br /&gt;
 &lt;br /&gt;
end implement competitors&lt;br /&gt;
&amp;lt;/vip&amp;gt;&lt;br /&gt;
=References=&lt;br /&gt;
[[ru:Учебный Проект. Релиз 7]]&lt;br /&gt;
[[Category:Tutorial Project Evolutions]]&lt;/div&gt;</summary>
		<author><name>Victor Yukhtenko</name></author>
	</entry>
</feed>