حرب النواة
لعبة Core War هي لعبة برمجة طُرحت عام 1984 من قِبل دي جي جونز وإيه كيه ديودني . في هذه اللعبة، يتنافس برنامجان قتاليان أو أكثر، يُعرفان باسم المحاربين ، للسيطرة على حاسوب افتراضي . كُتبت هذه البرامج بلغة تجميع مجردة تُسمى Redcode . وضعت الجمعية الدولية لحروب Core Wars (ICWS) المعايير الأولية لـ Redcode والآلة الافتراضية، مع تعديلات لاحقة بناءً على توافق آراء المجتمع.
أسلوب اللعب
في بداية المباراة، يتم تحميل كل محارب في موقع ذاكرة عشوائي. تتناوب البرامج على تنفيذ تعليمة واحدة في كل مرة. يفوز البرنامج بإنهاء جميع الخصوم، عادةً عن طريق إجبارهم على تنفيذ تعليمات غير صالحة، مما يجعل البرنامج المنتصر يمتلك الجهاز وحده.
احتوت الإصدارات الأولى من Redcode على ثماني تعليمات فقط. ارتفع هذا العدد إلى عشر تعليمات في معيار ICWS-86، ثم إلى إحدى عشرة في ICWS-88، ووصل إلى ست عشرة في مسودة معيار عام 1994، والتي لا تزال مستخدمة على نطاق واسع. مع إدخال أنماط عنونة متنوعة ومُعدِّلات للتعليمات في مسودة عام 1994، يصل إجمالي عدد العمليات الممكنة إلى 7168 عملية. لا يُحدد Redcode كيفية تمثيل التعليمات في الذاكرة، كما لا يسمح للبرامج بفحص بنية التعليمات البرمجية الخاصة بها إلا من خلال النسخ ومقارنة القيم. تقتصر العمليات الحسابية على حقلي العنوان الخاصين بالتعليمات.
- مدة التعليمات الثابتة والوقت
- تشغل كل تعليمة من تعليمات Redcode خانة ذاكرة واحدة بالضبط، وتستغرق دورة واحدة للتنفيذ. ومع ذلك، فإن معدل تنفيذ التعليمات يعتمد على عدد العمليات الأخرى في قائمة الانتظار، حيث يتم توزيع وقت المعالجة بالتساوي.
- الذاكرة الدائرية
- يتم الوصول إلى الذاكرة بوحدات تعليمة واحدة. مساحة الذاكرة (أو النواة ) محدودة الحجم، ولكن يُستخدم التوجيه النسبي فقط، أي أن العنوان 0 يشير دائمًا إلى التعليمة قيد التنفيذ حاليًا، والعنوان 1 إلى التعليمة التي تليها، وهكذا. تُضبط قيمة العنوان القصوى لتكون مساوية لعدد مواقع الذاكرة ناقص واحد، وتتجاوز هذا العدد إذا لزم الأمر. ونتيجة لذلك، توجد علاقة تناظرية بين العناوين ومواقع الذاكرة، ولكن يستحيل على برنامج Redcode تحديد أي عنوان مطلق. ستستمر العملية التي لا تصادف أي تعليمات غير صالحة أو تعليمات قفز في تنفيذ التعليمات المتتالية بلا نهاية، لتعود في النهاية إلى التعليمة التي بدأت منها.
- المعالجة المتعددة منخفضة المستوى
- بدلاً من مؤشر تعليمة واحد، يحتوي محاكي Redcode على قائمة انتظار لكل برنامج، تضم عددًا متغيرًا من مؤشرات التعليمات التي يتنقل المحاكي بينها. يبدأ كل برنامج بعملية واحدة فقط، ولكن يمكن إضافة عمليات جديدة إلى قائمة الانتظار باستخدام
SPLتعليمة DAT. تنتهي العملية عند تنفيذ تعليمة DAT أو عند إجراء عملية قسمة على صفر . يُعتبر البرنامج ميتًا عندما لا يتبقى له أي عمليات.
- لا يوجد وصول خارجي
- لا يوفر كل من Redcode وبنية MARS أي وظائف إدخال أو إخراج. يُعدّ المحاكي نظامًا مغلقًا، حيث يقتصر الإدخال على القيم الأولية للذاكرة وقوائم انتظار العمليات، بينما يقتصر الإخراج على نتيجة المعركة، أي البرامج التي بقيت عملياتها قائمة. بالطبع، قد يسمح المحاكي بإجراء عمليات فحص وتعديل خارجية للذاكرة أثناء تشغيل المحاكاة.
إصدارات ريدكود
توجد عدة نسخ من لغة Redcode. تختلف النسخة الأولى التي وصفها إيه كيه ديودني [ 1 ] في جوانب عديدة عن المعايير اللاحقة التي وضعتها الجمعية الدولية لحروب النواة، ويمكن اعتبارها لغة مختلفة، وإن كانت ذات صلة. يعتمد الشكل الأكثر شيوعًا للغة Redcode اليوم على مسودة معيار قُدّمت إلى الجمعية الدولية لحروب النواة عام 1994، والتي لم تُعتمد رسميًا قط، نظرًا لأن الجمعية كانت قد توقفت عن العمل فعليًا في ذلك الوقت. مع ذلك، استمر تطوير Redcode بشكل غير رسمي، لا سيما عبر المنتديات الإلكترونية مثل مجموعة الأخبار rec.games.corewar[ 2 ] .
استراتيجية
يُصنَّف المحاربون عادةً إلى عدد من الفئات العامة، مع أن المحاربين الحقيقيين قد يجمعون في كثير من الأحيان بين سلوك فئتين أو أكثر من هذه الفئات. تُعرف ثلاث من الاستراتيجيات الشائعة ( المُستنسخ ، والماسح الضوئي ، والمُفجِّر ) أيضًا باسم "الورقة والمقص والحجر" ، نظرًا لأن أداءها ضد بعضها البعض يُقارب أداء نظيراتها في لعبة الملعب الشهيرة. [ 3 ]
- ورق (أو ناسخة)
- يقوم المُستنسخ بإنشاء نسخ متكررة من نفسه وينفذها بالتوازي، حتى يملأ النواة بالكامل بنسخ من شفرته. يصعب القضاء على المُستنسخين، لكنهم غالبًا ما يواجهون صعوبة في القضاء على خصومهم. لذلك، يميل المُستنسخون إلى تحقيق الكثير من التعادلات، خاصةً ضد مُستنسخين آخرين.
- الحرير نوع خاص من أجهزة النسخ فائقة السرعة، سُمّي نسبةً إلى كتاب " محارب الحرير" [ 4 ] للمؤلف يوها بوهيالاينن. معظم أجهزة النسخ الحديثة من هذا النوع. تستخدم أجهزة نسخ الحرير التنفيذ المتوازي لنسخ كامل شفرتها بتعليمات واحدة، وتبدأ تنفيذ النسخة قبل اكتمالها. [ 5 ]
- مقص (أو ماسح ضوئي)
- صُمم الماسح الضوئي للتغلب على المُستنسخين. لا يهاجم الماسح الضوئي بشكل عشوائي، بل يحاول تحديد موقع عدوه قبل شن هجوم مُستهدف. هذا يجعله أكثر فعالية ضد الخصوم الذين يصعب القضاء عليهم مثل المُستنسخين، ولكنه يجعله أيضًا عُرضة للخداع. عادةً ما يُقصف الماسح الضوئي الذاكرة بتعليمات SPL 0. يتسبب هذا في قيام العدو بإنشاء عدد هائل من العمليات التي لا تفعل شيئًا سوى إنشاء المزيد من العمليات، مما يُبطئ العمليات المفيدة. عندما يُصبح العدو بطيئًا جدًا لدرجة أنه غير قادر على القيام بأي شيء مُفيد، يتم قصف الذاكرة بتعليمات DAT . كما أن الماسحات الضوئية عمومًا أكثر تعقيدًا، وبالتالي فهي أكبر حجمًا وأكثر هشاشة من أنواع المحاربين الأخرى. [ 6 ]
- الماسح الضوئي أحادي اللقطة هو ماسح ضوئي بسيط للغاية يقوم بمسح النواة فقط حتى يعثر على الهدف الأول، ثم ينتقل بشكل دائم إلى استراتيجية هجومية، عادةً ما تكون مسح النواة. يُعدّ برنامج Myrmidon [ 7 ] من تصميم روي فان راين مثالاً على الماسح الضوئي أحادي اللقطة.
- حجر (أو قاذفة قنابل)
- تقوم قاذفة قنابل بنسخ "قنبلة" بشكل عشوائي على فترات منتظمة في النواة، على أمل إصابة العدو. غالبًا ما تكون القنبلة عبارة عن تعليمات DAT ، على الرغم من إمكانية استخدام تعليمات أخرى، أو حتى قنابل متعددة التعليمات. تتميز قاذفة القنابل بصغر حجمها وسرعتها، وتكتسب ميزة إضافية على عمليات مسح الخصوم نظرًا لأن القنابل تُستخدم أيضًا كعناصر تشتيت فعالة. غالبًا ما تُدمج قاذفات القنابل مع طائرات حلزونية مُحسّنة لزيادة مقاومتها ضد المُستنسخات.
- مصاص دماء (أو صائد الفخاخ)
- يحاول مصاص الدماء إجبار عمليات خصمه على القفز إلى جزء من شفرته يُسمى "الحفرة". يمكن أن يكون مصاصو الدماء إما قاذفات قنابل أو ماسحات ضوئية. من أبرز نقاط ضعفهم سهولة مهاجمتهم بشكل غير مباشر، إذ يضطرون بالضرورة إلى نشر مؤشرات لشفرتهم في جميع أنحاء النواة. كما أن هجماتهم بطيئة، حيث تستغرق العمليات جولة إضافية للوصول إلى الحفرة. يُعدّ myVamp [ 8 ] من تطوير بولسون مثالًا على مصاص الدماء.
- عفريت
- سُميت العفاريت نسبةً إلى أول محارب نُشر على الإطلاق، وهو "إمب " [ 9 ] من ابتكار إيه كيه ديودني ، وهو محارب متنقل بسيط ذو تعليمة واحدة، يقوم بنسخ تعليمته الوحيدة باستمرار قبل مؤشرها . يصعب قتل العفاريت، لكنها عديمة الفائدة تقريبًا في الهجوم. تكمن فائدتها في سهولة استدعائها بأعداد كبيرة، وقدرتها على البقاء حتى بعد مقتل بقية المحاربين.
- تتألف حلقة العفاريت (أو حلزون العفاريت ) من عفاريت موزعة على مسافات متساوية حول النواة، وتنفذ مهامها بالتناوب. تنسخ العفاريت الموجودة في كل ذراع من الحلقة/الحلزون تعليماتها إلى الذراع التالي، حيث تُنفذ التعليمات فورًا. يصعب القضاء على الحلقات والحلزونات أكثر من العفاريت العادية، ولديها فرصة (ضئيلة) لقتل المحاربين غير المحميين منها. يجب أن يكون عدد أذرع حلقة العفاريت أو الحلزون عددًا أوليًا نسبيًا بالنسبة لحجم النواة.
- هيدرا
- تطلق طائرات الهيدرا نسخًا متعددة من القاذفات الصغيرة أو طائرات إزالة النواة. [ 10 ]
- الماسح الضوئي السريع (أو المسح السريع)
- يحاول الماسح السريع الإيقاع بخصمه مبكرًا باستخدام حلقة مسح سريعة جدًا. يُعدّ المسح السريع استراتيجيةً فعّالةً في بداية اللعبة، ويتطلب دائمًا وجود استراتيجية بديلة. يُمكن أن يُحسّن إضافة عنصر المسح السريع إلى المحارب من أدائه ضد المحاربين ذوي القدرات الطويلة، مثل غيرهم من مستخدمي المسح السريع. مع ذلك، لا يُمكن للمسح السريع استهداف سوى عدد محدود من المواقع، ومن غير المرجح أن يُصيب خصمًا صغيرًا.
- بوتستراب
- تقوم برامج التمهيد بنسخ واحد أو أكثر من مكوناتها بعيدًا عن موقعها الأصلي، تاركةً فخًا لجذب الماسحات الضوئية والماسحات الضوئية السريعة. [ 11 ]
- محاربون مختلطون
- بعض المحاربين يتبعون استراتيجيات مختلفة في نفس الوقت أو في أوقات مختلفة.
- على سبيل المثال، Stone/Imp . Stone/Imps هي قطع صغيرة تم إقرانها مع قطع صغيرة لتقليل بعض الخسائر ضد الورق.
- بعض أنجح المحاربين على مر العصور هم من فصيلة الحجر/العفاريت.
- كور كلير
- تُعيد عملية مسح النواة كتابة جميع التعليمات الموجودة فيها بالتسلسل، بما في ذلك نفسها أحيانًا. لا تُعدّ عمليات مسح النواة شائعةً جدًا لدى المحاربين المستقلين، ولكنها تُستخدم غالبًا كاستراتيجية نهائية من قِبل القاذفات وأجهزة المسح.
برمجة الحرب الأساسية
بفهم استراتيجيات الحرب الأساسية ، يستطيع المبرمج إنشاء محارب لتحقيق أهداف محددة. تظهر الأفكار الثورية بين الحين والآخر، لكن في أغلب الأحيان، يعتمد المبرمجون برامجهم على محاربين منشورين مسبقًا. باستخدام أدوات تحسين الأداء مثل OptiMax أو أدوات تحسين خطوات النواة، يمكن إنشاء محارب أكثر فعالية.
يمكن أيضًا توليد المحاربين باستخدام الخوارزميات الجينية أو البرمجة الجينية . تُعرف البرامج التي تُدمج هذه التقنية التطورية باسم المُطوِّرات . وقد قدّم مجتمع حروب النواة العديد من المُطوِّرات ، والتي تميل إلى التركيز على توليد المحاربين في بيئات النواة الأصغر. وكان أحدث مُطوِّر حقق نجاحًا ملحوظًا هو μGP [ 12 ] [ 13 ]، والذي أنتج بعضًا من أنجح المحاربين النانويين والصغار. ومع ذلك، لا تزال الاستراتيجية التطورية بحاجة إلى إثبات فعاليتها في بيئات النواة الأكبر. [ 14 ]
تطوير
استُلهمت لعبة Core War من برنامج ذاتي التكاثر يُدعى Creeper ، وبرنامج لاحق يُدعى Reaper قام بتدمير نسخ Creeper. [ 15 ] ابتكر برنامج Creeper بوب توماس في شركة BBN . [ 16 ] لم يكن ديودني على دراية بأصل برنامجي Creeper وReaper، ويشير إليهما على أنهما مجرد شائعة منسوبة إلى داروين وتجارب شوخ وهوب على الديدان. ومع ذلك، تشير مقالة مجلة Scientific American لعام 1984 حول Core War [ 15 ] إلى لعبة Darwin ، التي لعبها فيكتور أ. فيسوتسكي وروبرت موريس ودوغلاس ماكلروي في مختبرات بيل عام 1961.
كلمة "Core" في الاسم مشتقة من ذاكرة النواة المغناطيسية ، وهي تقنية ذاكرة وصول عشوائي قديمة . كان هذا المصطلح، ولا يزال حتى اليوم، شائع الاستخدام للإشارة إلى الذاكرة العاملة في ملفات تفريغ الذاكرة العاملة، والتي تُسمى ملفات تفريغ الذاكرة الأساسية ، على أنظمة يونكس ومعظم الأنظمة الشبيهة بيونكس. بالإضافة إلى ذلك، فإن اسم الملف الافتراضي المستخدم لملفات تفريغ الذاكرة الأساسية على هذه الأنظمة هو عادةً "core" أو يحتوي على كلمة "core".
نُشر أول وصف للغة Redcode في مارس 1984، ضمن كتاب " إرشادات حرب النواة" من تأليف دي جي جونز وإيه كيه ديودني . [ 1 ] وطُرحت اللعبة للجمهور في مايو 1984، في مقال كتبه ديودني في مجلة ساينتفك أمريكان . ثم عاد ديودني للحديث عن حرب النواة في عموده "ترفيه الحاسوب" في مارس 1985، [ 17 ] ومرة أخرى في يناير 1987. [ 18 ]
تأسست الجمعية الدولية لحروب النواة (ICWS) عام 1985، بعد عام من نشر مقال ديودني الأصلي. ونشرت الجمعية معايير جديدة للغة ريدكود عامي 1986 و1988، واقترحت تحديثًا عام 1994 لم يُعتمد رسميًا كمعيار جديد. [ 19 ] ومع ذلك، فقد تم اعتماد مسودة عام 1994 وتوسيعها على نطاق واسع، وهي تُشكل أساس المعيار الفعلي لريدكود اليوم. أدار الجمعية كل من مارك كلاركسون (1985-1987)، وويليام آر. باكلي (1987-1992)، وجون نيومان (1992-)؛ وهي حاليًا غير نشطة. [ 20 ]
ريدكود
0000 : ADD.AB # 4 , $ 3 0001 : MOV.F $ 2 , @ 2 0002 : JMP.B $ -2 , $ 0 0003 : DAT.F # 0 , # 0ريدكود هي لغة البرمجة المستخدمة في لعبة كور وور . يتم تنفيذها بواسطة آلة افتراضية تُعرف باسم محاكي ريدكود لمصفوفة الذاكرة ( MARS) . يستند تصميم ريدكود بشكل فضفاض إلى لغات التجميع CISC الفعلية من أوائل ثمانينيات القرن الماضي، ولكنه يحتوي على العديد من الميزات غير الموجودة عادةً في أنظمة الكمبيوتر الفعلية.
صُممت كل من Redcode وبيئة MARS لتوفير منصة بسيطة ومجردة دون تعقيدات الحواسيب والمعالجات الفعلية. ورغم أن Redcode مصممة لتشبه لغة التجميع CISC العادية، إلا أنها مبسطة للغاية مقارنةً بلغة التجميع "الحقيقية"، ولا تحتوي على عنونة ذاكرة مطلقة.
تم وصف التعليمات الثمانية الأصلية على النحو التالي. أضافت الإصدارات اللاحقة تعليمات NOP والضرب ومقارنات أكثر تعقيدًا. [ 21 ]
| رمز العملية | ذاكري | الحجة (الحجج) | فعل |
|---|---|---|---|
| 0 | بيانات | ب | تعليمة غير قابلة للتنفيذ تُستخدم لتخزين قيمة البيانات B. |
| 1 | فيديو | أ، ب | انقل محتويات A إلى الموقع B. |
| 2 | يضيف | أ، ب | أضف محتويات الموقع A إلى محتويات الموقع B، ثم خزّن النتيجة في الموقع B. |
| 3 | فرعي | أ، ب | اطرح محتويات الموقع A من محتويات الموقع B وخزن النتيجة في الموقع B. |
| 4 | JMP | أ | انتقل إلى الموقع أ. |
| 5 | JMZ | أ، ب | إذا كانت محتويات B تساوي صفرًا، فانتقل إلى الموقع A؛ وإلا، فتابع التعليمات التالية. |
| 6 | JMG | أ، ب | إذا كانت محتويات B أكبر من الصفر، فانتقل إلى الموقع A؛ وإلا، فتابع التعليمات التالية. |
| 7 | دي جي زد | أ، ب | قم بإنقاص محتويات الموقع B بمقدار 1. إذا كان الموقع B الآن يساوي صفرًا، فانتقل إلى الموقع A؛ وإلا، فتابع مع التعليمات التالية. |
| 8 | CMP | أ، ب | قارن محتويات A بمحتويات B. إذا لم تكن متساوية، فتخطى التعليمات التالية؛ وإلا، فنفذ التعليمات التالية. |
أضافت مسودة معيار ICWS '94 المزيد من أنماط العنونة، معظمها للتعامل مع التوجيه غير المباشر للحقل A، ليصبح المجموع 8 أنماط:
| وضع | فعل |
|---|---|
| 8 | مباشر |
| دولار | مباشر ( $يمكن حذف "الـ") |
| * | الرمية غير المباشرة من الملعب أ (أضيفت في مسودة المعيار لعام 1994) |
| @ | المجال المغناطيسي غير المباشر |
| { | الرمية غير المباشرة في الحقل أ مع التناقص المسبق (أضيفت في مسودة المعيار لعام 1994) |
| < | المجال المغناطيسي غير المباشر مع التناقص المسبق |
| } | رمية غير مباشرة في الحقل أ مع زيادة لاحقة (أضيفت في مسودة المعيار لعام 1994) |
| > | المجال B غير المباشر مع الزيادة اللاحقة (أضيف في مسودة المعيار لعام 1994) |
التطبيقات
استمر تطوير تطبيقات اللعبة على مر السنين من قبل العديد من المؤلفين. تتوفر نسخ متعددة من اللعبة، [ 22 ] تم نقلها إلى منصات مختلفة. على سبيل المثال ، pMARS وهو برنامج مفتوح المصدر مع شفرة المصدر على SourceForge ، [ 23 ] أو SDL pMARS لنظام التشغيل Windows المبني على SDL . [ 24 ]
تم تنزيل تطبيق pMars الشائع من SourceForge أكثر من 35000 مرة بين عامي 2000 و 2021. [ 25 ]
مراجع
- 1 2 جونز، دي جي؛ ديودني، إيه كيه (مارس 1984). "المبادئ التوجيهية الأساسية للحرب" . تم الاسترجاع في 27-05-2023 .
- ↑ "rec.games.corewar على مجموعات جوجل" . تم الاطلاع عليه بتاريخ 29-05-2023 .
- ↑ وانغسو، مينتاردجو. "مقدمة في الفن عام 1988: ثلاثية الورق - الحجر - المقص" . تم الاطلاع عليه بتاريخ 27-05-2023 .
- ^ بوهجالاينن، جيبو. "محارب الحرير 1.3" . تم الاسترجاع 2025-03-02 .
- ^ بوهجالاينن ، جيبو (أبريل 1995). "النسخ المتماثلة؟ -> Phoenix & TimeScapesource" . تم الاسترجاع بتاريخ 27-05-2023 .
- ↑ ميتكالف، جون (أبريل 2004). "تشريح الماسح الضوئي، مقدمة أساسية" . تم الاسترجاع في 27-05-2023 .
- ↑ فان راين، روي. "ميرميدون" . تم الاسترجاع 2025-03-02 .
- ^ بولسون، ماغنوس. "ماي فامب v3.7" . تم الاسترجاع 2025-03-02 .
- ^ ديودني، حزب العدالة والتنمية “العفريت” . تم الاسترجاع 2025-03-02 .
- ↑ "دليل استراتيجية الحرب الأساسية" . تم الاطلاع عليه بتاريخ 12-05-2024 .
- ↑ "دليل استراتيجية الحرب الأساسية" . تم الاطلاع عليه بتاريخ 12-05-2025 .
- ↑ سكويليرو، جيوفاني. "μGP (MicroGP v2)" . جيثب . تم الاسترجاع 2018-09-10 .
- ↑ كورنو، ف.؛ سانشيز، إ.؛ سكويليرو، ج. (2005). "تطوير برامج التجميع: كيف تساعد الألعاب في التحقق من صحة المعالجات الدقيقة" . معاملات IEEE في الحوسبة التطورية . 9 (6): 695-706 . doi : 10.1109/TEVC.2005.856207 . ISSN 1089-778X .
- ↑ فوك، باركلي؛ وايت، ألكسندر؛ شميدت، كريستيان. "نهج تطوري يُنتج برامج حرب أساسية تنافسية بشرية" (ملف PDF) . تم الاطلاع عليه بتاريخ 27-05-2023 .
- 1 2 ديودني، ألاسكا (مايو 1984). "في لعبة تُسمى حرب النواة، تخوض البرامج المعادية معركةً من البتات" . مجلة ساينتفك أمريكان . تاريخ الاسترجاع: 27 مايو 2023 .
- ↑ شوخ، ج.؛ هوب، ج. (مارس 1982). "برامج 'الديدان' - تجربة مبكرة مع الحوسبة الموزعة" . اتصالات رابطة مكائن الحوسبة . 25 (3): 172-180 . doi : 10.1145/358453.358455 . S2CID 1639205 .
- ↑ ديودني، أ. ك. (مارس 1985). "مجموعة بيانات شاملة عن الفيروسات والديدان وغيرها من التهديدات التي تواجه ذاكرة الحاسوب" . مجلة ساينتفك أمريكان . تاريخ الاسترجاع: 27 مايو 2023 .
- ↑ ديودني، أ. ك. (يناير 1987). "برنامج يُدعى MICE يشق طريقه نحو النصر في أول بطولة لحرب النواة" . مجلة ساينتفك أمريكان . تاريخ الاسترجاع: 27 مايو 2023 .
- ↑ دوليجيز، داميان؛ دورهام، مارك (8 نوفمبر 1995). "مسودة مشروحة لمعيار الحرب الأساسي المقترح لعام 1994" . تم الاسترجاع في 27 مايو 2023 .
- ↑ ميتكالف، جون. "تاريخ موجز لحرب النواة" . تم الاسترجاع في 27-05-2023 .
- ↑ "دليل المبتدئين لـ Redcode، الإصدار 1.23" .
- ↑ محاكيات Corewar على corewar.info
- ↑ corewar على SourceForge
- ^ pMARS-SDL على موقع corewar.co.uk بقلم جوناس بيهلاجا (7 مايو 2003)
- ↑ تحميل ملف numbers corewar من موقع SourceForge (تاريخ الوصول: 2021-06-07)
روابط خارجية
- ألعاب الفيديو لعام 1984
- برمجة الألعاب
- نماذج الحياة الاصطناعية
- مسابقات البرمجة
- الكائنات الرقمية
- ألعاب الفيديو مفتوحة المصدر
- ألعاب فيديو ذات شفرة مصدرية متاحة
- ألعاب مجانية
- ألعاب لينكس
- ألعاب ويندوز
- ألعاب فيديو تم تطويرها في كندا
