Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ИГРА,Крестики нолики, в чём ошибка ????????? 
:(
    Опции темы
mrBaT
  Дата 10.3.2006, 04:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.12.2005
Где: Lithuania

Репутация: нет
Всего: нет



Ниже приведён код двух файлов Unit1.h и Unit1.cpp:

Код


Unit1.h:*********************************************
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TBitBtn *BitBtn1;
TBitBtn *BitBtn2;
TBitBtn *BitBtn3;
TImage *Image1;
TImage *Image2;
TImage *Image3;
TImage *Image4;
TImage *Image5;
TImage *Image6;
TImage *Image7;
TImage *Image8;
TImage *Image9;
TRadioButton *RadioButton1;
TRadioButton *RadioButton2;
TBevel *Bevel1;
TLabel *Label1;
TPanel *Panel1;
void __fastcall BitBtn2Click(TObject *Sender);
void __fastcall BitBtn1Click(TObject *Sender);
void __fastcall BitBtn3Click(TObject *Sender);
void __fastcall Image1Click(TObject *Sender);
void __fastcall Image2Click(TObject *Sender);
void __fastcall Image3Click(TObject *Sender);
void __fastcall Image4Click(TObject *Sender);
void __fastcall Image5Click(TObject *Sender);
void __fastcall Image6Click(TObject *Sender);
void __fastcall Image7Click(TObject *Sender);
void __fastcall Image8Click(TObject *Sender);
void __fastcall Image9Click(TObject *Sender);
void __fastcall RadioButton1Click(TObject *Sender);
void __fastcall RadioButton2Click(TObject *Sender);

private: // User declarations
char hod_ris1[10];
char hod_ris2[10];
int mas [3][3];
void initiz();
void hod_User(int ris);

void hod_Comp();
int proverka();
bool hod_kompa_func(int short &n);
void ris_hod_Comp(int short &x,int short &y);
void vigrish_User();
void vigrish_Comp();
void vigrish_Nichia();
void not_active_ramka();
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Unit2.cpp:*******************************************
//---------------------------------------------------------------------------

#include 
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
strcpy(hod_ris1,"krest.bmp");strcpy(hod_ris2,"nolik.bmp");
}

//************************************************************************************
void TForm1 :: not_active_ramka(){
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
mas[i][j]=3;
}
void TForm1::vigrish_User(){
not_active_ramka();
MessageBox(0,"Вы выиграли!!", "Сообщение",MB_OK|MB_ICONEXCLAMATION);

}

void TForm1::vigrish_Comp(){
not_active_ramka();
MessageBox(0,"Вы проиграли!!", "Сообщение",MB_OK|MB_ICONEXCLAMATION);

}

void TForm1::vigrish_Nichia(){
not_active_ramka();
MessageBox(0,"Ничья", "Сообщение",MB_OK|MB_ICONEXCLAMATION);

}
//----------------------------------------------------------------------------------

int TForm1 :: proverka(){ // Проверка поля...
int short i=0,j=0,x=0,y=0,x1=0,y1=0;

for(i=0;i<3;i++){ // на ничью
for(j=0;j<3;j++){
if(mas[i][j]!=0) x+=1;
if(mas[i][j]==0) y++;
}
if(y>0) break;
if(x==9) return -4; // возвращаем -4 , если ничья<>BR> }

// по горизонтали
for(i=0;i<3;i++){
x=0;y=0;
for(j=0;j<3;j++){
if(mas[i][j]==1) x+=1;
if(mas[i][j]==2) y+=1;
}
if(x==3) return -1; // возвращаем -1, если выграл игрок(невозможно)
if(y==3) return -2; // возвращаем -2 , если выграл комп

}

for(j=0;j<3;j++){ // по вертикали
x=0;y=0;
for(i=0;i<3;i++){
if(mas[i][j]==1) x+=1;
if(mas[i][j]==2) y+=1;
}
if(x==3) return -1; // возвращаем -1, если выграл игрок(невозможно)
if(y==3) return -2; // возвращаем -2 , если выграл комп
}
x=0;y=0;x1=0;y1=0;

for(i=0;i<3;i++){ // по наклонным
for(j=0;j<3;j++){
if(i==j){
if(mas[i][j]==1) x+=1;
if(mas[i][j]==2) y+=1;
}
if((i+j)==2){
if(mas[i][j]==1) x1+=1;
if(mas[i][j]==2) y1+=1;
}

}
if(x==3) return -1; // возвращаем -1, если выграл игрок(невозможно)
if(y==3) return -2; // возвращаем -2 , если выграл комп
if(x1==3) return -1; // возвращаем -1, если выграл игрок(невозможно)
if(y1==3) return -2; // возвращаем -2 , если выграл комп
}
return -3; // если ничего нет
}
//---------------------------------------------------------------------------------------

void TForm1:: ris_hod_Comp(int short &x,int short &y){
if(x==0 && y==0){Image1->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==0 && y==1){Image2->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==0 && y==2){Image3->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==1 && y==0){Image4->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==1 && y==1){Image5->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==1 && y==2){Image6->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==2 && y==0){Image7->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==2 && y==1){Image8->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==2 && y==2){Image9->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}

}
bool TForm1:: hod_kompa_func(int short &n){
int short i=0,j=0,i1=0,j1=0,x=0;
for(i=0;i<3;i++) // Сколько общих ходов было(в переменную "х").
for(j=0;j<3;j++)
if(mas[i][j]!=0) x++;

if(x<=2){ // Если меньше или равно 2, тогда...
i=1;j=1;
if(mas[i][j]==0){ // Если свободна "середина" , тогда ставим..

ris_hod_Comp(i,j);
return true;
}
i=0;j=0;
if(mas[i][j]==0){ // Если свободн левый верхний угол, тогда ставим

ris_hod_Comp(i,j);
return true;
}
}

//---------

for(i=0;i<3;i++){ // По горизонтали
x=0;j1=3;
for(j=0;j<3;j++){
if(mas[i][j]==n) x++;
if(mas[i][j]==0) j1=j;
if(x==2 && j1!=3){

ris_hod_Comp(i,j1);
return true;
}// if...
}// for(j...
} // for(i...

for(j=0;j<3;j++){ // По вертикали
x=0;i1=3;
for(i=0;i<3;i++){
if(mas[i][j]==n) x++;
if(mas[i][j]==0) i1=i;
if(x==2 && i1!=3){

ris_hod_Comp(i1,j);
return true;
}// if...
}// for(i...
} // for(j...

int x2=0,x1=0,i2=0,j2=0;
j1=3;j2=3;
for(i=0;i<3;i++){ // По наклонным
for(j=0;j<3;j++){
if(i==j){
if(mas[i][j]==n) x1+=1; // По "главной" наклонной
if(mas[i][j]==0) {j1=j;i1=i;}
}
if((i+j)==2){ // По "побочной " наклонной
if(mas[i][j]==n) x2+=1;
if(mas[i][j]==0) {j2=j;i2=i;}
}

if(x1==2 && j1!=3){

ris_hod_Comp(i1,j1);
return true;
}
if(j2!=3 && x2==2){

ris_hod_Comp(i2,j2);
return true;
}

} // for...
} //for...
return false; // Если ничего не удалось сделать возвращаем "ложь"
}

void TForm1::hod_Comp(){
bool hod;
int i,j;
int prov=0;

prov=proverka();
switch(prov){
case -1: {vigrish_User(); return;}
case -2: {vigrish_Comp(); return;}
case -4: {vigrish_Nichia();return;}
}

hod=hod_kompa_func(2);
if(hod==false)hod=hod_kompa_func(1);
if(hod==false){

srand((unsigned)time( NULL ));

do{

i=rand()%3;
j=rand()%3;
}
while(mas[i][j]!=0);
ris_hod_Comp(i,j);
}

prov=proverka();
switch(prov){
case -1: {vigrish_User(); return;}
case -2: {vigrish_Comp(); return;}
case -4: {vigrish_Nichia();return;}
}
}

//************************************************************************************
void TForm1::initiz(){
char hod_ris3[10];
memset(hod_ris3,0,9);
strcpy(hod_ris3,"fon0.bmp");
Image1->Picture->LoadFromFile(hod_ris3);
Image2->Picture->LoadFromFile(hod_ris3);
Image3->Picture->LoadFromFile(hod_ris3);
Image4->Picture->LoadFromFile(hod_ris3);
Image5->Picture->LoadFromFile(hod_ris3);
Image6->Picture->LoadFromFile(hod_ris3);
Image7->Picture->LoadFromFile(hod_ris3);
Image8->Picture->LoadFromFile(hod_ris3);
Image9->Picture->LoadFromFile(hod_ris3);
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
mas[i][j]=0;

}
void TForm1::hod_User(int ris){

switch(ris){
case 1:{if(mas[0][0]==0){Image1->Picture->LoadFromFile(hod_ris1);
mas[0][0]=1;break;}else return;}
case 2:{if(mas[0][1]==0){Image2->Picture->LoadFromFile(hod_ris1);
mas[0][1]=1;break;}else return;}
case 3:{if(mas[0][2]==0){Image3->Picture->LoadFromFile(hod_ris1);
mas[0][2]=1;break;}else return;}
case 4:{if(mas[1][0]==0){Image4->Picture->LoadFromFile(hod_ris1);
mas[1][0]=1;break;}else return;}
case 5:{if(mas[1][1]==0){Image5->Picture->LoadFromFile(hod_ris1);
mas[1][1]=1;break;}else return;}
case 6:{if(mas[1][2]==0){Image6->Picture->LoadFromFile(hod_ris1);
mas[1][2]=1;break;}else return;}
case 7:{if(mas[2][0]==0){Image7->Picture->LoadFromFile(hod_ris1);
mas[2][0]=1;break;}else return;} case 8:{if(mas[2][1]==0){Image8->Picture->LoadFromFile(hod_ris1);
mas[2][1]=1;break;}else return;} case 9:{if(mas[2][2]==0){Image9->Picture->LoadFromFile(hod_ris1);
mas[2][2]=1;break;}else return;}
}
hod_Comp();

}

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if(BitBtn1->Caption=="Старт"){
RadioButton1->Enabled=false;
RadioButton2->Enabled=false;
BitBtn1->Caption="В меню";
Panel1->Visible=false;
initiz();
if (RadioButton1->Checked){
// ходит комп
}
return;
}

if(BitBtn1->Caption!="Старт"){
RadioButton1->Enabled=true;
RadioButton2->Enabled=true;
BitBtn1->Caption="Старт";
Panel1->Visible=true;
return;
}

// TBitmap

}

void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
initiz();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
memset(hod_ris1,0,9);
memset(hod_ris2,0,9);
strcpy(hod_ris1,"krest.bmp");strcpy(hod_ris2,"nolik.bmp");

}
//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
memset(hod_ris1,0,9);
memset(hod_ris2,0,9);
strcpy(hod_ris1,"nolik.bmp");strcpy(hod_ris2,"krest.bmp");

}
//---------------------------------------------------------------------------



void __fastcall TForm1::Image1Click(TObject *Sender)
{
hod_User(1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image2Click(TObject *Sender)
{
hod_User(2);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image3Click(TObject *Sender)
{
hod_User(3);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image4Click(TObject *Sender)
{
hod_User(4);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image5Click(TObject *Sender)
{
hod_User(5);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image6Click(TObject *Sender)
{
hod_User(6);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image7Click(TObject *Sender)
{
hod_User(7);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image8Click(TObject *Sender)
{
hod_User(8);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image9Click(TObject *Sender)
{
hod_User(9);
}
//---------------------------------------------------------------------------



user posted image

3 ошибки выдаёт компилятор,
[C++ Error] Unit3.cpp(97): E2089 Identifier 'ris_hod_Comp' cannot have a type qualifier (173 строчка кода)
[C++ Error] Unit3.cpp(380): E2139 Declaration missing ; (за пределами кода)
[C++ Error] Unit3.cpp(380): E2134 Compound statement missing } (за пределами кода)
[C++ Warning] Unit3.cpp(380): W8070 Function should return a value


подскажите, укажите что исправить !!!!
PM MAIL ICQ   Вверх
MAKCim
Дата 10.3.2006, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

[C++ Error] Unit3.cpp(380): E2139 Declaration missing ; (за пределами кода)

где-то в коде забыл ;


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
mrBaT
Дата 10.3.2006, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.12.2005
Где: Lithuania

Репутация: нет
Всего: нет



MAKCim, а у вас молоко убежало smile

где не хватает, где чего пропущено и что надо исправить это дельный ответ был бы smile
PM MAIL ICQ   Вверх
Dov
Дата 10.3.2006, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



Цитата(mrBaT @ 10.3.2006, 03:11 Найти цитируемый пост)
Ниже приведён код двух файлов Unit1.h и Unit1.cpp:


Цитата(mrBaT @ 10.3.2006, 03:11 Найти цитируемый пост)

75:Unit2.cpp:*******************************************


Цитата(mrBaT @ 10.3.2006, 03:11 Найти цитируемый пост)

[C++ Error] Unit3.cpp(97):
[C++ Error] Unit3.cpp(380):
[C++ Error] Unit3.cpp(380):

mrBaT, ты как-нибудь определись.


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Lotrex
Дата 10.3.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 9.2.2006
Где: Казань

Репутация: 2
Всего: 3



Ты бы нормальный код привел. Что у тебя все include обрезаны?
И по-моему, ты привел сообщения об ошибках компиляции файла unit3.cpp, а выложил код, содержащийся в unit2.cpp. smile
PM MAIL ICQ   Вверх
maxim1000
Дата 10.3.2006, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Цитата(mrBaT @ 10.3.2006, 03:11 Найти цитируемый пост)
#include

а это что такое?
#include должен быть не сам по себе - после него нужно писать имя файла, который подключается...


--------------------
qqq
PM WWW   Вверх
mrBaT
Дата 12.3.2006, 03:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.12.2005
Где: Lithuania

Репутация: нет
Всего: нет



ну ребята ! ошибка не в этом же...
там с учебника .. поэтому инклуд ненаписан !
а унит3 это у себя дома на Form3 делал ..



PM MAIL ICQ   Вверх
tigger
Дата 12.3.2006, 04:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

Репутация: нет
Всего: 4



Выкладывай исходник че пальцем в небо тыкать.


--------------------
user posted image
PM MAIL   Вверх
mrBaT
Дата 12.3.2006, 04:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.12.2005
Где: Lithuania

Репутация: нет
Всего: нет



всмысле выкладывать программу неоткомпилированную ?
PM MAIL ICQ   Вверх
armageddon
Дата 12.3.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 9.11.2005
Где: 239

Репутация: нет
Всего: нет



в смысле полный код программы, а не частями
PM MAIL   Вверх
mrBaT
Дата 12.3.2006, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.12.2005
Где: Lithuania

Репутация: нет
Всего: нет



armageddon,
а я что и сделал там *.cpp и *.h файлы
PM MAIL ICQ   Вверх
tigger
Дата 13.3.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

Репутация: нет
Всего: 4



mrBaT все файлы нужно было.

Ребята ну если он не хочет выкладывать исходники то пусть сам и разбирается как ему поможешь.


--------------------
user posted image
PM MAIL   Вверх
armageddon
Дата 14.3.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 9.11.2005
Где: 239

Репутация: нет
Всего: нет



напиши полный код программы!все файлы!
а именно:unit1, unit2,unit3
если не заметил, но у тебя ошибки только в unit3!!в строках 97 и 380
нет, ты конечно можешь его и не выкладывать, но тогда мы тебе ничем помочь не можем!

PM MAIL   Вверх
Earnest
Дата 17.3.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Судя по сообщению об ошибке, скорее всего лишняя открывающая или недостающая закрывающая скобка (в предыдущей). Т.е. компилятор думает, что он еще внутри предыдущей функции. Там у тебя циклы вложенные, код без сдвигов - черт ногу сломит. Проверь скобки.


--------------------
...
PM   Вверх
threef
Дата 22.3.2006, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

Репутация: 9
Всего: 10



Функция проверка ,тьфу, proverka, нуждается в проверке количества скобок.
Чтобы не возникало подобных ошибок придумали структурированную форму записи программного кода и оный же тип языков программирования. Не стоит все строчки начинать с первой позиции. Кстати, ты код в блокноте пишешь ? Все мало-мальски грамотные редакторы будут сдвигать текст по мере вложенности блоков , да и борландень это всегда делала по умолчанию. Если уж очень тяжело - переползай в 7-ю студию от MS, там блоки выделены сбоку плюсиками.
Так что про молоко - это у тебя самого.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0605 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.