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

исправьте ошибки в игре - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ виртуальные функции http://www.cyberforum.ru/cpp-beginners/thread727013.html
у меня вопрос насчет виртуальних функций, здесь представлен производный класс от другого класса(наследование) мне надо написать две функции. этого кода достаточно , чтобы это сделать или я еще где-то должна написать так сказать основную функцию? virtual void save(std::ostream& out) { out << "book:" << name << ":" << price << ":" << author << std::endl; } virtual void...
C++ поиск минимально и максимального числа(без массива) вводиться последовательность чисел,найти макс. и мин. число http://www.cyberforum.ru/cpp-beginners/thread726998.html
C++ Как исправить эту ошибку?
Помогите пожайлуста, написал программу, но при компиляции выдает 3 ошибки, что-то немогу понять как их исправить, вроде бы все правильно, но может я что-то я не вижу, помогите пожайлуста #include <stdio.h> #include <algorithm> #include <functional> #include <vector> using namespace std; void RandomShuffle(int *pA, int r, int x, int n) { const int VECTOR_SIZE=r; typedef vector<int>...
Работа с файлами. Запись в файл C++
Добрый вечер! Есть такой вопрос: почему при записи в файл записывается не то что я введу, или заполняется рандомом, а какие-то каракули? И при выводе на экран тоже каракули выводит! Помогите исправить ошибку, последняя лабораторная осталась) Функция ввода void inp(info &A) заполнения рандомно void rando_m(info &A) вывод на экран void out(info &A) #include <iostream> #include <iomanip>...
C++ Вычисление выплат по кредиту http://www.cyberforum.ru/cpp-beginners/thread726989.html
Ребята ,добрый вечер. Есть задачка. Надо реализовать на С++. Без использования векторов. Вычисление выплат по кредиту. Банк предлагает Вам кредит на сумму k рублей под p процентов годовых на g лет. Выплаты по кредиту должны осуществляться каждые m месяцев. Предполагается, что выплаты самого кредита осуществляются равными долями. Процент за использование кредита начисляется на остаток...
C++ Найти ОДЗ по рисунку Даны вещественные числа х и у. Определить принадлежит ли точка с координатами (х,у) заштрихованной части плоскости. Написал программу вот она: #include "stdafx.h" #include <conio.h> #include <iostream> #include <math.h> #include <fstream> #include <stdio.h> #include "time.h" подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
11.12.2012, 14:54     исправьте ошибки в игре
попробуй перепиши программу без гигантских кусков кода, 1) разбив на малые функции
2) не проверяя всякие условия с помощью гигантских ifов типа этого
Цитата Сообщение от owned Посмотреть сообщение
if( (pole [0] [0] == 1 && pole [0] [1] == 1 && pole [0] [2] == 1) || (pole [1] [0] == 1 && pole [1] [1] == 1 && pole [1] [2] == 1) || (pole [2] [0] == 1 && pole [2] [1] == 1 && pole [2] [2] == 1) || (pole [0] [0] == 1 && pole [1] [0] == 1 && pole [2] [0] == 1) || (pole [0] [1] == 1 && pole [1] [1] == 1 && pole [2] [1] == 1) || (pole [0] [2] == 1 && pole [1] [2] == 1 && pole [2] [2] == 1) || (pole [0] [0] == 1 && pole [1] [1] == 1 && pole [2] [2] == 1) || (pole [0] [2] == 1 && pole [1] [1] == 1 && pole [2] [0] == 1) )
вот примерно так
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
struct coord{
  int x;
  int y;
};
int board[3][3];
int spaces=9;
int board_filled(){
  return (spaces==0);
}
void print_board(){
  clear_screen();
  //do it yourself
}
void print_menu(int position){
  clear_screen();
 
}
int user_input(struct coord* input){
//do it yourself
 
}
void user_move(struct coord input){
  board[input.x][input.y]=X;
  spaces--;
}
int victory_at(struct coord input){
   int i;     
   int result;  
   result=1;
   for (i=0; i<3; i++)  result=result&&(board[input.x][input.y]==board[i][input.y])
   if (result) return 1; 
   result=1;    
   for (i=0; i<3; i++)  result=result&&(board[input.x][input.y]==board[input.x][i])
   if (result) return 1;
   if (input.x==input.y){
     result=1;    
     for (i=0; i<3; i++)  result=result&&(board[input.x][input.y]==board[i][i])
     if (result) return 1;     
   } 
   if (input.x==(2-input.y)){
     result=1;    
     for (i=0; i<3; i++)  result=result&&(board[input.x][input.y]==board[i][2-i])
     if (result) return 1;     
   }     
   return 0;   
}
void AI_input(struct coord* input){
     int move, i, j, k;
     srand(time(NULL)):
     move=rand()%spaces;
     spaces--; 
     k=-1;
     for(i=0; i<3; i++)
       for(j=0; j<3 && k!=move; j++)  
         if (board[i][j]==EMPTY)
            k++; 
     input->x=i;
     input->y=j;   
}
int run_main_game(){
  int key;
  struct coord input;
  bool game_run=true;
  while(1){//while(game_run){ 
    key=user_input(&input);
    switch(key){
      case ESCAPE: return ABORT_GAME;
      case ENTER: user_move(input); break;
    }           
    print_board();
    if (victory_at(input)) return PLAYER_WIN;    
    AI_input(&input);   
    AI_move(input);
    print_board();
    if (victory_at(input)) return CPU_WIN; 
    if (board_filled()) return DRAW;  
  
  }
}
 
int get_menu(){
  const int items_num=1;
  //bool menu_run=true;
  int key;
  int position=0;
  while(1){//    while(menu_run){
    print_menu(position);
    key=getchar();
    switch(key){
      case UP:   position=(position==0)?(items_num):(position-1); break;  
      case DOWN: position=(position==items_num)?(0):(position+1); break;          
      case ENTER: return position;
      case ESCAPE: return 0;
    }
  }
}
int main(){
  bool application_run=true;
  int game_result;
  init_stuff();
  init_more_stuff();
  while(application_run){
   clear_screen();
   switch(get_menu()){
       case 0: application_run=false; break;
       case 1: game_result=run_main_game(); print_result(game_result); break;
   }
  }        
  deinit_stuff();
  return 0;
}
 
Текущее время: 21:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru