1. 建议收藏,22个Python迷你项目(附源码)
以下是22个Python迷你项目的简要介绍及建议收藏的理由,每个项目都附带了源码的获取途径:
骰子模拟器:
石头剪刀布游戏:
随机密码生成器:
句子生成器:
猜数字游戏:
故事生成器:
邮件地址解析:
自动发送邮件:
缩写词生成:
文字冒险游戏:
Hangman游戏:
闹钟:
有声读物:
天气应用:
人脸检测:
提醒应用:
维基网络摘要:
谷歌搜索结果获取:
货币转换器:
键盘记录器:
文章朗读器:
短网址生成器:
建议收藏理由:这些项目涵盖了Python编程的多个方面,从基础到进阶,从数据处理到机器学习,从网络爬虫到桌面应用,每个项目都能让你在实践中学习和提升Python编程技巧。通过调整和扩展这些项目,你还可以进一步拓展自己的编程能力和视野。
2. 求一C++小游戏源代码简单点的!!谢谢
#include #include #include #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b int i,key; int score=0; int gamespeed=32000; struct Food /*食物的结构体*/ { int x; /*食物的横坐标*/ int y; /*食物的纵坐标*/ int yes; /*食物是否出现的变量*/ }food; struct Snack /*蛇的结构体*/ { int x; int y; int node; /*蛇的节数*/ int direction; /*蛇的方向*/ int life; /*蛇的生命,0活着,1死亡*/ }snake; void Init(void); /*图形驱动*/ void Close(void); /*关闭游戏函数*/ void DrawK(void); /*画图函数*/ void GameOver(void);/*输出失败函数*/ void GamePlay(); /*游戏控制函数 主要程序*/ void PrScore(void); /*分数输出函数*/ DELAY(char ch)/*调节游戏速度*/ { if(ch=='3') { delay(gamespeed); /*delay是延迟函数*/ delay(gamespeed); } else if(ch=='2') { delay(gamespeed); } } Menu()/*游戏开始菜单*/ { char ch; printf("Please choose the gamespeed: "); printf("1-Fast 2-Normal 3-Slow "); printf(" Please Press The numbers.. "); do {ch=getch();} while(ch!='1'&&ch!='2'&&ch!='3'); clrscr(); return(ch); } /*主函数*/ void main(void) { int ch; ch=Menu(); Init(); DrawK(); GamePlay(ch); Close(); } void Init(void) { int gd=DETECT,gm; initgraph(&gd,&gm,"c:\tc"); cleardevice(); } void DrawK(void) { setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH); for(i=50;i
3. 分享几个开源的Python游戏代码
以下是一些开源的Python游戏代码分享:
I wanna,源代码链接:pan..com/s/1DlULys...
提取码:kh2h
Covid-Hero,源代码github地址:github.com/zixinzeng-je...
The Game of Purifier,源代码github地址:github.com/epcm/PURIFIE...
进击的豌豆,源代码链接:pan..com/s/1YcojAC...
提取码:tsfm
以上游戏均采用Pygame Zero库(简称Pgzero)开发。Pgzero是Pygame的精简版本,能够实现Pygame库的主要功能,同时屏蔽了复杂的细节,对新手十分友好。
若想快速了解Pgzero,可以参考下文:
若要全面系统学习Pgzero,可以参考《趣学Python游戏编程》一书。该书通过十个经典游戏案例,深入浅出地介绍了游戏编程的基本原理,以及Pgzero的具体使用方法。相信学完这本书后你也能开发出上面这样精彩的Python游戏。
4. 用java web小游戏源代码。期末结课老师让做,急用,谢了
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class MainClass extends JFrame {
ControlSnake control;
Toolkit kit;
Dimension dimen;
public static void main(String[] args) {
new MainClass("my snake");
}
public MainClass(String s) {
super(s);
control = new ControlSnake();
control.setFocusable(true);
kit = Toolkit.getDefaultToolkit();
dimen = kit.getScreenSize();
add(control);
setLayout(new BorderLayout());
setLocation(dimen.width / 3, dimen.height / 3);// dimen.width/3,dimen.height/3
setSize(FWIDTH, FHEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
}
public static final int FWIDTH = 315;
public static final int FHEIGHT = 380;
}
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.Timer;
@SuppressWarnings("serial")
public class ControlSnake extends JPanel implements ActionListener {
Random rand;
ArrayList<Point> list, listBody;
String str, str1;
static boolean key;
int x, y, dx, dy, fx, fy, flag;
int snakeBody;
int speed;
public ControlSnake() {
snakeBody = 1;
str = "上下左右方向键控制 P键暂停...";
str1 = "现在的长度为:" + snakeBody;
key = true;
flag = 1;
speed = 700;
rand = new Random();
list = new ArrayList<Point>();
listBody = new ArrayList<Point>();
x = 5;
y = 5;
list.add(new Point(x, y));
listBody.add(list.get(0));
dx = 10;
dy = 0;
fx = rand.nextInt(30) * 10 + 5;// 2
fy = rand.nextInt(30) * 10 + 5;// 2
setBackground(Color.BLACK);
setSize(new Dimension(318, 380));
final Timer time = new Timer(speed, this);
time.start();
addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == 37) {
dx = -10;
dy = 0;
} else if (e.getKeyCode() == 38) {
dx = 0;
dy = -10;
} else if (e.getKeyCode() == 39) {
dx = 10;
dy = 0;
} else if (e.getKeyCode() == 40) {
dx = 0;
dy = 10;
} else if (e.getKeyCode() == 80) {
if (flag % 2 == 1) {
time.stop();
}
if (flag % 2 == 0) {
time.start();
}
flag++;
}
}
});
}
public void paint(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(0, 0, 400, 400);
g.setColor(Color.DARK_GRAY);
g.drawLine(3, 3, 305, 3);
g.drawLine(3, 3, 3, 305);
g.drawLine(305, 3, 305, 305);
g.drawLine(3, 305, 305, 305);
g.setColor(Color.PINK);
for (int i = 0; i < listBody.size(); i++) {
g.fillRect(listBody.get(i).x, listBody.get(i).y, 9, 9);
}
g.fillRect(x, y, 9, 9);
g.setColor(Color.ORANGE);
g.fillRect(fx, fy, 9, 9);
g.setColor(Color.DARK_GRAY);
str1 = "现在的长度为:" + snakeBody;
g.drawString(str, 10, 320);
g.drawString(str1, 10, 335);
}
public void actionPerformed(ActionEvent e) {
x += dx;
y += dy;
if (makeOut() == false) {
JOptionPane.showMessageDialog(null, "重新开始......");
speed = 700;
snakeBody = 1;
x = 5;
y = 5;
list.clear();
list.add(new Point(x, y));
listBody.clear();
listBody.add(list.get(0));
dx = 10;
dy = 0;
}
addPoint(x, y);
if (x == fx && y == fy) {
speed = (int) (speed * 0.8);//速度增加参数
if (speed < 200) {
speed = 100;
}
fx = rand.nextInt(30) * 10 + 5;// 2
fy = rand.nextInt(30) * 10 + 5;// 2
snakeBody++;// 2
} // 2
repaint();
}
public void addPoint(int xx, int yy) {
// 动态的记录最新发生的50步以内的移动过的坐标
// 并画出最新的snakeBody
if (list.size() < 100) {//蛇身长度最长为100
list.add(new Point(xx, yy));
} else {
list.remove(0);
list.add(new Point(xx, yy));
}
if (snakeBody == 1) {
listBody.remove(0);
listBody.add(0, list.get(list.size() - 1));
} else {
listBody.clear();
if (list.size() < snakeBody) {
for (int i = list.size() - 1; i > 0; i--) {
listBody.add(list.get(i));
}
} else {
for (int i = list.size() - 1; listBody.size() < snakeBody; i--) {
listBody.add(list.get(i));
}
}
}
}
public boolean makeOut() {
if ((x < 3 || y < 3) || (x > 305 || y > 305)) {
return false;
}
for (int i = 0; i < listBody.size() - 1; i++) {
for (int j = i + 1; j < listBody.size(); j++) {
if (listBody.get(i).equals(listBody.get(j))) {
return false;
}
}
}
return true;
}
}
/*贪吃蛇代码*/
5. 求C++小游戏源代码啊~
一个恋爱小测试贼灵验哦
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,a,b,c,d,e,f,g,h,i,j,k,l,sum;
cout<<"欢迎来到恋爱指数测试器*>-<*"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"独家的哦*^0^*"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"以下异性均为合适年龄"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"下列问题如果是则输入2,如果不是则输入1,一点也没感觉输入0"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"加油,面对你自己!*-o-*"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"question one:"<<"你是否面对异性时有莫名心跳?"<<endl;
cin>>n;
cout<<endl;
cout<<"question two:"<<"你是否有看到异性被撩时很愤怒?"<<endl;
cin>>m;
cout<<endl;
cout<<"question three:"<<"你是否惧怕见到一位异性的家长"<<endl;
cin>>a;
cout<<endl;
cout<<"question four:"<<"你是否经常刷一位异性的QQ或其他软件"<<endl;
cin>>b;
cout<<endl;
cout<<"question five:"<<"想不想真心和Ta用情头?"<<endl;
cin>>c;
cout<<endl;
cout<<"question six:"<<"和Ta邂逅过吗?"<<endl;
cin>>d;
cout<<endl;
cout<<"question seven:"<<"吃过同一个饭碗里的东西吗?"<<endl;
cin>>e;
cout<<endl;
cout<<"question eight:"<<"有过一个人在梦里与Ta相遇吗?"<<endl;
cin>>f;
cout<<endl;
cout<<"question nine:"<<"有为了等Ta一个人站在风雨中吗?"<<endl;
cin>>g;
cout<<endl;
cout<<"question ten:"<<"想kissTa不,想摸Ta的头发吗?"<<endl;
cin>>h;
cout<<endl;
sum=n+m+a+b+c+d+e+f+g+h;
cout<<"正在测评中,请稍后..."<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
if(sum>=16&&sum<=20)
cout<<"你的恋爱指数为:A。你是一个深深爱着Ta的人,你往往会走到最后^-^。"<<endl;
if(sum<=15&&sum>=12)
cout<<"你的恋爱指数为:B。你是一个矛盾却又不失爱意的人,你的爱往往一波三折!-!。"<<endl;
if(sum<=11&&sum>=7)
cout<<"你的恋爱指数为:C。你是一个有点点情丝的人,你想表,却又惧怕现实,你仍须努力o-o。"<<endl;
if(sum<=6&&sum>=0)
cout<<"你的恋爱指数为:D。你是一个无暇无垢,不食人间烟火的人,想一路踏歌,证道路上需佳人陪伴+-+。"<<endl;
if(sum>20||sum<0)
cout<<"你出格了哟ooo.ooo"<<endl;
cout<<"人生在世,恍如昨世,孤独的身影终难走远,你的那个Ta就在不远方,就如漫天繁星,总有一颗属于你!"<<endl;\
cout<<"快抓紧你身边的那个Ta^-^oooooo"<<endl;
cout<<endl;
cout<<"作品创造者:yang sky one"<<endl;
cout<<"恋爱指数测试器已关闭,需重启………………"<<endl;
return 0;
}
6. 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++运行通过,每输入一个数字要加入一个空格。