Задание на программу
Игра домино. Играет игрок против компьютера. Результаты игры сохраняются и просматриваются из файла.
Играют игрок и компьютер, у каждого на руках по 7 домино, остальные 14 домино остаются невидимыми в закрытом резерве "базаре". Начинает игрок, компьютер продолжает, и так далее, пока на руках у обоих не останется подходящих домино, или они вовсе не закончатся. Результат расчитывается по сумме очков на домино, у кого больше, тот и проиграл, при равной сумме - ничья. Цель игры: постараться выложить больше домино на игровой стол с max количеством очков из допустимых, и выиграть. Управлеие: игра осуществляется кнопками мыши. Результаты игры сохраняются в txt файл, прошлые результаты можно просматривать в процессе игры.
Фрагмент программного кода
public class Game { static string[] AllK = { "0|0","0|1","0|2","0|3","0|4","0|5","0|6","1|1","1|2","1|3","1|4","1|5","1|6","2|2", "2|3","2|4","2|5","2|6","3|3","3|4","3|5","3|6","4|4","4|5","4|6","5|5","5|6","6|6"}; //значения на костях домино List<string> K = new List<string>(AllK); //список домино на базаре(все кости) List<Kosti> PlayerK = new List<Kosti>(); // список домино игрока List<Kosti> CompK = new List<Kosti>(); //список домино компа List<Kosti> TableK = new List<Kosti>(); //список домино на игровом столе Random rnd = new Random(); // генератор чисел public Game() { // Конструктор игры for (int i = 0; i < 7; i++)//просматриваем в цикле только 7 элементов, которые будут добавлять игрок и комп { int bit = rnd.Next(0, K.Count);//определяем bit - объект игры(выбирается случайно из диапазона) int p2 = 150 + i*30;// координаты и интервал между доминошками игрока int p3 = Form.ActiveForm.Height - 66;// int p4 = 90; Kosti p = new Kosti(K.ElementAt(bit), p2, p3, p4, true,true);//ElementAt - возвращаем элемент с базара PlayerK.Add(p);//и добавляем на руки K.RemoveAt(bit);// удаляем с базара после добавления bit = rnd.Next(0, K.Count);// bit - объект игры(выбирается случайно из диапазона) int c2 = 150 + i * 30;//координаты и интервал между доминошками компа int c3 = Form.ActiveForm.Height - 130;//делаем форму активной чтобы доминошки появились + координаты int c4 = 90;//угол поворота Kosti c = new Kosti(K.ElementAt(bit), c2, c3, c4, true, false);//1-видимость домино 2- видимость значений CompK.Add(c); K.RemoveAt(bit); // удаляем с базара после добавленияlse } }
Содержание архива
- исходный код на C# WinForms Visual Studio
klausms