Форум программистов, компьютерный форум CyberForum.ru

Добавление компьютерного игрока - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Отсортировать строки матрицы в порядке убывания http://www.cyberforum.ru/cpp-beginners/thread696498.html
Дана матрица . Отсортировать строки матрицы в порядке убывания. Кто-нибудь может,через scanf,printf?
C++ Лаба Очень срочно надо сдать лабу, но я не знаю как ее делать ( помогите решить мне ее. Зарание огромное спасибо http://www.cyberforum.ru/cpp-beginners/thread696496.html
Треугольник составленный из чисел C++
Дан числовой треугольник с N строк.Написать программу, что находит максимальную сумму чисел, расположенных на пути, который начинается с верхнего числа и заканчивается на любом числе в основании треугольника(максимум суммы среди всех таких путей). На каждом шагу можно двигаться к соседнему по диагонале влево-вниз или вправо-вниз. Формат входных данных :В первой строке файла input.txt находятся...
перевести программу на С++ C++
вот условие: Дано натуральное число. а)-верно ли, что сумма его цифр меньше А? б)-верно ли, что произведение его цифр больше B? в)- верно ли, что это число К-значное? Составное условие и вложенный условный оператор не использовать. г)-верно ли, что его первая цифра превышает n? вот мой код на pascal:
C++ Задачи http://www.cyberforum.ru/cpp-beginners/thread696460.html
Можете мне подсказать где найти задачи для начинающих.
C++ Аппроксимация функций методом наименьших квадратов Аппроксимация функций методом наименьших квадратов. y=a+b*ln(x) подробнее

Показать сообщение отдельно
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
13.11.2012, 17:19     Добавление компьютерного игрока
Подскажите пожалуйсто, что я не так и может не туда пишу)) но компьютерный ход в крестиках ноликах работает как-то неправильно...
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#include <iostream>
#include <conio.h>
 
using namespace std;
 
const char* board[9] = {};
 
void clearwin()
{
     for(int c = 0; c < 9; c++)
     cout << endl;
}
 
void clear_board()
{
     for(int b = 0; b < 9; b++)
     board[b] = "-";
}
 
bool has_won(char* player)
{
     int wins[8][3] = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
     
     for(int i = 0; i < 8; i++)
     {
             int count = 0;
             
             for(int j = 0; j < 3; j++)
             {
                     if(board[wins[i][j]] == player)
                     count++;      
             }
             if(count == 3)
             {
                     return true;
             }
     }
     return false;
}
 
int comp_move()
{
    int cmove;
    
    while(cmove > 9 || cmove < 1 || board[cmove - 1] != "-")
    {
               cmove = rand()%11;           
    }
    
 return cmove;   
}
 
void print_board()
{
     cout << " Game board:  \n\n";
     cout << " "<<board[0]<<" | "<<board[1]<<" | "<<board[2]<< endl;
     cout << " "<<board[3]<<" | "<<board[4]<<" | "<<board[5]<< endl;
     cout << " "<<board[6]<<" | "<<board[7]<<" | "<<board[8]<< endl;   
}
int get_move()
{
    cout << " It is game X and O " << endl;
    cout << " Move options:  \n\n";
    cout << " 1|2|3" << endl;
    cout << " 4|5|6" << endl; 
    cout << " 7|8|9" << '\n' << endl;  
       
       print_board();
    
    int move;
 
    cout << "\n Your move! ";
    cin >> move;
    
    while(move > 9 || move < 1 || board[move-1] != "-")
    {
               cout <<" Try again! Pleas enter number (1-9):";
               cin >> move;
    }
    return move;
}
 
char play_and_get_winner()
{    
     int turn = 0;
     
     while(!has_won("X") && !has_won("O"))
    {
            clearwin();
            
            int move = get_move();
            
            int cmove = comp_move();
            
 
            
            if(turn % 2 == 0)
            {
                    cout << " You move is: " << move << endl;   
                    
                 board[move - 1] = "X";
                 if(has_won("X"))
                 {
                                 cout << "Congratulation Player! You are winner!" << endl;
                                 return 'X';
                 }
            }
            else
            {
                cout << " Computer move is: " << cmove << endl;
                
                board[cmove - 1] = "O";
                if(has_won("O"))
                {
                                cout << "Computer winn!" << endl;
                                return 'O';
                }
            }
            turn++;
            if (turn == 9)
            {
                  cout << " It is a draw! " << endl;
                  return 'D';   
            }
    }
}
 
int main()
{
    string reply = "y";
    
    int X_wins = 0, O_wins = 0, ties = 0;
    
    while(reply == "y")
    {
                clear_board();
                
                char winner = play_and_get_winner();
                
                cout << endl;
                print_board();
                
                switch(winner)
                {
                              case 'X':
                                   X_wins++;
                                   break;
                              case 'O':
                                   O_wins++;
                                   break;
                              case 'D':
                                   ties++;
                                   break;
                }
                    cout << " Player winns:  " << X_wins << endl;
                    cout << " Computer winns:  " << O_wins << endl;
                    cout << " Ties:  " << ties << endl;
                    
                    cout << " Would you like to play again? " << endl;
                    cin >> reply;
                    
                    while(reply != "y" && reply != "n")
                    {
                                cout << " Please enter a valid reply (y/n):  ";
                                cin >> reply;
                    }                
 
    }
 
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru