| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 680 人关注过本帖
标题:[求助]C++
只看楼主 加入收藏
tangqian
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-5-6
收藏
 问题点数:0 回复次数:12 
[求助]C++
大侠们啊。。。在下想请教一个问题!C++是不是VC++?
还有,我正在学VC++,我知道这是面向对象的编程语言。但是里面的“类”我实在是学得一头雾水,根本主摸不清一点头绪———我很茫然,不知道怎么学。。。
我以前学过VFP,对编程还是有一点小了解。。只是“类”这个概念实在让我费解。。
搜索更多相关主题的帖子: 编程语言 编程 怎么学 
2006-12-23 22:48
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
c++ is a language, vc++ is a tool, you'd better study vc++ after you learned c++.

天行健,君子以自强不息!!QQ:68660681
2006-12-23 22:57
tangqian
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-5-6
收藏
得分:0 
哦。。谢谢啊。
但是那个“类”实在让我搞不懂!!!
是不是我把它看得太难了啊?

我的世界我做主!!!
2006-12-24 09:40
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
你想啊,所有人就是一个类--人类。。而你是一个实实在在的人,也就是人类的一个具体实例,即对象。
类是泛指,凡是具有相同特征的群体都可以叫一个类,而对象就是某一个具体的实例。。。

天行健,君子以自强不息!!QQ:68660681
2006-12-24 11:46
tangqian
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-5-6
收藏
得分:0 
晕 。。。了解的这么清楚啊。。
哦。。软件学院的。。。
程序设计的哦。。
最近在开发什么项目?

我的世界我做主!!!
2006-12-24 17:20
tangqian
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-5-6
收藏
得分:0 
哦。。。
把你的QQ发给我咯。。。好联系。。我学网络专业的。。
开了C++课。。

我的世界我做主!!!
2006-12-24 17:22
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
68660681
最近在做课程设计--终结者

天行健,君子以自强不息!!QQ:68660681
2006-12-24 18:03
tangqian
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-5-6
收藏
得分:0 
哎呀。。不知道怎么下手啊!我先自己想一下。。。

我的世界我做主!!!
2006-12-24 18:47
tangqian
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-5-6
收藏
得分:0 

我的想法是这样:

a[0] a[1] a[2]

a[3] a[4] a[5]

a[6] a[7] a[8]

定义一个常量。只要当处在同一直线的三个数组变量等于该常量时。程序返回“you win”!

我的思维是这样的,不晓得行不行得通。。

我正在想如何实现“在同一直线的三个数组变量等于该常量”?


我的世界我做主!!!
2006-12-24 19:08
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

按你的要求与想法 ,我昨晚抽时间给你做了一个,但是此做法很多不足
你可以再考虑优化以下,比如说电脑随机的产生位置,如果N*N个位置中
已经有很少的位置的话那么随机产生可能一直得不到正确的位置,还有你
可以重新设置该游戏的UI,使难度增大。。

////////////////////////////////////////////////////////////////
#include <iostream>
#include <iomanip>
using namespace std;

const int N = 10;
const int M = 3;

void display(int map[N][N]);
void initialize(int map[N][N]);
bool process(int map[N][N]);
int YouInput(int map[N][N]);
bool CheckPos(int map[N][N],int pos);
int ComputerInput(int map[N][N]);
bool CheckWin(int map[N][N],int pos);

int main()
{
int map[N][N];

initialize(map);
display(map);

bool IsWin = process(map);

if ( IsWin ) cout<<"You win!"<<endl;
else cout<<"You lose!"<<endl;

return 0;
}

void initialize(int map[N][N])
{
int index = 0,j;
for(int i = 0 ; i < N ; i++)
for(j = 0 ; j < N ; j++)
map[i][j] = ++index;
}

void display(int map[N][N])
{
for(int i = 0 ; i < N ; i++)
{
for(int j = 0 ; j < N ; j++)
cout<<setw(4)<<map[i][j];
cout<<endl;
}
}

bool process(int map[N][N])
{
bool win = false;
bool lose = false;

int YourPos,ComputerPos;
do
{
YourPos = YouInput(map);

//display again
display(map);

//check if you win
win = CheckWin(map,YourPos);

//computer will set the value of a position is -1 randomly
if( !win )
{
ComputerPos = ComputerInput(map);
display(map);
//check if computer win
lose = CheckWin(map,ComputerPos);
}

}while (!win && !lose);

if ( win ) return true;
else return false;
}

//check if the pos is right
bool CheckPos(int map[N][N],int pos)
{
if ( pos > N*N || pos < 1 ) return false;

if ( 0 == map[(pos-1)/N][(pos-1)%N] ||
(-1 == map[(pos-1)/N][(pos-1)%N] ) ) return false;
return true;
}

int YouInput(int map[N][N])
{
int pos ;
cout<<"input your position: ";
cin>>pos;

while ( !CheckPos(map,pos) )
{
cout<<"the position is not right! " ;
cout<<"input your position: ";
cin>>pos;
}

//make the value of the postion is 0
map[(pos-1)/N][(pos-1)%N] = 0;
return pos;
}

//compter create the postions randomly
int ComputerInput(int map[N][N])
{
int pos;
pos = 1 + rand()%(N*N);

while ( !CheckPos(map,pos) ) pos = 1 + rand()%(N*N);

//make the value of the postion is -1
map[(pos-1)/N][(pos-1)%N] = -1;

cout<<"computer's last position is : "<<pos<<endl;

return pos;
}

bool CheckWin(int map[N][N],int pos)
{
int i = (pos-1)/10;
int j = (pos-1)%10;

if ( i >= M-1 )
if( map[i][j] == map[i-1][j] && map[i][j] == map[i-2][j] )
return true;

if ( i >= M-1 && j >= M-1 )
if( map[i][j] == map[i-1][j-1] && map[i][j] == map[i-2][j-2] )
return true;

if ( j >= M-1 )
if( map[i][j] == map[i][j-1] && map[i][j] == map[i][j-2] )
return true;

if ( i >= M-1 && j <= N-M )
if( map[i][j] == map[i-1][j+1] && map[i][j] == map[i-2][j+2] )
return true;

if ( i <= N-M )
if( map[i][j] == map[i+1][j] && map[i][j] == map[i+2][j] )
return true;

if ( i <= M-1 && j <= M-1 )
if( map[i][j] == map[i+1][j+1] && map[i][j] == map[i+2][j+2] )
return true;

if ( j <= N-M )
if( map[i][j] == map[i][j+1] && map[i][j] == map[i][j+2] )
return true;

if ( i <= N-M && j >= M-1 )
if( map[i][j] == map[i+1][j-1] && map[i][j] == map[i+2][j-2] )
return true;

if ( i >= 1 && i < N-1 )
if( map[i][j] == map[i-1][j] && map[i][j] == map[i+1][j] )
return true;

if ( j >= 1 && j < N-1 )
if( map[i][j] == map[i][j-1] && map[i][j] == map[i][j+1] )
return true;

if ( i >= 1 && i < N-1 && j >= 1 && j < N-1 )
if( (map[i][j] == map[i-1][j-1] && map[i][j] == map[i+1][j+1]) ||
(map[i][j] == map[i-1][j+1] && map[i][j] == map[i+1][j-1]) )
return true;

return false;
}


天行健,君子以自强不息!!QQ:68660681
2006-12-25 10:41
快速回复:[求助]C++
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048762 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved