| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4052 人关注过本帖
标题:C语言做作弊器
取消只看楼主 加入收藏
王者之风42
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-13
收藏
 问题点数:0 回复次数:4 
C语言做作弊器
刚刚接触C语言的文件处理,做了个“虫虫大作战”的作弊器。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//函数声明
char menu();
void main();
int look_news();
double search(char n[],FILE *fp0);
char menu()
{
    system("cls");
    printf("*************************************************\n");
    printf("*              虫虫大作战作弊器V1.0             *\n");
    printf("*                     主菜单                    *\n");
    printf("*                 1.查看昆虫信息                *\n");
    printf("*                 2.修改昆虫信息                *\n");
    printf("*                 3.恢复昆虫信息                *\n");
    printf("*                 4.查看修改历史                *\n");
    printf("*                 5.退出系统                    *\n");
    printf("*               请选择菜单项(1~5)               *\n");
    printf("*************************************************\n");
    return getch();

}
void main()
{
    char c,t;
    while(1)
    {
        c=menu();
        switch(c)
        {
            case '1':
            look_news();
            break;
            case '2':
            modify_news();
            break;
            case '3':
            break;
            case '4':
            break;
            case '5':
            system("cls");
            printf("\n\t你想退出作弊器吗 ?(y/n)");
            t=getch();
            if(t=='y'||t=='Y')exit(0);
            break;

        }
        printf("\n\t请按任意键返回主菜单……");
        getch();
    }
}
int look_news()
{
    int n,number;
    char name[20];
    char dz1[100]="buginfos\\";
    char dz2[100]="bugs\\";
    char filename[50];
    FILE *fosfp,*namefp,*sxfp;
    printf("请输入要查看的昆虫序号:");
    scanf("%d",&n);
    if((namefp=fopen("虫虫序号.txt","r"))==0)
    printf("打开虫虫序号文本错误");
    while(!feof(namefp))
    {

        fscanf(namefp,"%d %s %s\n",&number,name,filename);
        if(number==n)
        {
            break;
        }

    }
    if(number!=n)
    {
        printf("找不到此序号的昆虫!");
        return 0;
    }
    strcat(dz1,filename);
    strcat(dz2,filename);
    if((fosfp=fopen(dz1,"r"))==0||(sxfp=fopen(dz2,"r"))==0)
    {
        printf("打开文件出错");
        return 0;
    }
    printf("\n名字:%s\n",name);
    printf("序号:%d\n",number);
    printf("价格:%.0f点花蜜\n",search("Price",fosfp));
    printf("孵化时间:%.0f秒\n",search("ReloadTime",fosfp));
    printf("速度:%.1f\n",search("Speed",sxfp));
    printf("生命值:%.0f\n",search("InitialHealth",sxfp));
    printf("近战攻击力:%.1f\n",search("MeleeDamage",sxfp));
    printf("近战攻击距离:%.1f\n",search("MeleeDistance",sxfp));
    printf("攻击速度:%.1f\n",search("AttackSpeed",sxfp));
    return 0;
}
int modify_news()
{
    int n,number;
    char sx[10];
    char name[20];
    char dz1[100]="buginfos\\";
    char dz2[100]="bugs\\";
    char filename[50];
    FILE *fosfp,*namefp,*sxfp;
    printf("请输入要修改的昆虫序号:");
    scanf("%d",&n);
    if((namefp=fopen("虫虫序号.txt","r"))==0)
    printf("打开虫虫序号文本错误");
    while(!feof(namefp))
    {

        fscanf(namefp,"%d %s %s\n",&number,name,filename);
        if(number==n)
        {
            break;
        }

    }
    if(number!=n)
    {
        printf("找不到此序号的昆虫!");
        return 0;
    }
    strcat(dz1,filename);
    strcat(dz2,filename);
    if((fosfp=fopen(dz1,"r"))==0||(sxfp=fopen(dz2,"r"))==0)
    {
        printf("打开文件出错");
        return 0;
    }
    printf("\n名字:%s\n",name);
    printf("序号:%d\n",number);
    printf("价格:");
    scanf("%s",&sx);
    modify("Price",sx,dz1);
    printf("孵化时间:");
    scanf("%s",&sx);
    modify("ReloadTime",sx,dz1);
    printf("速度:");
    scanf("%s",&sx);
    modify("Speed",sx,dz2);
    printf("生命值:");
    scanf("%s",&sx);
    modify("InitialHealth",sx,dz2);
    printf("近战攻击力:");
    scanf("%s",&sx);
    modify("MeleeDamage",sx,dz2);
    printf("近战攻击距离:");
    scanf("%s",&sx);
    modify("MeleeDistance",sx,dz2);
    printf("攻击速度:");
    scanf("%s",&sx);
    modify("AttackSpeed",sx,dz2);
    return 0;
}
double search(char n[],FILE *fp0)
{
    char mc[20],sp[10],str;
    char number[30];

    while(!feof(fp0))
    {
        fscanf(fp0,"%s %s %s\n",sp,mc,number);
        if(strcmp(mc,n)==0)
        {
            return atof(number);
        }

    }
}
int modify(char n[],char x[],char dz[])
{
    char content[100][100];
    int m,i,fal,len,s;
    char p;
    char mc[20],sp[10],str;
    char number[30];
    FILE *fp5;
    len=strlen(x);
    for(i=0;i<len;i++)
    {

        if(isdigit(x[i])==0)
            fal=0;

    }
    if(fal==0)
    return 0;
    s=atoi(x);
    m=0;
    if((fp5=fopen(dz,"r"))==NULL)
    printf("文件打开失败");

    while(fgets(content[m],50,fp5)!=NULL)
    {
        m++;
    }
    rewind(fp5);
    i=0;
    while(!feof(fp5))
    {
        fscanf(fp5,"%s %s %s\n",sp,mc,number);
        if(strcmp(mc,n)==0)
        {
            sprintf(content[i],"%s %s %d\n","sp",n,s);
        }
        i++;

    }
    fclose(fp5);
    if((fp5=fopen(dz,"w"))==NULL)
    printf("文件无法打开");
    for(i=0;i<m;i++)
    {
        fputs(content[i],fp5);
    }
    fclose(fp5);

    return 0;
}
大家帮忙看看还有什么可以改进的。
搜索更多相关主题的帖子: system include 作弊器 double search 
2011-08-14 11:34
王者之风42
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-13
收藏
得分:0 
谢谢捧场!谢谢捧场!
2011-08-15 13:50
王者之风42
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-13
收藏
得分:0 
一个单机游戏,有点幼稚,因为我还是个小学生~~~~~
2011-08-16 11:18
王者之风42
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-13
收藏
得分:0 
还行啦,不过请问一下大家,编C语言的程序,模块之间的分解与组合有没有特定的要求,或者说模块之间的分解与组合有好几种方式,怎样比较好?
2011-08-16 14:05
王者之风42
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-13
收藏
得分:0 
回复 18楼 laoyang103
是啊。
2011-08-17 09:51
快速回复:C语言做作弊器
数据加载中...
 
   



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

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