小程序开发代码大全(小程序代码库)
今天给各位分享小程序开发代码大全的知识,其中也会对小程序代码库进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
Python程序开发之简单小程序实例(3)-打印99乘法口诀表
Python程序开发之简单小程序实例
(3)-打印99乘法口诀表
一、项目功能
在屏幕中打印格式化的九九乘法口诀表。
二、项目分析
按九九乘法口诀的运算顺序,打印的口诀表共有9行9列,第1行只有1列,第2行有2列……,第9行共有9列,如下所示:
1 1
1 2 2 2
1 3 2 3 3 3
……
……
1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 9
要按格式控制输出,需定义2个循环,其中一个循环(我们称其为外循环,在其内定义变量i)嵌套另一个循环(我们称其为内循环,在其内定义变量j),外循环(变量i)控制行,循环次数大于等于1且小于10,内循环(变量j)控制列,循环次数取决于外循环变量i的值。
三、程序源代码
#!/usr/bin/python3.6
# -*- coding: GBK -*-
print("九九乘法口诀表")
for i in range(1, 10):
print()
for j in range(1, i+1):
print ("%d*%d=%d" % (j, i, i*j), end=" " )
四、代码解释:
在程序的第一行为引用python版本,本实例为python3.6
第二行是程序编码引用,因为在程序中包含有中文字符,所以必须引用GBK,否则就会报错。
第三行为输出标题“九九乘法口诀表”
第四行至第七行为程序主体,由两个循环嵌套组成,在循环内的第五行,为一个控制行格式输出语句print(),用于换行操作。
五、运行后的输出结果
下一篇:《Python程序开发之简单小程序实例(4)》
微信小程序码如何生成 微信小程序码生成方法攻略教程大全
微信小程序(wei xin xiao cheng xu),简称小程序,缩写XCX,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
全面开放申请后,主体类型为企业、政府、媒体、其他组织或个人的开发者,均可申请注册小程序。小程序、订阅号、服务号、企业号是并行的体系。小程序码怎么生成?许多小程序开发者,都需要获取进入小程序不同页面的二维码:包括常见的四方形「QR码」和新推出的「小程序码」。
这时候,我们直接在小程序后台中获取到的二维码,就远远无法满足我们以上需求了。贴心的是,微信提供了「获取小程序二维码」的接口。
通过这个接口,商家和开发者能够制作进入不同页面的小程序二维码,而不会限定扫码进入小程序主页。
小程序码怎么生成?
下面,小编就以「虚荣数据库」小程序的某个英雄详情页为例,展示这个接口的使用方法。
【准备工作】
首先,我们需要确保在小程序的app.json代码中,已经注册了相应的页面。
在本例的设定中,我们就需要在pages里,将pages/detail/hero/hero这个页面注册进去。
pages:[pages/index/index,pages/detail/hero/hero]
当然,相应目录下也需要有相应的页面文件,且你的小程序已经有已发布的线上版本。否则,用户扫码后,微信会提示出错。
接下来,我们需要到微信小程序后台,获取小程序的AppSecret(如果已经获取,这一步可以跳过)。
进入小程序后台,点击左侧「设置」,找到「开发设置」,我们就能找到AppSecret一项。点击「获取」或「重置」,扫码之后,网页就会显示新的AppSecret。
需要注意的是,如果你之前生成过新的AppSecret,那么旧的AppSecret会随这个操作而失效。
开发者也需要记得妥善保管AppSecret,尽可能保证AppSecret不会丢失、泄漏。
【获取二维码】
有了小程序的AppID和AppSecret,我们就能利用服务器,获取小程序的二维码了。
在本例,我们通过模拟请求的方式,让大家了解这个接口的使用方法和原理。
我们要利用AppID和AppSecret,获取AccessToken
这一步,我们请求的地址是,你需要使用GET方法,传递你的AppID和AppSecret。
从结果中,我们可以得知:执行这个操作后,微信会给你返回一个JSON数据包。解析这个数据包,我们就可以获得AccessToken。
有了AccessToken,我们就可以获取不同的小程序二维码了。
微信提供了两个POST获取小程序二维码的接口。你可以根据你的业务需求,自由选择任一接口,获取相应的小程序二维码(参数中的ACCESS_TOKEN部分填入上一步我们获取到的AccessToken)。
获取最新的「菊花式」小程序码,可以使用这个接口:。
想要经典的「狗皮膏药式」QR码,可以使用这个接口:
POST请求体中,需要包含小程序的页面地址,以及传入小程序的参数。记住,这个页面必须要在小程序里的进行注册。
本例中,JSON请求体如下:
{path:pages/detail/hero/hero?hero=kestrel}
发送请求后,微信会直接返回一张制作好的「小程序码」。
现在,扫一扫这张小程序码,看看是不是到了指定页面了?
【注意事项】
除了我们文中举例的接口,微信还开放了另一个与二维码相关的接口,就是「扫普通二维码进入小程序」
开发者自己就可以按照一定规律,自行批量生成QR码。但它需要开发者有已经备案的域名,且个人主体小程序无法使用这个接口。
微信将通过「获取小程序二维码」接口获取的二维码的数量限定在十万个,并且似乎并没有「注销以前生成的二维码」的功能和机制。
所以,如果你有非常大量的小程序二维码生成需求,建议使用普通链接二维码的方式生成QR码。如果需要使用微信提供的二维码生成接口,也要注意不要超过限额。
希望大家在这里都能获得自己需要的东西。
用C++编写的小游戏源代码
五子棋的代码:
#includeiostream
#includestdio.h
#includestdlib.h
#include time.h
using namespace std;
const int N=15; /15*15的棋盘
const char ChessBoardflag = ' '; /棋盘标志
const char flag1='o'; /玩家1或电脑的棋子标志
const char flag2='X'; /玩家2的棋子标志
typedef struct Coordinate /坐标类
{
int x; /代表行
int y; /代表列
}Coordinate;
class GoBang /五子棋类
{
public:
GoBang() /初始化
{
InitChessBoard();
}
void Play() /下棋
{
Coordinate Pos1; / 玩家1或电脑
Coordinate Pos2; /玩家2
int n = 0;
while (1)
{
int mode = ChoiceMode();
while (1)
{
if (mode == 1) /电脑vs玩家
{
ComputerChess(Pos1,flag1); / 电脑下棋
if (GetVictory(Pos1, 0, flag1) == 1) /0表示电脑,真表示获胜
break;
PlayChess(Pos2, 2, flag2); /玩家2下棋
if (GetVictory(Pos2, 2, flag2)) /2表示玩家2
break;
}
else /玩家1vs玩家2
{
PlayChess(Pos1, 1, flag1); / 玩家1下棋
if (GetVictory(Pos1, 1, flag1)) /1表示玩家1
break;
PlayChess(Pos2, 2, flag2); /玩家2下棋
if (GetVictory(Pos2, 2, flag2)) /2表示玩家2
break;
}
}
cout "***再来一局***" endl;
cout "y or n :";
char c = 'y';
cin c;
if (c == 'n')
break;
}
}
protected:
int ChoiceMode() /选择模式
{
int i = 0;
system("cls"); /系统调用,清屏
InitChessBoard(); /重新初始化棋盘
cout "***0、退出 1、电脑vs玩家 2、玩家vs玩家***" endl;
while (1)
{
cout "请选择:";
cin i;
if (i == 0) /选择0退出
exit(1);
if (i == 1 || i == 2)
return i;
cout "输入不合法" endl;
}
}
void InitChessBoard() /初始化棋盘
{
for (int i = 0; i N + 1; ++i)
{
for (int j = 0; j N + 1; ++j)
{
_ChessBoard[i][j] = ChessBoardflag;
}
}
}
void PrintChessBoard() /打印棋盘,这个函数可以自己调整
{
system("cls"); /系统调用,清空屏幕
for (int i = 0; i N+1; ++i)
{
for (int j = 0; j N+1; ++j)
{
if (i == 0) /打印列数字
{
if (j!=0)
printf("%d ", j);
else
printf(" ");
}
else if (j == 0) /打印行数字
printf("%2d ", i);
else
{
if (i N+1)
{
printf("%c |",_ChessBoard[i][j]);
}
}
}
cout endl;
cout " ";
for (int m = 0; m N; m++)
{
printf("--|");
}
cout endl;
}
}
void PlayChess(Coordinate pos, int player, int flag) /玩家下棋
{
PrintChessBoard(); /打印棋盘
while (1)
{
printf("玩家%d输入坐标:", player);
cin pos.x pos.y;
if (JudgeValue(pos) == 1) /坐标合法
break;
cout "坐标不合法,重新输入" endl;
}
_ChessBoard[pos.x][pos.y] = flag;
}
void ComputerChess(Coordinate pos, char flag) /电脑下棋
{
PrintChessBoard(); /打印棋盘
int x = 0;
int y = 0;
while (1)
{
x = (rand() % N) + 1; /产生1~N的随机数
srand((unsigned int) time(NULL));
y = (rand() % N) + 1; /产生1~N的随机数
srand((unsigned int) time(NULL));
if (_ChessBoard[x][y] == ChessBoardflag) /如果这个位置是空的,也就是没有棋子
break;
}
pos.x = x;
pos.y = y;
_ChessBoard[pos.x][pos.y] = flag;
}
int JudgeValue(const Coordinate pos) /判断输入坐标是不是合法
{
if (pos.x 0 pos.x = Npos.y 0 pos.y = N)
{
if (_ChessBoard[pos.x][pos.y] == ChessBoardflag)
{
return 1; /合法
}
}
return 0; /非法
}
int JudgeVictory(Coordinate pos, char flag) /判断有没有人胜负(底层判断)
{
int begin = 0;
int end = 0;
int begin1 = 0;
int end1 = 0;
/判断行是否满足条件
(pos.y - 4) 0 ? begin = (pos.y - 4) : begin = 1;
(pos.y + 4) N ? end = N : end = (pos.y + 4);
for (int i = pos.x, j = begin; j + 4 = end; j++)
{
if (_ChessBoard[i][j] == flag_ChessBoard[i][j + 1] == flag
_ChessBoard[i][j + 2] == flag_ChessBoard[i][j + 3] == flag
_ChessBoard[i][j + 4] == flag)
return 1;
}
/判断列是否满足条件
(pos.x - 4) 0 ? begin = (pos.x - 4) : begin = 1;
(pos.x + 4) N ? end = N : end = (pos.x + 4);
for (int j = pos.y, i = begin; i + 4 = end; i++)
{
if (_ChessBoard[i][j] == flag_ChessBoard[i + 1][j] == flag
_ChessBoard[i + 2][j] == flag_ChessBoard[i + 3][j] == flag
_ChessBoard[i + 4][j] == flag)
return 1;
}
int len = 0;
/判断主对角线是否满足条件
pos.x pos.y ? len = pos.y - 1 : len = pos.x - 1;
if (len 4)
len = 4;
begin = pos.x - len; /横坐标的起始位置
begin1 = pos.y - len; /纵坐标的起始位置
pos.x pos.y ? len = (N - pos.x) : len = (N - pos.y);
if (len4)
len = 4;
end = pos.x + len; /横坐标的结束位置
end1 = pos.y + len; /纵坐标的结束位置
for (int i = begin, j = begin1; (i + 4 = end) (j + 4 = end1); ++i, ++j)
{
if (_ChessBoard[i][j] == flag_ChessBoard[i + 1][j + 1] == flag
_ChessBoard[i + 2][j + 2] == flag_ChessBoard[i + 3][j + 3] == flag
_ChessBoard[i + 4][j + 4] == flag)
return 1;
}
/判断副对角线是否满足条件
(pos.x - 1) (N - pos.y) ? len = (N - pos.y) : len = pos.x - 1;
if (len 4)
len = 4;
begin = pos.x - len; /横坐标的起始位置
begin1 = pos.y + len; /纵坐标的起始位置
(N - pos.x) (pos.y - 1) ? len = (pos.y - 1) : len = (N - pos.x);
if (len4)
len = 4;
end = pos.x + len; /横坐标的结束位置
end1 = pos.y - len; /纵坐标的结束位置
for (int i = begin, j = begin1; (i + 4 = end) (j - 4 = end1); ++i, --j)
{
if (_ChessBoard[i][j] == flag_ChessBoard[i + 1][j - 1] == flag
_ChessBoard[i + 2][j - 2] == flag_ChessBoard[i + 3][j - 3] == flag
_ChessBoard[i + 4][j - 4] == flag)
return 1;
}
for (int i = 1; i N + 1; ++i) /棋盘有没有下满
{
for (int j =1; j N + 1; ++j)
{
if (_ChessBoard[i][j] == ChessBoardflag)
return 0; /0表示棋盘没满
}
}
return -1; /和棋
}
bool GetVictory(Coordinate pos, int player, int flag) /对JudgeVictory的一层封装,得到具体那个玩家获胜
{
int n = JudgeVictory(pos, flag); /判断有没有人获胜
if (n != 0) /有人获胜,0表示没有人获胜
{
PrintChessBoard();
if (n == 1) /有玩家赢棋
{
if (player == 0) /0表示电脑获胜,1表示玩家1,2表示玩家2
printf("***电脑获胜***\n");
else
printf("***恭喜玩家%d获胜***\n", player);
}
else
printf("***双方和棋***\n");
return true; /已经有人获胜
}
return false; /没有人获胜
}
private:
char _ChessBoard[N+1][N+1];
};
扩展资料:
设计思路
1、进行问题分析与设计,计划实现的功能为,开局选择人机或双人对战,确定之后比赛开始。
2、比赛结束后初始化棋盘,询问是否继续比赛或退出,后续可加入复盘、悔棋等功能。
3、整个过程中,涉及到了棋子和棋盘两种对象,同时要加上人机对弈时的AI对象,即涉及到三个对象。
关于小程序开发代码大全和小程序代码库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。