DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Інтелектуальні агенти

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки, молоді та спорту України Житомирський державний технологічний університет Кафедра ПЗОТ Група ЗПІК-09 Курс VI № залікової 4309022 Лабораторна робота з дисципліни «Інтелектуальні агенти» GameLife Лістинг файлу Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace GameLife { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } Лістинг файлу Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Windows.Forms; namespace GameLife { public partial class Form1 : Form { Thread tLife; public Form1() { InitializeComponent(); tLife = new Thread(new ThreadStart(MethodLife)); bPause.Enabled = false; bStop.Enabled = false; } private void Form1_Load(object sender, EventArgs e) { for (int i = 0; i < 30; i++) { for (int j = 0; j < 30; j++) { CheckBox newCB = new CheckBox(); newCB.Name = "cb" + i.ToString() + "x" + j.ToString(); newCB.Location = new Point(80 + j * 12, 13 + i * 12); newCB.Width = 13; newCB.Height = 14; this.Controls.Add(newCB); } } } private void bStart_Click(object sender, EventArgs e) { if (tLife.ThreadState == ThreadState.Suspended) tLife.Resume(); else tLife.Start(); bStart.Enabled = false; tbKoefNarod.Enabled = false; tbKoefSmerti.Enabled = false; bPause.Enabled = true; bStop.Enabled = true; } private void bStop_Click(object sender, EventArgs e) { tLife.Suspend(); for (int i = 0; i < 30; i++) { for (int j = 0; j < 30; j++) { CheckBox cur = this.Controls["cb" + i.ToString() + "x" + j.ToString()] as CheckBox; if (cur.CheckState != CheckState.Unchecked) cur.CheckState = CheckState.Unchecked; } } bStart.Enabled = true; bPause.Enabled = false; bStop.Enabled = false; tbKoefNarod.Enabled = true; tbKoefSmerti.Enabled = true; } private void bPause_Click(object sender, EventArgs e) { tLife.Suspend(); bStart.Enabled = true; bPause.Enabled = false; bStop.Enabled = false; tbKoefNarod.Enabled = true; tbKoefSmerti.Enabled = true; } public void MethodLife() { for (int i = 0; i < 30; i++) { for (int j = 0; j < 30; j++) { CheckBox cur = this.Controls["cb" + i.ToString() + "x" + j.ToString()] as CheckBox; if (cur.CheckState == CheckState.Checked) cur.Invoke(new Action(delegate() { cur.CheckState = CheckState.Indeterminate; })); } } List<string> deadList = new List<string>(); string addr; int koefNar; int koefSmer; Random rnd = new Random(); while (true) { if (!Int32.TryParse(tbKoefNarod.Text, out koefNar)) koefNar = 100; if (!Int32.TryParse(tbKoefSmerti.Text, out koefSmer)) koefSmer = 100; for (int i = 0; i < 30; i++) { for (int j = 0; j < 30; j++) { int count = 0; CheckBox cur0 = this.Controls["cb" + (i - 1).ToString() + "x" + (j).ToString()] as CheckBox; if (cur0 != null && cur0.CheckState == CheckState.Indeterminate) count++; CheckBox cur1 = this.Controls["cb" + (i + 1).ToString() + "x" + (j).ToString()] as CheckBox; if (cur1 != null && cur1.CheckState == CheckState.Indeterminate) count++; CheckBox cur2 = this.Controls["cb" + (i).ToString() + "x" + (j - 1).ToString()] as CheckBox; if (cur2 != null && cur2.CheckState == CheckState.Indeterminate) count++; CheckBox cur3 = this.Controls["cb" + (i).ToString() + "x" + (j + 1).ToString()] as CheckBox; if (cur3 != null && cur3.CheckState == CheckState.Indeterminate) count++; CheckBox cur4 = this.Controls["cb" + (i - 1).ToString() + "x" + (j - 1).ToString()] as CheckBox; if (cur4 != null && cur4.CheckState == CheckState.Indeterminate) count++; CheckBox cur5 = this.Controls["cb" + (i + 1).ToString() + "x" + (j + 1).ToString()] as CheckBox; if (cur5 != null && cur5.CheckState == CheckState.Indeterminate) count++; CheckBox cur6 = this.Controls["cb" + (i - 1).ToString() + "x" + (j + 1).ToString()] as CheckBox; if (cur6 != null && cur6.CheckState == CheckState.Indeterminate) count++; CheckBox cur7 = this.Controls["cb" + (i + 1).ToString() + "x" + (j - 1).ToString()] as CheckBox; if (cur7 != null && cur7.CheckState == CheckState.Indeterminate) count++; addr = "cb" + (i).ToString() + "x" + (j).ToString(); CheckBox cur = this.Controls[addr] as CheckBox; double nexDb=rnd.NextDouble(); if (cur.CheckState == CheckState.Unchecked) { if (count == 3 && nexDb < koefNar/100) cur.Invoke(new Action(delegate() { cur.CheckState = CheckState.Checked; })); } else { if ((count < 2 || count > 3) && nexDb < koefSmer/100) deadList.Add(addr); } } } for (int i = 0; i < 30; i++) { for (int j = 0; j < 30; j++) { addr = "cb" + i.ToString() + "x" + j.ToString(); CheckBox cur = this.Controls[addr] as CheckBox; if (cur.CheckState == CheckState.Checked) cur.Invoke(new Action(delegate() { cur.CheckState = CheckState.Indeterminate; })); else if (cur.CheckState == CheckState.Indeterminate && deadList.Contains(addr)) cur.Invoke(new Action(delegate() { cur.CheckState = CheckState.Unchecked; })); } } deadList.Clear(); } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (tLife.ThreadState == ThreadState.Suspended) tLife.Resume(); tLife.Abort(); } } } Зовнішній вигляд вікна програми /
Антиботан аватар за замовчуванням

13.01.2013 15:56

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!