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

هي لعبة تعلم الاطفال العادات الصحيه

مغلق
بدأه loloo_min في 24 أكتوبر 2007 · 12 رد · 2,924 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الأفاضل

لقد تعبت وأنا أبحث عن منتدى يكون مختص في البرمجة وعلى قدر كبير من كفاءة

ولكن حمدالله أنني أخيرا وجدت هذا المنتدى وأرجو أن أجد فيه المساعدة المطلوبة

إنني في السنة الأخيرة من دراستي الجامعية , قسم علوم حاسب

وكما هو معروف باعتبار انني في السنة الأخيرة فإنه يتطلب مني عمل مشروع نخرج

مشروعي عبارة عن برمجة لعبة تعليمية باستخدام J2ME

اللعبة موجهة لفئة الأطفال وهي لعبة تعلم الاطفال العادات الصحيه

وهي عبارة عن مجموعه صور تظهر على الشاشه فيما يحاول الطفل الربط بينهم بطريقة صحيحة

مثلا: يربط الطفل صورة الاسنان مع صورة فرشة الاسنان

فكرة اللعبة مثل فكرة الربط بين الصور المتشابهة

أحتاج المساعده فيما يلي:

1-أفكار للعادات الصحية الممكن تمثيلها بالصور ووضعها في اللعبه

2- اقتراحات عن

classes and methods التي ستتضمنها اللعبة

3- المساعدة في برمجة اللعبه واكوادها

ملاحظة:

الرجاء ابقاء اللعبه ابسط مايمكن حتى لاتتطلب مني وقت طويل في البرمجة

#2

:s الأخوة الأفاضل

أنا في إنتظار الردود لأنني معتمدة على الله ثم عليكم

رجاءاااااا لا تخيبو ظني في المنتدى!!!!!

#3

يا اخ اواخت لولو

رح اعطيكي الفكرةوالباقي عليكي

وان شاء الله تنتفعي

اول شي في شي اسمو form

لكل سؤال او صورة تعملي form

في كل form تحطي اربع اوخمس صور وبجنبها رقم

لمل الطفل او المستخدم يضغط رقم الصورة الصح يتم النقل مباشرة الى form تاني

و بتوقع هيك رح يصير الامر

او بامكانك استخدام الcanvas بدل الفورم

وان شاء الله، الله يحسبها الي كفعل لوجهه تعالى

و يا لولو كون اوضح باسألتك

يعني ضع سؤال مباشر بكون احسن

#4

الأخ الفاضل محمد

أولا أشكرك على التجاوب والرد على موضوعي بالرغم من طول الانتظار

ثانياً:

أنا مستجدة على هذه اللغة وإلى الآن مانزلت البرنامج على كمبيوتري فلذلك ماأدري كيف التعامل مع البرنامج

أنا عندي خبرة في التعامل مع الجافا عالPC لكن ليس معJ2ME

لذلك

ياريت لو سمحت تشرحلي اكتر عن الفورم؟

لأني أنا مخططة أن أنزل كل الصور على الانترفيس على شكل شبكة من الصور

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

وحيكون هناك رقم مرتبط بكل صورة عشان لمن أكتب الشروط يكون أسهل؟؟؟

أرجو التوضيح أكثر وأرجو تنويري إذا طريقتي عتنفع أو لأ؟؟؟

وشكراً

#5

اسمعي

استخدمي برنامج النت بينز netbeans

و هنالك الامور بسيطة

لكن

انت تتكلمي عن مؤشر

فليس هنالك مؤشر اي ماوس في الخلوي

فاذا اردت صنع مؤشر فانا لا اعلم كيفية ذلك :)

اما بالنسبة للتعامل مع الصور فالمشكلة في الj2me صعوبة التحكم بالتصاميم

فانصك ان تشدي حيلك و تشوفي كم مثال

و هادا رابط لكتاب شرحه بسيط

http://www.4shared.com/file/27433738/3845e...ays__sams_.html

من الاخ jfriend له كل الشكر

وان شاء الله الشباب هون ما بقصروا

بس يا اختي

هل انت متأكدة من قدرتك عصنع المشروع

ليس بالامر الصعب

لكن هل تملكين الوقت و المقدرة لتعلم هذه اللغة ؟

هادا سؤال بتسأليه لنفسك

و تحياتي

#6

أشكرك أخ محمد عاهتمامك

إن شاء الله أقدر اسوي المشروع لأني شايفة ان اللغة أسهل من الجافا عالدسك توب

انا الآن في مرحلة التعلم وطبعا لازم تكون البداية صعبة نوعا ما

لكن على قولك إن شاء الله الاخوان في المنتدى مايقصرو

ماشالله الدروس اللي حاطينها جدا مفيدة وبدات اتعلم عليها

مادري اذا شفت البرنامج اللا سوى الاخ ابومازن عن الرقم السري

/index.ph...=56636&st=0

نفس فكرة لعبتي بس اني حنزل الصور بدل الارقام والطفل يضغط على الصورتين المتشابهتين عشان يتم الربط

مادري هل تقترح طريقة اسهل لتطبيقها؟

يعني مثلا احط الصور في جنب ولكل صورة رقم بعدين الطفل يحاول يدخل ارقام الصور المتشابهة في خانات محددة على الجانب الاخر؟؟؟

ارجو افادتي وشكرا

#7

الموضوع مخالف من ناحية العنوان

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

و انصحك بالاطلاع على كودات الالعاب السابقة قبذلك تختصر الزمن و الجهد

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#8

السلام عليكم

كيفك يا لولو؟

كيف برنامجك؟

انا فكرتي كالتالي :

post-111465-1198545382_thumb.jpg

في برنامج الاخ ابو مازن ( كلمة السر )

تم استخدام الكنفاس canvas

يعني عند الضغط عرقم 1 يتم اختار الصور اللي اسفلها رقم واح

واظن ان في الكناف لا مشكلة في تحديد اماكن الصور و الكتابة

وان شاء الله المرة القادمة برفق مثال لتوضيح التعامل مع الكنفاس

للالاسف ما في انترنت عندي بالبيت و مشغول بمشروع تخرجي لاني خريج

و تحياتي للجميع ...

محمد

#9

مثال يوضح استخدام الكنفاس

2-1.jpg

2-2.jpg

/*
J2ME in a Nutshell
By Kim Topley
ISBN: 0-596-00253-X

*/
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;

public class GraphicsMIDlet extends MIDlet implements CommandListener {

	// The MIDlet's Display object
	private Display display;
	// Flag indicating first call of startApp
	protected boolean started;
	// Exit command
	private Command exitCommand;
	// Back to examples list command
	private Command backCommand;
	// The example selection list
	private List examplesList;
	// The Canvases used to demonstrate different Items
	private Canvas[] canvases;	// The example names. Used to populate the list.
	private String[] examples = {
		"Lines", "Rectangles", "RectangleFills",
		"Arcs", "FilledArcs", "Text"
	};

	protected void startApp() {
		if (!started) {
			started = true;
			display = Display.getDisplay(this);
			// Create the common commands
			createCommands();
			// Create the canvases
			createCanvases();
			// Create the list of examples
			createList();
			// Start with the List
			display.setCurrent(examplesList);
		}
	}

	protected void pauseApp() {
	}

	protected void destroyApp(boolean unconditional) {
	}

	public void commandAction(Command c, Displayable d) {
		if (d == examplesList) {
			// New example selected
			int index = examplesList.getSelectedIndex();
			display.setCurrent(canvases[index]);
		} else if (c == exitCommand) {
			// Exit. No need to call destroyApp
			// because it is empty.
			notifyDestroyed();
		} else if (c == backCommand) {
			// Go back to main selection list
			display.setCurrent(examplesList);
		}
	}
	private void createCommands() {
		exitCommand = new Command("Exit", Command.EXIT, 0);
		backCommand = new Command("Back", Command.BACK, 1);
	}
	private void createList() {
		examplesList = new List("Select Example", List.IMPLICIT);
		for (int i = 0; i < examples.length; i++) {
			examplesList.append(examples, null);
		} 
		examplesList.setCommandListener(this);
	}
	private void createCanvases() {
		canvases = new Canvas[examples.length];
		canvases[0] = createLinesCanvas();
		canvases[1] = createRectanglesCanvas();
		canvases[2] = createRectangleFillsCanvas();
		canvases[3] = createArcsCanvas();
		canvases[4] = createFilledArcsCanvas();
		canvases[5] = createTextCanvas();
	}

	private void addCommands(Displayable d) {
		d.addCommand(exitCommand);
		d.addCommand(backCommand);
		d.setCommandListener(this);
	}
	// Create the Canvas for the line drawing example
	private Canvas createLinesCanvas() {
		Canvas canvas = new LineCanvas();		
		addCommands(canvas);
		return canvas;
	}	
	// Create the Canvas for the rectangles example
	private Canvas createRectanglesCanvas() {
		Canvas canvas = new RectanglesCanvas();		
		addCommands(canvas);
		return canvas;
	}
	// Create the Canvas for the filled rectangles example
	private Canvas createRectangleFillsCanvas() {
		Canvas canvas = new RectangleFillsCanvas();		
		addCommands(canvas);
		return canvas;
	}
	// Create the Canvas for the arcs example
	private Canvas createArcsCanvas() {
		Canvas canvas = new ArcsCanvas();		
		addCommands(canvas);
		return canvas;
	}
	// Create the Canvas for the filled arcs example
	private Canvas createFilledArcsCanvas() {
		Canvas canvas = new FilledArcsCanvas();		
		addCommands(canvas);
		return canvas;
	}	
	// Create the Canvas for the text example
	private Canvas createTextCanvas() {
		Canvas canvas = new TextCanvas();		
		addCommands(canvas);
		return canvas;
	}

}

// A canvas that illustrates line drawing
class LineCanvas extends Canvas {
	public void paint(Graphics g) {
		int width = getWidth();
		int height = getHeight();

		// Fill the background using black
		g.setColor(0);
		g.fillRect(0, 0, width, height);

		// White horizontal line
		g.setColor(0xFFFFFF);
		g.drawLine(0, height/2, width - 1, height/2);

		// Yellow dotted horizontal line
		g.setStrokeStyle(Graphics.DOTTED);
		g.setColor(0xFFFF00);
		g.drawLine(0, height/4, width - 1, height/4);

		// Solid diagonal line in brightest gray
		g.setGrayScale(255);
		g.setStrokeStyle(Graphics.SOLID);
		g.drawLine(0, 0, width - 1, height - 1);
	}	
}

// A canvas that illustrates rectangles
class RectanglesCanvas extends Canvas {
	public void paint(Graphics g) {
		int width = getWidth();
		int height = getHeight();

		// Create a white background
		g.setColor(0xffffff);
		g.fillRect(0, 0, width, height);
		// Draw a solid rectangle
		g.setColor(0);
		g.drawRect(width/4, 0, width/2, height/4);
		// Draw a dotted rectangle inside
		// the solid rectangle.
		g.setStrokeStyle(Graphics.DOTTED);
		g.drawRect(width/4 + 4, 4, width/2 - 8, height/4 - 8);
		// Draw a rounded rectangle
		g.setStrokeStyle(Graphics.SOLID);
		g.drawRoundRect(width/4, height/2, width/2, height/4, 16, 8);
	}
}

// A canvas that illustrates filled rectangles
class RectangleFillsCanvas extends Canvas {
	public void paint(Graphics g) {
		int width = getWidth();
		int height = getHeight();

		// Create a black background
		g.setColor(0);
		g.fillRect(0, 0, width, height);

		// Draw a filled rectangle with
		// a dotted rectangle around it
		g.setStrokeStyle(Graphics.DOTTED);
		g.setColor(0x00ff00);
		g.fillRect(width/4, height/4, width/2, height/2);
		g.setColor(0xffff00);
		g.drawRect(width/4, height/4, width/2, height/2);
	}
}

// A canvas that illustrates arcs
class ArcsCanvas extends Canvas {
	public void paint(Graphics g) {
		int width = getWidth();
		int height = getHeight();

		// Create a black background
		g.setColor(0);
		g.fillRect(0, 0, width, height);

		// A quarter circle, clockwise 90 degrees
		// from the 3 o'clock position. Show the
		// bounding rectangle as well.
		g.setColor(0xffffff);
		g.drawArc(0, 0, width/2, height/2, 0, 90);
		g.setStrokeStyle(Graphics.DOTTED);
		g.setColor(0xffff00);
		g.drawRect(0, 0, width/2, height/2);

		// A quarter circle, anticlockwise 90 degrees
		// from the 3 o'clock position. 
		g.setStrokeStyle(Graphics.SOLID);
		g.setColor(0xffffff);
		g.drawArc(width/2, 0, width/2, height/2, 0, -90);
		g.setStrokeStyle(Graphics.DOTTED);
		g.setColor(0xffff00);
		g.drawRect(width/2, 0, width/2, height/2);
		// An elliptical arc from the six o'clock
		// position, counterclockwise 180 degrees
		g.setStrokeStyle(Graphics.SOLID);
		g.setColor(0xffffff);
		g.drawArc(0, height/2, width, height/2, -90, -180);
		g.setStrokeStyle(Graphics.DOTTED);
		g.setColor(0xffff00);
		g.drawRect(0, height/2, width, height/2);		
	}
}

// A canvas that illustrates filled arcs
class FilledArcsCanvas extends Canvas {
	public void paint(Graphics g) {
		int width = getWidth();
		int height = getHeight();

		// Create a black background
		g.setColor(0);
		g.fillRect(0, 0, width, height);

		// A quarter circle, clockwise 90 degrees
		// from the 3 o'clock position. Show the
		// bounding rectangle as well.
		g.setColor(0xffffff);
		g.fillArc(0, 0, width/2, height/2, 0, 90);
		g.setStrokeStyle(Graphics.DOTTED);
		g.setColor(0xffff00);
		g.drawRect(0, 0, width/2, height/2);

		// A quarter circle, anticlockwise 90 degrees
		// from the 3 o'clock position. 
		g.setStrokeStyle(Graphics.SOLID);
		g.setColor(0xffffff);
		g.fillArc(width/2, 0, width/2, height/2, 0, -90);
		g.setStrokeStyle(Graphics.DOTTED);
		g.setColor(0xffff00);
		g.drawRect(width/2, 0, width/2, height/2);
		// An elliptical arc from the six o'clock
		// position, counterclockwise 180 degrees
		g.setStrokeStyle(Graphics.SOLID);
		g.setColor(0xffffff);
		g.fillArc(0, height/2, width, height/2, -90, -180);
		g.setStrokeStyle(Graphics.DOTTED);
		g.setColor(0xffff00);
		g.drawRect(0, height/2, width, height/2);		
	}
}

// A canvas that illustrates text rendering
class TextCanvas extends Canvas {
	public void paint(Graphics g) {
		int width = getWidth();
		int height = getHeight();

		// Create a black background
		g.setColor(0);
		g.fillRect(0, 0, width, height);
		// Top-left of canvas
		g.setColor(0xffffff);
		g.drawString("Top left", 0, 0, Graphics.TOP | Graphics.LEFT);
		// Draw another string one line below
		Font font = g.getFont();
		g.drawString("Below top left", 0, font.getHeight(), Graphics.TOP | Graphics.LEFT);
		// Bottom-right of canvas
		g.drawString("Bottom right", width, height, Graphics.BOTTOM | Graphics.RIGHT);
		// Mixed fonts and colors
		String str = "Multi-font ";		
		font = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_UNDERLINED, Font.SIZE_LARGE);
		g.setFont(font);
		g.drawString(str, 0, height/2, Graphics.LEFT | Graphics.BASELINE);
		int x = font.stringWidth(str);
		g.setColor(0x00ff00);
		g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD | Font.STYLE_ITALIC, 
	Font.SIZE_MEDIUM));

		g.drawString("and multi-color", x, height/2, Graphics.LEFT | Graphics.BASELINE);
	}
}
#10

أهلين أخ محمد

الحمدلله أنا بخير

معليش على الانقطاع الطويل بس شكلو كان المنتدى في تصليحات ومابيرضى يفتح معايا الصفحة

عالعموم مشكووووور وماقصرت

أقدر لك اهتمامك بالرغم من انشغالك بمشروعك

يعني الحال من بعضه

البرنامج مش ولا بد لاني بدأت مرحلة البرمجة ومعكس معايا شويتين

أنا استخدمت فيه الفورم لاني قررت أن اسويه بطريقة اسهل

يعني يكون بس ازارير وبجانب كل ازرار فيلد لادخال الرقم

بحيث ان اللاعب بضغط عشان يشوف الصورة وبعدبن يعطي كل صورتين مترابطتين الرقم نفسه الذي سيتم وضعه في الفيلد

هادي الفكرة باختصار

الآن أنا عالقة في نقطة وأتمنى أي أحد يساعدني فيها لأنها مرة مهمة وعلى أساسها تعتمد اللعبه ككل

وأتمنى من الجميع المساعدة بقدر الإمكان

المشكلة هي

أنا عندي تقريبا اكثر من 14 كلاس في اللعبه وواحد منهم فقط هو الميدلت

واللعبة تحتاج أن اللاعب ينتقل من فورم للآخر عن طريق اختيار امر الانتقال

"OK"

بس المشكلة الآن

لمن أشغل المتصنت في كلاس غير الميدلت يعطيني خطأ

Building "Hygienical Habits"

C:\Documents and Settings\Alla\j2mewtk\2.5.2\apps\Hygienical Habits\src\Button.java:48: setItemCommandListener(javax.microedition.lcdui.ItemCommandListener) in javax.microedition.lcdui.Item cannot be applied to (Button)

item3.setItemCommandListener(this);

^

1 error

com.sun.kvem.ktools.ExecutionException

Build failed

هل في طريقة تخليني أقدر أشغل المتصنت في كلاس غير الميدلت؟

سواء أكان المتنصت لأمر او لأزرار

رجاءا أفيدوني بحلول سريعة لأن الوقت محدود

مع الشكر مقدما...

#11

الأخوة الأفاضل أأسف للإزعاج

أنا أضفت السؤال السابق في موضوع جديد مراعاة لقواعد المنتدى

لذلك أرجو منكم إضافة الردود هنالك

وشكرا

#12

شو رايك تبعتبلي الكود بشكل كامل

my email : mosh_java@yahoo.com

#13

أخ محمد أشكرك على هذه الخدمة

أتمنى تشيك عالايميل لاني ارسلت الاكواد

شكرا

هذا الموضوع مغلق.

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