Void Handlerev()
{ bool crash = false; for (int i = 0; i < al->Count; i++) { Avto ^a = (Avto^)al[i];
if (a->life) for (int j = i; j < al->Count; j++) { Avto ^a1 = (Avto^)al[j];
if ((a->num!= a1->num) && (System::Math::Abs(a1->x - a->x) < 10) && (System::Math::Abs(a1->y - a->y) < 10)) { System::Console::WriteLine("Автомобили " + a->num + " и " + a1->num + " врезались"); crash = true; a->run = false; a1->run = false; Thread::Sleep(500); a->run = true; a1->run = true; run = true;
if (crash) { if ((a->x > a1->x)||(a->y > a1->y)) { a->x += 2; a1->x -= 1; a->y += 2; a1->y -= 1; } else { a1->x += 2; a->x -= 1; a1->y += 2; a->y -= 1; } System::Console::WriteLine("Автомобили " + a->num + " и " + a1->num + " разъехались"); }
} } }
}
… };
static void main() { Application::Run(gcnew Avtos()); } Результат:
Пример 5.3.5.3. Реализация пятого этапа разработки Avtos–приложения на языке Java.
import java.util.*; import java.awt.*; import java.awt.event.*; import java.io.*;
public class Avto extends Observable implements Runnable { … }
public class Autos extends Frame implements Observer, ActionListener, ItemListener { … //перерисовать окно public void paint(Graphics g) {
g.setColor(Color.gray); g.fillOval(100, 100, 604, 604); g.fillOval(175, 175, 450, 450); g.setColor(Color.white); g.fillOval(173, 173, 454, 454); g.setColor(Color.gray); g.fillOval(175, 175, 450, 450); g.fillOval(175, 175, 450, 450); g.setColor(Color.green); g.fillOval(245, 245, 300, 300); for (int i = 0; i < al.size(); i++) { g.setColor(Color.red); Avto a = (Avto)al.get(i); g.fillOval(a.X(), a.Y(), 25, 25); g.setColor(Color.white); g.drawString(Integer.toString(a.num), a.X() + 5, a.Y() + 15);
}
boolean crash = false; for (int i = 0; i < al.size(); i++) { Avto a = (Avto)al.get(i);
|