论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

文曲星小游戏

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:46:38


/*这是文曲星里的小游戏,本人用C语言将其编出并添加破纪录功能。游戏规则:随机产生4个数字,由玩家输入4个不重复的数字(如:8 3 1 2)按回车后电脑给出提示,其形式为"?A?B".你所输入的四位数中,位置和数字都正确则为A,数字相同但位置不相同时为B,你只可以猜10次,若你所用的次数小于纪录保持者,则为破纪录。小作一篇,请多请教!
广东工业大学 廖龙彪QQ:316688817   http://russia.e63.cn (俄罗斯记事本!欢迎访问!!)*/
 
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
struct player /*创立结构体*/
{
    char name[20];
    int score ;
}
player ;
int a[5],b[5],n1,n2,n3,i,j ;/*n1计算位置数字相同的数字个数n2计算数字相同但位置不相同的数字个数n3计算所猜次数*/
char ch ;
main()
{
    goread();/*调用读取破纪录者函数*/
    loop1 :
    clrscr();/*清屏*/
    n1=0 ;
    n3=0;
    getnumber();/*调用随机产生4个数的函数*/
    while(n1<4&&n3<10)
    {
        ++n3 ;
        n1=0 ;
        n2=0 ;
        printf("The top player:%s by only %i times Guess 4 numbers:",player.name,player.score);
        for(i=1;i<=4;i++)
        scanf("%d",&b[i]);
        for(i=1;i<=4;i++)
        {
            if(a[i]==b[i])
            {
                n1++;
                continue ;
            }
            for(j=1;j<=4;j++)
            if(b[i]==a[j])n2++;
        }
printf("%dA%dB you have guessed %d times\n",n1,n2,n3);
    }
    if(n3>10)printf("you blew it,the answer is %d%d%d%d",a[1],a[2],a[3],a[4]);
    else
    {
        printf("Congratulastions!you finish it by %d times\n",n3);
        if(n3<player.score)
        breakrecord();/*调用新纪录者函数*/
    }
    getchar();
    printf("Do you wanna play it again?(y/n)\n");
    ch=getchar();
    if(ch=='y')goto loop1 ;
}
goread()/*读取破纪录者函数*/
{
    FILE*fp ;
    if((fp=fopen("player.txt","rb"))==NULL)
    {
        newset();/*调用初始化纪录者函数*/
        fp=fopen("player.txt","rb");
    }
    if(fread(&player,sizeof(struct player),1,fp)!=1)
    printf("file write error");
    fclose(fp);
}
newset()/*初始化纪录者函数*/
{
    struct player
    {
        char name[20];
        int score ;
    }
   
    player=
    {
        "along",10
    }
    ;
    FILE*fp ;
    if((fp=fopen("player.txt","wb"))==NULL)
    {
        printf("file open error\n");
        return ;
    }
    if(fwrite(&player,sizeof(struct player),1,fp)!=1)
    printf("file write error");
    fclose(fp);
   
}
getnumber()/*随机产生4个数的函数*/
{
    randomize();
    for(i=1;i<=4;i++)
    loop2 :
    {
        a[i]=rand()%10 ;
        for(j=i-1;j>=1;j--)
        if(a[i]==a[j])goto loop2 ;
       
    }
}
breakrecord()/*新纪录者函数*/
{
    printf("What is you name?");
    scanf("%s",&player.name);
    player.score=n3 ;
    {
        FILE*fp ;
        if((fp=fopen("player.txt","wb"))==NULL)
        {
            printf("file open error\n");
            return ;
        }
        if(fwrite(&player,sizeof(struct player),1,fp)!=1)
        printf("file write error");
        fclose(fp);
    }
}
 
上一篇:{应用}TC写的“泡泡堂”(2) 人气:5809
下一篇:{应用}仿LINUX下KTron的游戏 人气:6907
视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程