标题:[原创]游戏及学习控制管理器
取消只看楼主
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
结帖率:100%
 问题点数:0 回复次数:5 
[原创]游戏及学习控制管理器

/*控制主程序control.exe*/
#include<stdio.h>
#include<string.h>
#include<dos.h>
#define MAX 100
typedef struct
{
char name[30];
char path[100];
char exename[30];
char taskname[30];
} list;
list gamelist[MAX];
char password[20];
int recordnum;
int points;

char p[70];
int initcontrol()
{
FILE *input,*output;
char temp[80];
int i;
input=fopen("Control.ini","r");
output=fopen("Control.tmp","w");
while(!feof(input))
{
fgets(temp,80,input);
if(temp[0]!=';') fputs(temp,output);
}
fclose(input);
fclose(output);
input=fopen("Control.tmp","r");
fscanf(input,"%d",&recordnum);
for(i=0;i<recordnum;i++) fscanf(input,"%s%s%s%s",gamelist[i].name,gamelist[i].path,gamelist[i].exename,gamelist[i].taskname);
fclose(input);
input=fopen("Control","r");
fscanf(input,"%d%s",&points,password);
fclose(input);
}
int startgame(int time)
{
int n;
int i;
printf("\n请选择游戏:1-%d\n",recordnum);
for(i=0;i<recordnum;i++) printf("%d.%s\n",i+1,gamelist[i].name);
choice:
scanf("%d",&n);
if(n<=recordnum && n>0)
{
sprintf(p," %s %d",gamelist[n-1].taskname,time);
spawnl(1,"D:\\control\\break.exe",p,NULL);
chdir(gamelist[n-1].path);
system(gamelist[n-1].exename);
}
else
{
printf("序号错误!请重新选择\n");
goto choice;
}
}
int main(void)
{
int i=0;
int n;
int time;
FILE *output;
initcontrol();
printf("SK-CHINA 2007-2008\n");
printf("游戏总控制程序\n");
printf("Game Control BY S.K\n");
printf("请选择\n1.使用点数\n2.输入家长控制密码\n");
scanf("%d",&n);
if(n==1)
{
printf("现有点数:%d\n你游戏的每分钟将耗点数1\n",points);
printf("请设定游戏时间 [单位:分钟]\n");
re:
scanf("%d",&time);
if(time>points)
{
printf("点数不够,请重新输入\n");
goto re;
}
points=points-time;
output=fopen("Control","w");
fprintf(output,"%d\n%s",points,password);
startgame(time);
}
if(n==2)
{
printf("\n请输入家长控制密码:");
while(p[i]=getch())
{
if(p[i]==13) break;
if(p[i]!='\b')
{
printf("*");
i++;
}
else
{
printf("\b \b");
i--;
}
}
p[i]='\0';
if(strcmp(password,p)==0)
{
printf("\n密码通过!");
printf("请设定游戏时间 [单位:分钟]\n");
scanf("%d",&time);
startgame(time);
}
else
{
printf("\n密码错误!按任意键退出");
getch();
exit(1);
}
}
}
/*控制关闭程序break.exe*/
DEV-CPP 32位C工程
#include<stdio.h>
#include<dos.h>
#include<string.h>
int main(int argc,char **argv)
{
int t;
int i;
char s[100];
if(argc>2)
{
sscanf(argv[2],"%d",&t);
sleep(t*60000);
sprintf(s,"taskkill /im %s /f",argv[1]);
system(s);
}
return 0;
}
/*学习控制器 study.exe 比较简陋的,有待更新*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<dir.h>
int main(void)
{
time_t time1,time2;
int n;
int x;
int points;
char path[100];
char password[20];
FILE *input,*output;
printf("你可以通过学习英语获取游戏点数,每一分钟的学习将获得一点游戏点");
printf("\n是否学习?[1.学习 2.终止]");
scanf("%d",&n);
if(n==1)
{
getcwd(path,100);
chdir("D:\\ruanjian\\New Oriental Soft\\New Oriental Words 4\\"); /*这是一个学习软件的路径*/
time1=time(NULL);
system("Recite4.exe"); /*学习软件的程序名*/
time2=time(NULL);
x=(int)(difftime(time2,time1)/60);
chdir(path);
input=fopen("control","r");
fscanf(input,"%d%s",&points,password);
points=points+x;
fclose(input);
output=fopen("control","w");
fprintf(output,"%d\n%s",points,password);
fclose(output);
}
return 0;
}
/* 控制配置 control.ini 可编辑*/
;==================================================================
;==================================================================
;记录方式:注释→ “;”后
;游戏控制总记录
;==================================================================
;记录总数
4
;==================================================================
;详细记录
;记录方式:
;游戏名
;游戏路径
;应用程序名
;进程名
三国群英传II
D:\SANGO2\
Sango2.exe
Sango2.exe
游戏王
D:\vba\
VisualBoyAdvance.exe
VisualBoyAdvance.exe
超级玛莉
D:\control\
mario.exe
ntvdm.exe
吃虫子
E:\Games\休闲类\吃虫子\
runturkeyrun.exe
ZapSpot.exe
;==================================================================
/*密码控制 点数控制 未加密 control*/
100
123456
编译后组成文件共有5个
分别为control.exe break.exe study.exe control.ini control
完整程序包下载:

ecGBw1Cj.rar (18.89 KB) [原创]游戏及学习控制管理器


本程序为了控制孩子学习与游戏的度,可以说是一个可以使用的雏形,如果需要应该对control加上加密算法,study也有一定的简化,应该类似control也设置study.ini

搜索更多相关主题的帖子: 管理器 学习控制 游戏 
2007-08-04 11:01
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
在DEV-CPP 4.9.9.2下编译,调试通过,break请编译break.dev

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-04 11:02
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
DEV-CPP4.9.9.0 应该可以编译通过
TC2.0也可以但.dev无法被编译,同时部分函数无法使用或异常

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-04 17:53
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
以下是引用jackys2006在2007-8-4 19:20:58的发言:
DEV-CPP 4.9.9.2
也是一个编辑C语言的软件吧?
较之TC有什么特点?

强大的32位编译器,跨平台(unix,linux,windows....),直接支持大内存.


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-07 07:36
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
以下是引用zrgong在2007-8-12 0:41:24的发言:

搂主所说的无法使用是不是指system 和 spawnl函数吗?

我xp系统,TC2.0上 system调用系统内部命令如:dir等(system("dir"))能顺利执行,但调用调用reg add ****就会报内存错,出现“program too big to fit in memory”,感觉上都是两者差不多啊,这个限制是因为编译器原因吗?



system没有问题,但spawnl有问题,因为TC不支持spawnl一个同时运行参数


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-12 11:46
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
以下是引用sky_wxw在2007-8-7 9:35:15的发言:
我是指DEV-CPP
另外你的这个程序在TC2.0编译有26个错误,一个警告……

不能用TC,本来就建立在32位C工程之上,所以TC只能编译通过部分.c文件


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-12 11:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-160281-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.718894 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved