导航:首页 > 源码编译 > c语言文字版游戏源码

c语言文字版游戏源码

发布时间:2024-03-15 16:00:15

㈠ C语言简易文字冒险游戏源代码

记忆游戏

#include<stdio.h>

#include<time.h>

#include<stdlib.h>

#include<windows.h>

#defineN10

intmain()

{inti,k,n,a[N],b[N],f=0;

srand(time(NULL));

printf("按1开始 按0退出:_");

scanf("%d",&n);

system("cls");

while(n!=0)

{for(k=0;k<N;k++)a[k]=rand()%N;

printf(" [请您牢记看到颜色的顺序] ");

for(k=0;k<N;k++)

{switch(a[k])

{case0:system("color90");printf("0:淡蓝色 ");break;//淡蓝色

case1:system("colorf0");printf("1:白色 ");break;//白色

case2:system("colorc0");printf("2:淡红色 ");break;//淡红色

case3:system("colord0");printf("3:淡紫色 ");break;//淡紫色

case4:system("color80");printf("4:灰色 ");break;//灰色

case5:system("colore0");printf("5:黄色 ");break;//黄色

case6:system("color10");printf("6:蓝色 ");break;//蓝色

case7:system("color20");printf("7:绿色 ");break;//绿色

case8:system("color30");printf("8:浅绿色 ");break;//浅绿色

case9:system("color40");printf("9:红色 ");break;//红色

}

Sleep(1500);

system("colorf");//单个控制文字颜色

Sleep(100);

}

system("cls");

printf("0:淡蓝色,1:白色,2:淡红色,3:淡紫色,4:灰色,5:黄色,6:蓝色7:绿色,8:浅绿色,9:红色 ");

printf(" 请输入颜色的顺序:");

for(k=0;k<N;k++)scanf("%d",&b[k]);

for(k=0;k<N;k++)if(a[k]==b[k])f++;

if(f==0)printf("你的记忆弱爆了0 ");

elseif(f==1)printf("你的记忆有点弱1 ");

elseif(f<5)printf("你的记忆一般<5 ");

elseprintf("你的记忆力很强! ");

Sleep(2000);

system("cls");

printf(" 按0退出 按任意键继续游戏: ");

scanf("%d",&n);

system("cls");

}

return0;

}

注:DEVc++运行通过,每输入一个数字要加入一个空格。

㈡ 用C语言编写的小游戏代码是什么

“猜数字小游戏”,每个数字后按空格,最后按回车确认

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

int a[4],b[4];

int count=0; //计算猜测次数

void csh( ); //初始化

void start( ); //开始游戏

int main( )

{ csh( );

start( );

}

void csh( ) //初始化

{ printf(" 猜 数 字 小 游 戏 ");

printf(“ 猜四个数字,如数字与顺序都正确记为A,数字正确位置不对记为B. ”);

}

void start( ) //开始游戏

{int m,n; //m是完全猜对的个数,n是顺序不对的个数

while(1)

{srand((unsigned)time(NULL)); //初始化随机数发生器srand( )

while(1) { for(int i=0;i<4;i++) a[i]=rand( )%10; //rand( )函数每次随机产生一个0-9的数

if( (a[3]!=a[2]&&a[3]!=a[1]&&a[3]!=a[0])&&

(a[2]!=a[1]&&a[2]!=a[0])&&a[1]!=a[0] ) break; } //4个随机数各自不相等

printf(" 请依次输入4个一位整数: ");

while(1)

{for(int i=0;i<4;i++) scanf(“%d”,&b[i]);

printf(" 你输入的是:%d %d %d %d ",b[0],b[1],b[2],b[3]);

m=0;n=0;

for(int i=0;i<4;i++)

{for(int j=0;j<4;j++)

{ if(b[i]==a[j]&&i==j)m=m+1; if(b[i]==a[j]&&i!=j)n=n+1; }

}

count=count+1;

printf(" %dA %dB 你试了%d次 ",m,n,count);

if(m==4)break;

if(count==8){ count=0; break; }

}

printf(" ");

if(m==4)printf(" 你猜对了(^-^)! 就是:%d %d %d %d ",a[0],a[1],a[2],a[3]);

else printf(" 你输了(T-T)!哈哈!应该是:%d %d %d %d ",a[0],a[1],a[2],a[3]);

int z;

printf(" (要继续吗?1或0) ");

scanf(“%d”,&z);

if(z==0) break;

}

}

㈢ 用C语言设计一个“三子棋”的游戏,要求用上下左右光标控制。要程序源代码!

#include <iostream>
#include <string>
using namespace std;
class CGobang //棋子类
{
private:
char chSort; //棋子的类别
int nWin; //赢棋的次数
int nLose; //输棋的次数
static int nDraw; //平局次数
static char achBoard[3][3]; //棋盘
static int nSize; //棋盘的尺寸 nSize X nSize
public:
CGobang(char chsort) //构造函数,决定一方棋子的类别
{
chSort=chsort;
nWin=nLose=nDraw=0;
}
void PlayTurn(void); //走1步棋
int Judge(); //判断是否连成一线,是则返回1,否则返回0
void Win(void); //赢棋
void Lose(void); //输棋
static void Draw(void); //平局
void PrintInfo(void); //输出总体情况
static void PrintBoard(void); //输出棋盘
static int GetFull(void); //判断棋盘是否已布满棋子
static void InitialBoard(void); //初始化棋盘

};
char CGobang::achBoard[3][3];
int CGobang::nSize = 3;
int CGobang::nDraw = 0;
void CGobang::Draw()
{
cout << "\n\n\t\t平局!\n\n";
nDraw++;
}

void CGobang::InitialBoard() //初始化棋盘
{
for(int i=0;i<nSize;i++)
for(int j=0;j<nSize;j++)
achBoard[i][j]=' ';
}
void CGobang::PrintBoard() //输出棋盘
{
cout << endl;
cout << " 1 2 3 " << endl;
cout << "1 " << achBoard[0][0] << " | " << achBoard[0][1] << " | " << achBoard[0][2] << endl;
cout << " ---|---|---" << endl;
cout << "2 " << achBoard[1][0] << " | " << achBoard[1][1] << " | " << achBoard[1][2] << endl;
cout << " ---|---|---" << endl;
cout << "3 " << achBoard[2][0] << " | " << achBoard[2][1] << " | " << achBoard[2][2] << endl;
cout << endl;
cout << endl;
}
int CGobang::GetFull() //判断棋盘是否布满棋子,若是返回1
{
for(int i=0;i<nSize;i++)
for(int j=0;j<nSize;j++)
if(achBoard[i][j]!=' ')
return 0;

return 1;
}
void CGobang::Win() //赢棋
{
cout << "\n\n\t\t"<<chSort<<"方获胜!\n\n";
nWin++;
}
void CGobang::Lose() //输棋
{
nLose++;
}
void CGobang::PlayTurn(void) //走1步棋
{
int nRow,nCol;
cout <<"现在该 "<<chSort<<" 方下棋,请输入棋盘坐标(x,y):";
do
{
cin >> nRow >> nCol; //输入坐标
if(nRow>nSize || nCol>nSize) //判断坐标越界
cout <<"输入的坐标越界,x与y的范围应小于等于"<<nSize<<",请重新输入\n";
else if(achBoard[nRow-1][nCol-1]!=' ') //判断坐标合理
cout <<"棋盘("<<nRow <<" ,"<<nCol <<")处已有棋子,请重新输入\n";
else
{
achBoard[nRow-1][nCol-1]=chSort; //在坐标处放上棋子
break; //退出循环
}
}while(1);
}
int CGobang::Judge() //判断是否棋子连成一线,若是返回1
{//以下是各种可能连成一线的情况
if(achBoard[0][0]==chSort && achBoard[1][1]==chSort && achBoard[2][2]==chSort)
return 1;
else if(achBoard[2][0]==chSort && achBoard[1][1]==chSort && achBoard[0][2]==chSort)
return 1;
else if(achBoard[0][0]==chSort && achBoard[1][0]==chSort && achBoard[2][0]==chSort)
return 1;
else if(achBoard[0][1]==chSort && achBoard[1][1]==chSort && achBoard[2][1]==chSort)
return 1;
else if(achBoard[0][2]==chSort && achBoard[1][2]==chSort && achBoard[2][2]==chSort)
return 1;
else if(achBoard[0][0]==chSort && achBoard[0][1]==chSort && achBoard[0][2]==chSort)
return 1;
else if(achBoard[1][0]==chSort && achBoard[1][1]==chSort && achBoard[1][2]==chSort)
return 1;
else if(achBoard[2][0]==chSort && achBoard[2][1]==chSort && achBoard[2][2]==chSort)
return 1;
else
return 0; //没有连成一线则返回0
}
void CGobang::PrintInfo(void) //打印总体情况
{
cout <<"Side "<<chSort<<"方共计赢 "<<nWin<<" 局,输 "<<nLose<<" 局,平 "<<nDraw<<" 局。"<<endl;
}
void PrintRule(void) //打印规则
{
cout << "\t\t欢迎使用三子连珠游戏!" << endl << endl;
cout << "\t游戏规则:" << endl;
cout << "\t1.每1步输入要下棋的格子的x,y坐标,按Enter键\n";
cout << "\t2.有1方首先3个棋子连成一线即判获胜\n";
cout << "\t3.当棋子布满棋盘但仍无获胜方即为平局\n";
cout << "\t4.X方先行\n";
cout << "\n\n\t\t请按任意键开始下棋!\n\n";
}
int JudgePlay(CGobang & SideX,CGobang & SideO) //每下1步要进行输赢的判断,有结果则返回1
{
if(SideX.Judge()) //X方获胜
{
SideX.Win();
SideO.Lose();
return 1;
}
else if(SideO.Judge()) //O方获胜
{
SideO.Win();
SideX.Lose();
return 1;
}
else
return 0;
}
void Play(CGobang & SideX,CGobang & SideO) //开始一局游戏
{
while(1)
{
CGobang::PrintBoard(); //输出棋盘
SideX.PlayTurn(); //X方下棋
if(JudgePlay(SideX,SideO)) //判断输赢
break;
if(CGobang::GetFull()) //判断是否平局
{
CGobang::Draw();
break;
}
CGobang::PrintBoard(); //输出棋盘
SideO.PlayTurn(); //O方下棋
if(JudgePlay(SideX,SideO)) //判断输赢
break;
if(CGobang::GetFull()) //判断是否平局
{
CGobang::Draw();
break;
}
}
}

int main(void)
{
CGobang SideX('X'),SideO('O'); //定义两个棋子类对象,分别代表X方与O方
PrintRule();
cin.get();
string strChoice;
do
{
CGobang::InitialBoard(); //初始化棋盘
Play(SideX,SideO); //开始下一局
cout << "是否继续(Y/N)?";
cin >> strChoice;
}while(strChoice == "Y" || strChoice == "y");

SideX.PrintInfo();
SideO.PrintInfo();
cout << "\n\n\t欢迎再次使用三子连珠游戏!" << endl << endl;
return 0;
}

㈣ c语言猜数字游戏源代码

小游戏2048:

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<time.h>

#include<windows.h>

int jsk( ); //计算空格数

void rsgm( ); //重置游戏

void inkey( ); //按键输入

void left( ); //向左移动

void right( ); //向右移动

void up( ); //向上移动

void down( ); //向下移动

void show( ); //输出界面

void adnum( ); //添加随机数

void yes( ); //游戏是否结束(1是0否)

void gtxy(int x, int y); //控制光标位置的函数

int a[4][4]; //存储16个格子中的数字

int score = 0; //每局得分

int best = 0; //最高得分

int ifnum; //是否需要添加数字(1是0否)

int over; //游戏结束标志(1是0否)

int i,j,k;

int main( )

{ rsgm( ); //重置游戏

inkey( ); //按键输入

return 0;

}

void Color(int a) //设定字符颜色的函数(a应为1-15)

{ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a); }

void rsgm( ) //重置游戏

{ score = 0; ifnum = 1; over = 0; srand((unsigned)time(0)); //启动随机数发生器

int n = rand( ) % 16; //随机函数产生0-15的数字

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

{for (j = 0; j < 4; j++)

{ if (n == 0) { int k = rand( ) % 3; if (k == 0 || k == 1) { a[i][j] = 2; }

else { a[i][j] = 4; } n--; }

else { a[i][j] = 0; n--; }

}

}

adnum( );

system("cls");

CONSOLE_CURSOR_INFO gb={1,0}; //以下两行是隐藏光标的设置,gb代指光标

SetConsoleCursorInfo( GetStdHandle(STD_OUTPUT_HANDLE), &gb );

Color(14); //设置字体淡黄色

printf(" 2048小游戏"); Color(7); //恢复白字黑底

printf(" ┌──────┬──────┬──────┬──────┐");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" └──────┴──────┴──────┴──────┘");

show( );

}

void show( ) //输出界面

{ for(i=0;i<4;i++)

for(j=0;j<4;j++)

{ gtxy(7*j+9,2*i+4); //gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字

if(a[i][j]==0){printf(" "); Color(7); printf("│");}

else if(a[i][j]<10){ if (a[i][j] == 2) { Color(14); }

else if (a[i][j] == 4) { Color(13); }

else if (a[i][j] == 8) { Color(12); }

printf(" %d ", a[i][j]); Color(7 ); printf("│");

}

else if (a[i][j] < 100){if (a[i][j] == 16) { Color(12); }

else if (a[i][j] == 32) { Color(10); }

else if (a[i][j] == 64) { Color(2 ); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

else if (a[i][j] < 1000) {if (a[i][j] == 128) { Color(9); }

else if (a[i][j] == 256) { Color(1); }

else if (a[i][j] == 512) { Color(13); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

else if (a[i][j] < 10000) {if (a[i][j] == 1024) { Color(5); }

else { Color(15); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

}

if (jsk( ) == 0)

{ yes( ); if (over) { gtxy(9,12); Color(10);

printf(" 游戏结束!是否继续? [ Y/N ]:"); }

}

}

void inkey( ) //按键输入

{ int key;

while (1)

{ key = getch( );

if (over) { if (key == 89|| key == 121) { rsgm( ); continue; }

else if (key == 78|| key == 110) { return; }

else continue; }

ifnum = 0;

if(key==224)key=getch( );

switch (key)

{ case 75: left( ); break;

case 77: right( ); break;

case 72: up( ); break;

case 80: down( );break;

}

if (score > best) { best = score; }

if (ifnum) { adnum( ); show( ); }

}

}

int jsk( ) //计算空格数

{ int n = 0;

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

{ for (j = 0; j < 4; j++) { if ( a[i][j] == 0) {n++;} } }

return n;

}

void left( ) //向左移动

{ for (i = 0; i < 4; i++)

{for (j = 1, k = 0; j < 4; j++)

{ if (a[i][j] > 0)

{ if ( a[i][k] == a[i][j])

{ a[i][k] *= 2; k++;

score = score + 2 * a[i][j];

a[i][j] = 0; ifnum = 1; }

else if ( a[i][k] == 0) { a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }

else { a[i][k + 1] = a[i][j]; if ((k + 1) != j) { a[i][j] = 0; ifnum = 1; }

k++; }

}

}

}

}

void right( ) //向右移动

{for (i = 0; i < 4; i++)

{for (j = 2, k = 3; j >= 0; j--)

{if (a[i][j] > 0)

{ if (a[i][k] == a[i][j])

{a[i][k] *= 2; k--; score = score + 2 * a[i][j]; a[i][j] = 0; ifnum = 1; }

else if ( a[i][k] == 0) {a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }

else { a[i][k - 1] = a[i][j]; if ((k - 1) != j) { a[i][j] = 0; ifnum = 1; } k--; }

}

}

}

}

void up( ) //向上移动

{for (i = 0; i < 4; i++)

{for (j = 1, k = 0; j < 4; j++)

{if (a[j][i] > 0)

{if ( a[k][i] == a[j][i]) { a[k][i] *= 2; k++;score = score + 2 * a[j][i];

a[j][i] = 0; ifnum = 1; }

else if ( a[k][i] == 0) { a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }

else { a[k + 1][i] = a[j][i]; if ((k + 1) != j) { a[j][i] = 0; ifnum = 1; }

k++; }

}

}

}

}

void down( ) //向下移动

{ for (i = 0; i < 4; i++)

{for (j = 2, k = 3; j >= 0; j--)

{if (a[j][i] > 0)

{if (a[k][i] == a[j][i])

{a[k][i] *= 2; k--;score = score + 2 * a[j][i]; a[j][i] = 0; ifnum = 1; }

else if (a[k][i] == 0) {a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }

else {a[k - 1][i] = a[j][i];

if ((k - 1) != j) {a[j][i] = 0; ifnum = 1; } k--; }

}

}

}

}

void adnum( ) //添加随机数

{ srand(time(0)); int n = rand( ) % jsk( );

for (int i = 0; i < 4; i++)

{for (int j = 0; j < 4; j++)

{ if (a[i][j] == 0) {if (n != 0) { n--; }

else {int k = rand( ) % 3;

if (k == 0 || k == 1) {a[i][j] = 2; return; }

else {a[i][j] = 4; return; } }

}

}

}

}

void yes( ) //游戏是否结束

{ for (int i = 0; i < 4; i++)

{for (int j = 0; j < 3; j++)

{if (a[i][j] == a[i][j + 1] || a[j][i] == a[j + 1][i]) {over = 0; return; }}

}

over = 1;

}

void gtxy(int x, int y) //控制光标位置的函数

{ COORD zb; //zb代指坐标

zb.X = x;

zb.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), zb);

}

㈤ 求用C语言编写小游戏的源代码,不管什么小游戏,源代码简单些,适合初学者,3Q。

/*21点游戏*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(void )
{
int a,b,c,d,s,x,t,i,n,k;
s=200,k=1000;
x=t=i=1,a=b=c=d=n=0;
srand((int)time(0));
printf(" 21点游戏
★游戏规则: \n 游戏开始后系统将随机产生1到10之间的数并累加.
1.在点数不大于21时,点数大者赢,点数相等算平局;
2.若一方点数大于21,一方点数小于21,小于21的一方赢;
3.若两方均大于21,则算平局;
4.获胜者获得相应赌注金币,金币到零则结束游戏 .\n (注:继续加点选1,不继续加点选任意非1数)\n\n##########################\n\n") ;
do {
while(x==1)
{

if(t==1)
{
c=rand()%8+3;
a=rand()%10+1;
}
if(t==2)
{
a=rand()%5+1;
c=rand()%4+1;
}
if(t==3)
{
c=rand()%3+1;
a=rand()%3+1;
}
if(t==4)
{
a=rand()%2+1;
c=rand()%3+1;
}
if(t==5)
a=rand()%8+1;
if(t==6)
a=rand()%3+1;

b+=a,d+=c;

if(d>16)
t=2;
if(d==19&&b==19)
t=3;
if(d==20&&b==20)
t=3;
if(b==20&&d==19)
t=4;
if(d==19&&(d-b)>3)
t=5;
if(d==20&&d>b)
t=6;
if(d==21)
t=6;

if(i==1)
{
do
{
printf(" 您现在还有%d个金币,系统有%d个,请输入赌注: ",s,k);
scanf("%d",&n);
}
while(s<n);
i++;
}

if(b>21&&d<22)
{
printf(" 你%d点,系统%d点,你输了!\n\n\n\n",b,d);
s-=n;
k+=n;
t=i=1,b=d=0;
break;
}
if(d>21&&b<22)
{
printf(" 你%d点,系统%d点,你赢了!\n\n\n\n",b,d);
s+=n;
k-=n;
t=i=1,b=d=0;
break;
}
if(d>21&&b>21)
{
printf(" 你%d点,系统%d点,平局!
\n\n\n",b,d);
t=i=1,b=d=0;
break;
}

printf(" 您加%d点,系统加%d点!\n 您现在共 %d点,系统现在共 %d点!\n 是否继续加点 ",a,c,b,d);
scanf(" %d",&x);
a=c=0;
if(x!=1)
{
if(d<b&&d<18)
{
c=rand()%4+2;
d=d+c;
printf("您不加点,系统加%d点",c);
}
if(d<b&&d==20)
{
c=rand()%2+1;
d=d+c;
printf("您不加点,系统加%d点",c);
}
if(d<b&&d==19)
{
c=rand()%4+1;
d=d+c;
printf("您不加点,系统加%d点",c);
}
if(d<b&&d==18)
{
c=rand()%5+1;
d=d+c;
printf("您不加点,系统加%d点",c);
}
if(d>b)
printf("您不加点,系统不加点");

if(d<22&&d>b)
{
printf(" 你%d点,系统%d点,你输了!\n\n\n\n",b,d);
s-=n;
k+=n;
t=x=i=1,b=d=0;
break;
}
if(b>d&&b<22||b<22&&d>21)
{
printf(" 你%d点,系统%d点,你赢了!\n\n\n\n",b,d);
s+=n;
k-=n;
t=x=i=1,b=d=0;
break;
}
if(b==d)
{
printf(" 你%d点,系统%d点,平局!
\n\n\n\n",b,d);
t=x=i=1,b=d=0;
break;
}
}
}
}
while(s>0&&k>0);
printf("您有%d个金币,系统有%d个金币!\n\n" ,s,k);
if(s>k)
printf("太棒了,你把系统打败了!!!\n");else if(k>s)
printf(" 您的金币不足,挑战系统失败!\n");
return 0;
}

阅读全文

与c语言文字版游戏源码相关的资料

热点内容
有pdf却打不开 浏览:460
七星彩软件app怎么下载 浏览:217
32单片机的重映射哪里改 浏览:816
为什么前端不用刷算法题 浏览:708
对称加密系统和公钥加密系统 浏览:428
历史地理pdf 浏览:606
物联网云服务器框架 浏览:648
sybaseisql命令 浏览:183
android权威编程指南pdf 浏览:663
哪些软件属于加密软件 浏览:646
文件夹75丝什么意思 浏览:470
最便宜sop8单片机 浏览:966
图解周易预测学pdf 浏览:420
c盘莫名奇妙多了几个文件夹 浏览:171
贵州花溪门票优惠app哪个好 浏览:803
如何说话不会让人有被命令的感觉 浏览:440
哪里可下载湘工惠app 浏览:265
福特python 浏览:312
pdf转换成word表格 浏览:353
无线远端服务器无响应是什么意思 浏览:672