الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج لمحاكاة الاشارة الضوئية

بدأه abdo jaafreh في 21 أبريل 2009 · 8 رد · 1,086 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

تحية طيبة, اخواني اتمنى ان تساعدوني في عمل برنامج لمحاكاة الاشارة الضوئية على التقاطعات او ان تدلوني على سبيل لاستطيع استعارة البرامج التي تعمل على المواقع التالية:

1. http://homepages.wmich.edu/~s3thiaga/

2. http://gaia.ecs.csus.edu/~zhangd/oscal/pschedulingrms.html

3. http://www.phy.ntnu.edu.tw/ntnujava/index.php?topic=139

فهل تستطيعوا ذلك ارجو الرد

#2

نساعدك أن تعمل نعم

نساعدك على أن تغش لا

ابدأ في العمل وسأساعدك بالتأكيد

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

السلام عليكــم ورحمـة الله وبركاتــه ،،

ممكن تعرض علينا محاولاتك

#4

السلام عليكم و اسف لاني تأخرت, فصل الانترنت فاضطررت لاذهب لاحد الاصدقاء اكتب لكم من عنده:

هذه محاولتي:

import java.applet.*;
import java.awt.*;

class TrafficLight1 {

public static final int RED = 0;
public static final int YELLOW = 1;
public static final int GREEN = 2;

private int currentColor = RED;

public int change() {

switch (currentColor) {

case RED:
currentColor = YELLOW;
break;

case YELLOW:
currentColor = GREEN;
break;

case GREEN:
currentColor = RED;
break;

}

return currentColor;
}

public int getCurrentColor() {
return currentColor;
}
}


public class TrafficLightApplet extends Applet {

private TrafficLightCanvas trafficLightCanvas = new TrafficLightCanvas();

public void init() {

setLayout(new GridLayout(1, 1));
add(trafficLightCanvas);
}

public void start() {

trafficLightCanvas.start();
}

public void stop() {

trafficLightCanvas.stop();
}
}

class TrafficLightCanvas extends Canvas implements Runnable {

private TrafficLight trafficLight = new TrafficLight();
private Thread runner;

private final static int RED_SECS = 10;
private final static int YELLOW_SECS = 2;
private final static int GREEN_SECS = 10;

private final String redLabel = "red";
private final String yellowLabel = "yellow";
private final String greenLabel = "green";
private final String changeLabel = "change";
private final String startLabel = "start";

TrafficLightCanvas() {

setBackground(Color.cyan);
}

public void run() {

// Make sure the traffic light starts out as red
while (trafficLight.getCurrentColor() != TrafficLight.RED) {
trafficLight.change();
}

for (;;) {

repaint();

try {
Thread.sleep(getSecs());
}
catch (InterruptedException e) {
}

trafficLight.change();
}
}

private int getSecs() {

switch (trafficLight.getCurrentColor()) {

case TrafficLight.RED:
default:

return RED_SECS * 1000;

case TrafficLight.YELLOW:

return YELLOW_SECS * 1000;

case TrafficLight.GREEN:

return GREEN_SECS * 1000;
}
}

public void start() {

runner = new Thread(this);
runner.start();
}

public void stop() {

if (runner != null) {

runner.stop();
runner = null;
}
}

public void paint(Graphics g) {

Dimension dim = size();
int circleDiameter = dim.height / 4;
int circleRadius = dim.height / 8;
int quarterCircleDiameter = dim.height / 16;

int xCircleStart = (dim.width / 5) - circleRadius;
int yRedCircleStart = circleRadius / 2;
int yYellowCircleStart = circleDiameter + circleRadius;
int yGreenCircleStart = (3 * circleDiameter) - (circleRadius / 2);

// make a head
g.setColor(Color.red); 
g.fillRect(95,50,15,15);

// make the body
g.setColor(Color.red);
g.fillRect(95,70,15,45);

// make a arm1
g.setColor(Color.red);
g.fillRect(115,70,30,10);

// make a arm2
g.setColor(Color.red);
g.fillRect(60,70,30,10);

// make green head
g.setColor(Color.green);
g.fillRect(95,360,15,15);

// make green man body
g.setColor(Color.green);
g.fillRect(95,380,15,45);

// Make a green arm
g.setColor(Color.green);
g.fillRect(60,380,30,10);

// Make green arm 2 
g.setColor(Color.green);
g.fillRect(115,380,30,10);

// Make green foot 
g.setColor(Color.green);
g.fillRect(115,425,15,15);

// Make Green foot2
g.setColor(Color.green);
g.fillRect(108,420,15,15);

// Make Greenfoot3 
g.setColor(Color.green);
g.fillRect(122,430,15,15);

// make green foot left1
// Make Foot 
g.setColor(Color.green);
g.fillRect(80,420,15,15);

// Make Green Foot 2
g.setColor(Color.green);
g.fillRect(73,425,15,15);

// Make GreenFoot3
// Make Foot 
g.setColor(Color.green);
g.fillRect(66,430,15,15);

// Fill in one circle
switch (trafficLight.getCurrentColor()) {

case TrafficLight.RED:
default:

g.setColor(Color.red);
g.fillOval(xCircleStart, yRedCircleStart, circleDiameter, circleDiameter);
break;

case TrafficLight.YELLOW:

g.setColor(Color.yellow);
g.fillOval(xCircleStart, yYellowCircleStart, circleDiameter, circleDiameter);
break;

case TrafficLight.GREEN:

g.setColor(Color.green);
g.fillOval(xCircleStart, yGreenCircleStart, circleDiameter, circleDiameter);
break;
}

// Draw outlines of circles
g.setColor(Color.black);
g.drawOval(xCircleStart, yRedCircleStart, circleDiameter, circleDiameter);
g.drawOval(xCircleStart, yYellowCircleStart, circleDiameter, circleDiameter);
g.drawOval(xCircleStart, yGreenCircleStart, circleDiameter, circleDiameter);

int yLeftRedCircle = (3 * circleDiameter) / 4;
int yLeftYellowCircle = 2 * circleDiameter;
int yLeftGreenCircle = (3 * circleDiameter) + (circleDiameter / 5);

}
}

المشكلة يا اخوان ني وصلت لمرحلة ما يعطيني أخطاء بس في نفس الوقت ما بنفذ

هذا الشيء بصراحة أخذ مني الوقت الكبير

#5

بتعرفو يا اخوان انه التعامل مع ناس مثلكو غاية في الاهمية

ليش؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

لانه البرنامج اشتغل بشكل مرتب جدا

بس بدي تساعدوني في تطويره بدي اضيف عداد ثواني بسيط على الجنب بحيث بس تتغير الاشارة من لون الى اخر يبدا يعد من أول

#6

في نفس الخيط الذي قمت بعمله

اجعل الخيط بدلاً من أن ينام مرة واحدة ضعه ينام بمدة محددة وشغله معه عداد

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7

شو قصدك بالخيط لا أفهم ما تقصد

ممكن تعطيني وين موقعه بالكود

#8

الخيط أقصد به Thread

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#9

شكرا كثير

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…