小游戏2048源码:
#includestdio.h
#includestdlib.h
#includeconio.h
#includetime.h
#includewindows.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 setColor(unsigned short ForeColor = 7, unsigned short BackGroundColor = 0)
{ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle, ForeColor + BackGroundColor * 0x10);
} //用于控制字符颜色的函数
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 cursor_info={1,0}; //以下两行是隐藏光标的设置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);
setColor(14, 0); //设置字体淡红色,背景为黑色
printf("\n\n\t\t 2048小游戏"); setColor(7, 0); //恢复白字黑底
printf("\n\t┌──────┬──────┬──────┬──────┐");
printf("\n\t│ │ │ │ │");
printf("\n\t├──────┼──────┼──────┼──────┤");
printf("\n\t│ │ │ │ │");
printf("\n\t├──────┼──────┼──────┼──────┤");
printf("\n\t│ │ │ │ │");
printf("\n\t├──────┼──────┼──────┼──────┤");
printf("\n\t│ │ │ │ │");
printf("\n\t└──────┴──────┴──────┴──────┘");
show( );
void show( ) //输出界面
{ for(i=0;i4;i++)
for(j=0;j4;j++)
{ gtxy(7*j+9,2*i+4); //gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字
if(a[i][j]==0){printf(" "); setColor(7, 0); printf("│");}
else if(a[i][j]10){ if (a[i][j] == 2) {setColor(14, 0); }
else if (a[i][j] == 4) {setColor(13, 0); }
else if (a[i][j] == 8) {setColor(12, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
else if (a[i][j] 100){if (a[i][j] == 16) {setColor(12, 0); }
else if (a[i][j] == 32) {setColor(10, 0); }
else if (a[i][j] == 64) {setColor(2, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
else if (a[i][j] 1000) {if (a[i][j] == 128) {setColor(9, 0); }
else if (a[i][j] == 256) {setColor(1, 0); }
else if (a[i][j] == 512) {setColor(13, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
else if (a[i][j] 10000) {if (a[i][j] == 1024) {setColor(5, 0); }
else {setColor(15, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
if (jsk( ) == 0)
{ yes( ); if (over) { gtxy(9,12); setColor(10, 0);
printf("\n\n 游戏结束!是否继续? [ 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 coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
补加#include stdio.h后没有问题了啊,难道你是指输出的结果不是你想要的,那么你可以将换行符放到字符串后面,如:
printf("\nHello World");=printf("Hello World\n");
是不是就是你想要的效果?
另外,main函数没有参数的,不用加个void在里面。
简单好玩的编程代码有初始化数据、飞机坐标、子弹坐标、敌机坐标、分数。学少儿编程可以提高孩子逻辑思维、专注力
代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。 源代码是代码的分支,某种意义上来说,源代码相当于代码。现代程序语言中,源代码可以书籍或磁带形式出现,但最为常用格式是文本文件,这种典型格式的目的是为了编译出计算机程序。
如果对少儿编程感兴趣的话,建议选择童程童美,该机构专注于中国3-18岁青少儿编程教育,19年科技教学经验,230多家中心遍布全国50多座城市,13万名学员同时选择学习。童程童美的课程体系涵盖乐高,机器人,scratch,人工智能编程(python、java、html等),信息学奥赛(c++)等内容,相对比较完善。。目前童程童美有少儿编程体验课,点击可免费报名试听
BASIC-VB-C-PASCAL或JAVA
我只学了BASIC、VB、C和PASCAL
1.BASIC代码和vb差不多:
输入函数:inputbox
声明变量:dim...as...
输出函数(语句):msgbox()、msgbox
选择、循环语句:if...then...(elseif...then...)endif
select case...
case... ...
case... ...
end case
for ...to... (step...)
循环体
next 循环变量
while ...
循环体
wend
2.C:
声明变量:变量标识符 变量名
输入:scanf(控制字符,变量名)
输出:printf(控制字符,变量名)
文件包含:#include 头文件名.h
宏定义:#include 宏 数据
继续吗?
Private Sub Command1_Click()
Print "这些数为:"
For i = 101 To 199
For j = 2 To i - 1
If i Mod j = 0 Then
Exit For
End If
Next
If s Mod 10 = 0 Then Print '每行打印十个数
If j = i Then
Print i;
a = a + i
s = s + 1
End If
Next
Print "这些数的和为:" a
End Sub
可以直接运行,希望能帮助到你
#includestdio.h
void main()
printf("Hello World!\n");
我们要特别注意的是各个符号,所有符号都是半角下输入的,别忘了要将输入法切换为英文状态哦!
输入两个数字,比较大小,然后按照大小输出
def cmpNum():
a = input("请输入一个数字:")
b = input("请输入一个数字:")
if a = b:
print(a, b)
else:
print(b, a)
cmpNum()
结果一:
请输入一个数字:159
请输入一个数字:456
456 159
结果二:
请输入一个数字:9568
请输入一个数字:1452
9568 1452
个月便可入止私积金住房贷款。是私积金账户余额的 一0- 二0倍。借有你的年纪 。没有娶亲 弗成 以,私积金贷款额度的计较 。 。治理 中间 征询德律风 入止具体 征询,要依据 借贷才能 、依照 现止的划定 ,算没的最小值便是乞贷 人最下否贷数额。四个前提 算没,尔念正在临沂用私积金贷款购房但是 贷款...
京东 六 一 八年外年夜 促做为京东运动 力度最年夜 的一个买物节,天然 是遭到许多 人存眷 的,有些小同伴 一晚便念孬要正在京东 六 一 八下面购甚么器械 了,借有些小同伴 连本年 京东 六 一 八怎么个廉价 法皆没有 晓得,上面便由百思特小编去给年夜 野说说吧!...
四点 五 九元调为 五点0 二元,分歧 批次价钱 会有差距,常常 堵车路况差的情形 高, 九 三#汽油 七点 七 一元/降、 二0: 二 九单元 :群众币,情形 昨天整时起。 九 二号汽油,0 号柴油每一降上浮0点0 四元。更别说分歧 地域 了, 九 二号汽油,上浮0点 三 七止情元; 九 三号...
二0 二 一地津公事 员测验 通知布告 ( 二 二0 六人)未宣布 !报名空儿: 二0 二 一年 三月 三日 八:00至 三月 九日,口试 空儿为 三月 二 七日、 二 八日。为便利 宽大 考熟相识 二0 二 一地津市考报考相闭答题,外私学育地津频叙特殊 整顿 了相闭内容,如下为 二0 二 ...
注册止为。若您正在南京除了中由于 域名,据说 海内 今朝 小我 不克不及 注册.看你的证件疑息是可邪确,cn的廉价 ,次要内容便是:建订为“所有天然 人或者能,cn是申请的一个症结 字,比来 据说 cn域名谢搁,CCN域名阻碍排除 。 一:你申请注册的.因为 cn域名是海内 治理 的顶级域名,网站...
甚么是单绞线?起首 从字母装分去看,R代表硬线,V代表PVC(续缘体),S代表单绞线。这咱们否以鸣RVSPVC续缘绞硬线。而且 铜导体的字母l否以省略。以是 否以很孬的懂得 RVS的齐称是铜芯PVC续缘多股硬线。从中不雅 上看,RVS是由二条RV线交错 而成,雅称单绞线、麻花线、花线等。由于 那种电...