Форум программистов, компьютерный форум, киберфорум
Наши страницы
Бета-тестирование
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.94/34: Рейтинг темы: голосов - 34, средняя оценка - 4.94
Доктор Гордон
Заблокирован
1

Икс - нолики на C# (выиграть невозможно)

20.03.2012, 11:23. Просмотров 6244. Ответов 83
Метки нет (Все метки)

Не по теме:

Модеры прежнюю мою тему про икс-нолики можете удалить, а эту можете оставить - тут усовершенствованная версия.


Эту игру выиграть невозможно, я сам создатель не мог его выиграть, хотя если выиграете отпишите свою стратегию и я исправлю.
0
Изображения
 
Вложения
Тип файла: rar X-O.rar (89.6 Кб, 159 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2012, 11:23
Ответы с готовыми решениями:

Крестики-нолики: кто сможет выиграть у компьютера на второй сложности?
Товарищи стратеги! Кидаю вызов! Пишу крестики нолики на С++ и вот сам...

NFS underground 2 - после подписания контракта невозможно ничего выиграть.
Ребята, вот какая штука: играю, играю, подписываю контракт, а после этого...

Вероятность выиграть по одному билету лотереи равна 1/7. Какова вероятность, имея 6 билетов, не выиграть по 2-м билетам
Вероятность выиграть по одному билету лотереи равна 1/7. Какова вероятность,...

Как выиграть во флеш игре?
Помогите Нужно узнать как выиграть в эту флеш игру и возможно ли это вообще....

Вероятность выиграть по лотерейному билету 1/7
1) Найти вероятность выиграть, из 6 билетов: а) по 2 билетам; б) не менее чем...

83
Доктор Гордон
Заблокирован
11.04.2012, 21:09  [ТС] 61
Цитата Сообщение от _PARADOX_ Посмотреть сообщение
Поздравляю! Спустя месяц вы перебрали все варианты!
УРАААА!!!! суперррр, теперь есть чем гордится!, класс полный улёт, большое всем спасибо.

Добавлено через 1 минуту
А вы вид не ждали такого от меня? хе)
ждите от меня программу Paint на C#, но не в скором времени, так как я класс Timer не знаю(
0
_PARADOX_
13 / 13 / 0
Регистрация: 11.01.2012
Сообщений: 158
11.04.2012, 21:11 62
Цитата Сообщение от Доктор Гордон Посмотреть сообщение
УРАААА!!!! суперррр, теперь есть чем гордится!, класс полный улёт, большое всем спасибо.

Добавлено через 1 минуту
А вы вид не ждали такого от меня? хе)
ждите от меня программу Paint на C#, но не в скором времени, так как я класс Timer не знаю(

Не по теме:

Только не нужно угрожать!

4
Доктор Гордон
Заблокирован
11.04.2012, 21:18  [ТС] 63
Цитата Сообщение от _PARADOX_ Посмотреть сообщение
Только не нужно угрожать!
Не, не угрожаю, а как вы думаете будет классно если на форуме будет чат?

Добавлено через 5 минут
ой не в тему, можете удалит сообщение)
0
magirus
11.04.2012, 22:26
  #64

Не по теме:

Цитата Сообщение от Доктор Гордон Посмотреть сообщение
а как вы думаете будет классно если на форуме будет чат
чата на форуме - НЕ БУДЕТ. точка.

0
Infinity3000
1060 / 579 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
11.04.2012, 23:00 65
Цитата Сообщение от Доктор Гордон Посмотреть сообщение
А вы вид не ждали такого от меня? хе)
нет, не ждали!
1
Изображения
 
Infinity3000
1060 / 579 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
11.04.2012, 23:05 66
Ладно не поленюсь, выложу выиграшную комбинацию! после 5 попыток игры!(дальше не захотел, так как пропал интерес)
3
Изображения
    
Kill100
419 / 285 / 81
Регистрация: 11.12.2010
Сообщений: 1,198
Завершенные тесты: 1
12.04.2012, 00:51 67
О господи ну и код у вас О_о
Столько ифоф не когда не видел. Не лень было писать то хоть?
Может хотя бы дерево ходов и отсечения строил? Короче как ни как будет.
0
Доктор Гордон
Заблокирован
12.04.2012, 08:55  [ТС] 68
Цитата Сообщение от Infinity3000 Посмотреть сообщение
Ладно не поленюсь, выложу выиграшную комбинацию! после 5 попыток игры!
Да чёрт, ясно, пока мне в голову ничего не приходит что бы могло убрать это баг.

Добавлено через 47 секунд
Цитата Сообщение от magirus Посмотреть сообщение
чата на форуме - НЕ БУДЕТ. точка.
Выходит вы это уже обсуждали, и почему не будет?
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27954 / 15675 / 959
Регистрация: 15.09.2009
Сообщений: 67,837
Записей в блоге: 78
12.04.2012, 20:59 69
потому что там будет бардак и срач.
который эпизодически и так на форуме возникает.

Добавлено через 2 минуты
ЗЫ. к тому же все просьбы решить какие то задачи, так же окажутся там, и в результате останутся без ответа.
1
Доктор Гордон
Заблокирован
13.04.2012, 12:28  [ТС] 70
Нашёл онлайн игру икс нолики, там этим же способом выиграл, кто знаете игру икс нолики чтобы пользователь ходил первым и не смог выиграть?
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
13.04.2012, 12:57 71
Доктор Гордон, я знаю, крестики-нолики называется.
Поле в конце игры при безупречной игре обоих игроков (начинает крестик) будет выглядеть либо так:
Код
 x | x | 0 
---+---+---
 0 | x | x 
---+---+---
 x | 0 | 0
либо так же, только повёрнуто на 90, 180 или 270 градусов.
0
Доктор Гордон
Заблокирован
13.04.2012, 13:32  [ТС] 72
Цитата Сообщение от silent_1991 Посмотреть сообщение
Доктор Гордон, я знаю, крестики-нолики называется.
Ясно, но мне нужна сама игра чтобы потренироваться.
0
fire_news
6 / 6 / 1
Регистрация: 05.01.2012
Сообщений: 59
13.04.2012, 14:54 73
Выиграть возможно, прога, кривая ))
Кол-во крестиков и ноликов, соответственно не равное ))
В любой Нижний угол крестик, потом в противоположный верхний(тут то баг и наблюдается), и далее логически любому будет понятно))
0
Изображения
 
_PARADOX_
13 / 13 / 0
Регистрация: 11.01.2012
Сообщений: 158
13.04.2012, 17:00 74
Цитата Сообщение от Доктор Гордон Посмотреть сообщение
Ясно, но мне нужна сама игра чтобы потренироваться.
Вы не можете найти крестики-нолики??
0
Доктор Гордон
Заблокирован
13.04.2012, 18:53  [ТС] 75
Цитата Сообщение от fire_news Посмотреть сообщение
В любой Нижний угол крестик, потом в противоположный верхний(тут то баг и наблюдается), и далее логически любому будет понятно))
Нет помойму не баг, так случается потому что дальше выиграть ни как, ни вам, ни компьютеру.
Исправлю.
Цитата Сообщение от _PARADOX_ Посмотреть сообщение
Вы не можете найти крестики-нолики??
То что я нашёл можно выиграть, я вабшето криво искал, забейте.

Добавлено через 2 минуты
Цитата Сообщение от fire_news Посмотреть сообщение
В любой Нижний угол крестик, потом в противоположный верхний(тут то баг и наблюдается), и далее логически любому будет понятно))
Я поставил нижний угол крестик, прога поставила нолик в середину, я поставил крестик в верхний угол прога поставила нолик, а где баг мне не дошло?
0
Доктор Гордон
Заблокирован
13.04.2012, 19:01  [ТС] 76
Исправил.
Теперь количество иксов и ноликов будет равным.
0
Вложения
Тип файла: rar X-O.rar (105.7 Кб, 10 просмотров)
_PARADOX_
13 / 13 / 0
Регистрация: 11.01.2012
Сообщений: 158
13.04.2012, 19:31 77
Цитата Сообщение от Доктор Гордон Посмотреть сообщение
Исправил.
Теперь количество иксов и ноликов будет равным.
Способ Infinity3000 ещё работает.
0
Изображения
 
Доктор Гордон
Заблокирован
13.04.2012, 19:32  [ТС] 78
Цитата Сообщение от _PARADOX_ Посмотреть сообщение
Способ Infinity3000 ещё работает.
Думаю всё в норме, после выигрыша не должен идти ход.
0
_PARADOX_
13 / 13 / 0
Регистрация: 11.01.2012
Сообщений: 158
13.04.2012, 19:43 79
Цитата Сообщение от Доктор Гордон Посмотреть сообщение
Думаю всё в норме, после выигрыша не должен идти ход.
Вот код нормальных крестиков-ноликов.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
 
namespace WindowsFormsApplication2
{
  public class Form1 : Form
  {
    private IContainer components = (IContainer) null;
    private int offset_x = 0;
    private int offset_y = 0;
    private Rectangle[,] r = new Rectangle[3, 3];
    private byte[,] count = new byte[3, 3];
    private bool hod = true;
    private byte i;
    private byte j;
 
    public Form1()
    {
      this.InitializeComponent();
      for (this.i = (byte) 0; (int) this.i < 3; ++this.i)
      {
        for (this.j = (byte) 0; (int) this.j < 3; ++this.j)
        {
          this.count[(int) this.i, (int) this.j] = (byte) 0;
          this.r[(int) this.i, (int) this.j] = new Rectangle(this.offset_x, this.offset_y, 100, 100);
          this.offset_x += 100;
        }
        this.offset_y += 100;
        this.offset_x = 0;
      }
    }
 
    protected override void Dispose(bool disposing)
    {
      if (disposing && this.components != null)
        this.components.Dispose();
      base.Dispose(disposing);
    }
 
    private void InitializeComponent()
    {
      this.SuspendLayout();
      this.AutoScaleDimensions = new SizeF(6f, 13f);
      this.AutoScaleMode = AutoScaleMode.Font;
      this.ClientSize = new Size(302, 302);
      this.FormBorderStyle = FormBorderStyle.FixedSingle;
      this.MaximizeBox = false;
      this.Name = "Form1";
      this.Text = "Form1";
      this.Paint += new PaintEventHandler(this.Form1_Paint);
      this.MouseClick += new MouseEventHandler(this.Form1_MouseClick);
      this.ResumeLayout(false);
    }
 
    private void Form1_Paint(object sender, PaintEventArgs e)
    {
      Graphics graphics = e.Graphics;
      for (this.i = (byte) 0; (int) this.i < 3; ++this.i)
      {
        for (this.j = (byte) 0; (int) this.j < 3; ++this.j)
          graphics.DrawRectangle(Pens.DarkBlue, this.r[(int) this.i, (int) this.j]);
      }
      for (this.i = (byte) 0; (int) this.i < 3; ++this.i)
      {
        for (this.j = (byte) 0; (int) this.j < 3; ++this.j)
        {
          if ((int) this.count[(int) this.i, (int) this.j] == 1)
            graphics.DrawEllipse(new Pen(Color.Coral, 3f), this.r[(int) this.i, (int) this.j]);
          if ((int) this.count[(int) this.i, (int) this.j] == 2)
          {
            graphics.DrawLine(new Pen(Color.DarkSeaGreen, 3f), this.r[(int) this.i, (int) this.j].X, this.r[(int) this.i, (int) this.j].Y, this.r[(int) this.i, (int) this.j].Right, this.r[(int) this.i, (int) this.j].Bottom);
            graphics.DrawLine(new Pen(Color.DarkSeaGreen, 3f), this.r[(int) this.i, (int) this.j].Right, this.r[(int) this.i, (int) this.j].Y, this.r[(int) this.i, (int) this.j].X, this.r[(int) this.i, (int) this.j].Bottom);
          }
        }
      }
    }
 
    private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
      for (int index1 = 0; index1 < 3; ++index1)
      {
        for (int index2 = 0; index2 < 3; ++index2)
        {
          if (e.X > this.r[index1, index2].X && e.X < this.r[index1, index2].Right && e.Y > this.r[index1, index2].Y && e.Y < this.r[index1, index2].Bottom)
          {
            if ((int) this.count[index1, index2] == 0)
            {
              this.count[index1, index2] = !this.hod ? (byte) 2 : (byte) 1;
            }
            else
            {
              int num1 = (int) MessageBox.Show("Занято");
            }
            this.Invalidate(this.r[index1, index2]);
            this.hod = !this.hod;
            if ((int) this.count[0, 0] == 1 && (int) this.count[0, 1] == 1 && (int) this.count[0, 2] == 1 || (int) this.count[1, 0] == 1 && (int) this.count[1, 1] == 1 && (int) this.count[1, 2] == 1 || ((int) this.count[2, 0] == 1 && (int) this.count[2, 1] == 1 && (int) this.count[2, 2] == 1 || (int) this.count[0, 0] == 1 && (int) this.count[1, 0] == 1 && (int) this.count[2, 0] == 1) || ((int) this.count[0, 1] == 1 && (int) this.count[1, 1] == 1 && (int) this.count[2, 1] == 1 || (int) this.count[0, 2] == 1 && (int) this.count[1, 2] == 1 && (int) this.count[2, 2] == 1 || (int) this.count[0, 0] == 1 && (int) this.count[1, 1] == 1 && (int) this.count[2, 2] == 1) || (int) this.count[0, 2] == 1 && (int) this.count[1, 1] == 1 && (int) this.count[2, 0] == 1)
            {
              int num2 = (int) MessageBox.Show("Нолики победили");
              for (index1 = 0; index1 < 3; ++index1)
              {
                for (index2 = 0; index2 < 3; ++index2)
                  this.count[index1, index2] = (byte) 0;
              }
              this.Invalidate();
              this.hod = true;
            }
            if ((int) this.count[0, 0] == 2 && (int) this.count[0, 1] == 2 && (int) this.count[0, 2] == 2 || (int) this.count[1, 0] == 2 && (int) this.count[1, 1] == 2 && ((int) this.count[1, 2] == 2 && (int) this.count[2, 0] == 2) && ((int) this.count[2, 1] == 2 && (int) this.count[2, 2] == 2) || ((int) this.count[0, 0] == 2 && (int) this.count[1, 0] == 2 && (int) this.count[2, 0] == 2 || (int) this.count[0, 1] == 2 && (int) this.count[1, 1] == 2 && (int) this.count[2, 1] == 2 || ((int) this.count[0, 2] == 2 && (int) this.count[1, 2] == 2 && (int) this.count[2, 2] == 2 || (int) this.count[0, 0] == 2 && (int) this.count[1, 1] == 2 && (int) this.count[2, 2] == 2)) || (int) this.count[0, 2] == 2 && (int) this.count[1, 1] == 2 && (int) this.count[2, 0] == 2)
            {
              int num2 = (int) MessageBox.Show("Крестики победили");
              for (index1 = 0; index1 < 3; ++index1)
              {
                for (index2 = 0; index2 < 3; ++index2)
                  this.count[index1, index2] = (byte) 0;
              }
              this.Invalidate();
              this.hod = true;
            }
            if ((int) this.count[0, 0] != 0 && (int) this.count[0, 1] != 0 && ((int) this.count[0, 2] != 0 && (int) this.count[1, 0] != 0) && ((int) this.count[1, 1] != 0 && (int) this.count[1, 2] != 0 && ((int) this.count[2, 0] != 0 && (int) this.count[2, 1] != 0)) && (int) this.count[2, 2] != 0)
            {
              int num2 = (int) MessageBox.Show("Ничья");
              for (index1 = 0; index1 < 3; ++index1)
              {
                for (index2 = 0; index2 < 3; ++index2)
                  this.count[index1, index2] = (byte) 0;
              }
              this.Invalidate();
              this.hod = true;
            }
          }
        }
      }
    }
  }
}
Источник: http://www.cyberforum.ru/post1408218.html
Советую поискать по форуму ещё.
0
Доктор Гордон
Заблокирован
13.04.2012, 20:32  [ТС] 80
Цитата Сообщение от _PARADOX_ Посмотреть сообщение
Вот код нормальных крестиков-ноликов.
Из кода я почти ничего не понял, понимаете я самоучка, я не могу всё знать, или вы все самоучки?

Добавлено через 1 минуту
Я скачал игру, программа выявляет только выигрыш, это я бы тоже сделал лёгким образом.

Добавлено через 1 минуту
Не понимаю, в чём проблема моей игры, почему вы презираете (или ревнуете) меня?
0
13.04.2012, 20:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2012, 20:32

Какова вероятность выиграть на 3 билета?
вероятность выиграша по билету лотареи=0,1.какорва вероятность имеея 8 билетов...

Какова вероятность, купив 5 билетов, выиграть:
Вероятность выигрыша по одному билету лотереи равна —. Какова вероятность,...

Найти вероятность выиграть не менее 2-х рублей
В лотерее 1000 билетов. Из них на один билет попадает выигрыш 50 руб., на 10...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru