首页编程c++编程例子(scratch编程)

c++编程例子(scratch编程)

编程之家2026-05-201210次浏览

大家好,今天给各位分享c++编程例子的一些知识,其中也会对scratch编程进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

c++编程例子(scratch编程)

c++游戏编程,写一个游戏编程,简单点

#include<iostream>

#include<iomanip>

usingnamespacestd;

constintX=21;//棋盘行数

constintY=21;//棋盘列数

charp[X][Y];//定义棋盘

c++编程例子(scratch编程)

intm=0;//定义临时点,保存输入坐标

intn=0;

voiddisplay()//输出棋盘

{

for(inti=0;i<X;i++)

cout<<setw(3)<<setfill('')<<i;

c++编程例子(scratch编程)

cout<<endl;

for(inti=1;i<Y;i++)

{

cout<<setw(3)<<setfill('')<<i;

for(intj=1;j<X;j++)

cout<<setw(3)<<setfill('')<<p[i][j];

cout<<endl;

}

}

voidblack()//黑方落子

{

cout<<"请黑方输入落子位置:

"

<<"请输入落子的行数:";

cin>>m;

cout<<"请输入落子的列数:";

cin>>n;

if(m<=0||m>=X||n>=Y||n<=0)

{

cout<<"超出棋盘范围,请重新输入正确坐标!

";

black();

}

elseif((p[m][n]==1)||p[m][n]==2)

{

cout<<"该点已有棋子,请重新选取落子点!

";

black();

}

else

p[m][n]=1;//黑方用1来表示

system("cls");

display();

}

voidred()//红方落子

{

cout<<"请红方输入落子位置:

"

<<"请输入落子的行数:";

cin>>m;

cout<<"请输入落子的列数:";

cin>>n;

if(m>=X||m<=0||n<=0||n>=Y)

{

cout<<"超出棋盘范围,请重新输入正确坐标!

";

red();

}

elseif((p[m][n]==1)||p[m][n]==2)

{

cout<<"该点已有棋子,请重新选取落子点!

";

red();

}

else

p[m][n]=2;//红方用2来表示

system("cls");

display();

}

intevalue()//只需要判断落子点为中心的九点“米”字是否连续即可

{

intk=0,r=0;

/*斜线判断*/

for(k=3;k<X-2;k++)//两条,其中的p[k][r]!='-'是排除空子的情况

{

for(r=3;r<Y-2;r++)

{

if(p[k][r]!='-'&&p[k-2][r-2]==p[k][r]&&p[k-1][r-1]==p[k][r]&&p[k+1][r+1]==p[k][r]&&p[k+2][r+2]==p[k][r])

return1;

elseif(p[k][r]!='-'&&p[k+2][r-2]==p[k][r]&&p[k+1][r-1]==p[k][r]&&p[k-1][r+1]==p[k][r]&&p[k-2][r+2]==p[k][r])

return1;

}

}

/*横线判断*/

for(k=1;k<X;k++)//p[k][r]!='-'是排除空子的情况

for(r=3;r<Y-2;r++)

if(p[k][r]!='-'&&p[k][r-2]==p[k][r]&&p[k][r-1]==p[k][r]&&p[k][r+1]==p[k][r]&&p[k][r+2]==p[k][r])

return1;

/*竖线判断*/

for(k=3;k<X-2;k++)//p[k][r]!='-'是排除空子的情况

for(r=1;r<Y;r++)

if(p[k][r]!='-'&&p[k-2][r]==p[k][r]&&p[k-1][r]==p[k][r]&&p[k+1][r]==p[k][r]&&p[k+2][r]==p[k][r])

return1;

return0;

}

intmain()

{

memset(p,'-',441);//初始化为‘-’

cout<<"欢迎使用简易双人对战五子棋游戏

"

<<"五子棋棋谱如下:

";

display();

while(1)

{

red();

if(evalue())

{

cout<<"红方赢!

";

break;

}

black();

if(evalue())

{

cout<<"黑方赢!

";

break;

}

}

return0;

}人人对战五子棋

菜鸟求c++编程思路

首先,需要有一个判断颜色区别的算法,是否以RGB配色表的下标就可以确定?这个需要根据配色表的特点来决定;也就是说,题目中如何判断延时区别尽量大的算法要设计好,怎么计算;

数据结构:这个应该是二维数组,第一维表示组别,下标取值0~m-1,第二维是颜色,可以用配色表的下标值来表示

算法:要根据具体要求来确定,选取颜色的策略是什么,什么叫每个组的颜色与其他的区别?是否是与临近组的颜色区别?颜色是否可重复?具体计算时可以用辅助数组来表明某个颜色是否已经被选用,利用计算机的穷尽算法找出各种方案的评估取值,最后选用取值最满足要求的方案。

急!请C++高手帮忙编程。100分送上。

/*(1)定义一个函数 int count(int a[],int n)在n个元素的数组a中,统计出大于零的元素个数,此个数作为函数返回值。在main()函数中,对数组b做如下初始化

int b[]={15,16,-23,7,-5,19,-2,0,28,11};

然后调用你定义的函数,在主函数中输出数组b中小于零元素的个数。

*/

#include"iostream.h"

int z=0;//零的个数

int count(int a[],int n)

{

int dl=0;//大于0的个数

int i;

for(i=0;i<n;i++)

{

if(a[i]>0)

dl++;

else if(a[i]==0)

z++;

}

return dl;

}

void main()

{

int n,x;

int b[]={15,16,-23,7,-5,19,-2,0,28,11};

n=10;

x=n-count(b,n);

x=x-z;

cout<<"less than zero number="<<x<<endl;

}

/*(2)写两个函数,分别求两个整数的最大公约数和最小公倍数,

用主函数调用这两个函数并输出结果。两个整数由键盘输入。

利用最大公约数求最小公倍数

由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。这就是说,求两个数的最小公倍数,可以先求出两个数的最大公约数,再用这两个数的最大公约数去除这两个数的积,所得的商就是两个数的最小公倍数。

例求105和42的最小公倍数。

因为105和42的最大公约数是21,

105和42的积是4410,4410÷21=210,

所以,105和42的最小公倍数是210。

*/

#include"iostream.h"

int gys,gbs;

int gy(int a,int b)

{

int r;

r=a%b;

if(r!=0)

{

a=b;

b=r;

r=a%b;

}

return b;

}

int gb(int a,int b)

{

int r;

r=a*b/gys;

return r;

}

int main()

{

int a,b,t;

cout<<"Input a"<<endl;

cin>>a;

cout<<"Input b"<<endl;

cin>>b;

if(a==0|| b==0)

{

cout<<"Input Error"<<endl;

return 0;

}

if(a<b)

{

t=a;a=b;b=t;

}

gys=gy(a,b);

gbs=gb(a,b);

cout<<"gys="<<gys;

cout<<"gbs="<<gbs;

}

/*(3)求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0、

等于0和小于0时的根,并输出结果。从主函数出入a、b、c的值,

编程求解该方程的根。

*/

#include"iostream.h"

#include<math.h>

void dy(double a,double b,double c,double derta)

{

double d;

double x1,x2;

if(a==0)

{

x1=-c/b;

x2=-c/b;

}

else

{

d=pow(derta,0.5);

x1=(-b+d)/2/a;

x2=(-b-d)/2/a;

}

cout<<"x1="<<x1<<endl;

cout<<"x2="<<x2<<endl;

}

void deng(double a,double b,double c, double derta)

{

dy(a,b,c,derta);

}

void xiao(void)

{

cout<<"no answer!"<<endl;

}

int main()

{

double a,b,c;

double derta;

cout<<"Input a"<<endl;

cin>>a;

cout<<"Input b"<<endl;

cin>>b;

cout<<"Input c"<<endl;

cin>>c;

derta=b*b-4*a*c;

if( derta>0)

{

dy(a,b,c,derta);

}

else if(derta==0)

{

deng(a,b,c,derta);

}

else// derta<0

{

xiao();

}

}

/*(4)写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息

*/

#include"iostream.h"

#include<math.h>

int compare(int n)

{

int b=1;

int i;

if(n==2|| n==1)

{

}

else

{

for(i=2;i<=n;i++)

{

if(n%i==0)

{

b=0;

break;

}

}

}

return b;

}

int main()

{

int n;

cout<<"Input n"<<endl;

cin>>n;

if(compare(n)==1)

{

cout<<"this number is prime number!"<<endl;

}

else

{

cout<<"this number is not prime number!"<<endl;

}

}

/*(1)编写一个函数,实现两个整数的交换。如:主调函数中

int a=10;

int b=20;

使用引用作为函数的参数,交换后为:

a=20;

b=10;

*/

#include"iostream.h"

void change(int&a,int&b)

{

int t;

t=a;

a=b;

b=t;

}

void main()

{

int a=10;

int b=20;

change(a,b);

cout<<"a="<<a<<"\nb="<<b<<endl;

}

/*(2)编程实现两个字符串的交换。如:

char*p1=”hello”

char*p2=”good”

使用引用作为函数的参数,交换后为:

p1:” good”

p2:” hello”

*/

#include"iostream.h"

#include"stdio.h"

#include"string.h"

void change(char*&p1,char*&p2)

{

char*t1;

t1=p1;

p1=p2;

p2=t1;

}

void main()

{

char*p1="hello";

char*p2="good";

change(p1,p2);

cout<<"p1="<<p1<<"\np2="<<p2<<endl;

}

OK,本文到此结束,希望对大家有所帮助。

源码编辑器教程视频?自制游戏编辑器手机版普通人用ai干什么赚钱,普通人到底应该怎么学习ai,才能真的赚到钱(认真干货)