搜索
查看: 3250|回复: 8
打印 上一主题 下一主题

C语言一天一练--28.august

[复制链接]
跳转到指定楼层
楼主
发表于 2012-8-28 21:28:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
30啊哈币
编程:
请写一个石头,剪刀,布小游戏。
-------------------------------------------------------------------
1,--玩家只能输入“石头,剪刀,布”输入其它“错误”
2,--电脑随机输出“石头,剪刀,布”
3,--逻辑判断:玩家:石头
                         电脑:石头
                         平局^_^!
                          
                          玩家:剪刀
                          电脑:布
                          电脑输了

                          玩家:布
                          电脑:剪刀
                          玩家输了
                          ................


沙发
发表于 2012-8-31 13:11:28 | 只看该作者
很简单哒  俺高三 木有时间写 你写下撒
~~~
板凳
发表于 2012-8-31 23:08:46 | 只看该作者
来吧。。。。写了哥一个半小时。。。。终极版。。。

[mw_shl_code=c,true]#include <iostream>
#include <ctime>
#include <stdio.h>
#include <cstring>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <dos.h>
using namespace std;
int jf;


void readd()
{

    FILE *fp1;
    fp1=fopen("data.dll","r");
    fscanf(fp1,"%d",&jf);
    fclose(fp1);

}
void writee()
{
    FILE *fp2;
    fp2=fopen("data.dll","w");
    fprintf(fp2,"%d",jf);
    fclose(fp2);
}
void start()
{
    printf("*********************************************************************\n");
    printf("*                                                                   *\n");
    printf("*                         石头  剪刀 布                             *\n");
    printf("*                                                                   *\n");
    printf("*                                       ver:1.0  作者:回遗未来     *\n");
    printf("*                                                                   *\n");
    printf("*                                欢迎访问www.aha-c.com论坛交流      *\n");
    printf("*********************************************************************\n");
    printf("\n\n\n\n是否需要打开官方论坛 www.aha-c.com?\n 1.Yes    2.No\n");
    int a;
    cin>>a;
    if(a==1)
        system("start http://www.aha-c.com/?fromuid=874");
    system("cls");
    cout<<"正在读取您的积分,请稍后.......\n";
    readd();
    cout<<"积分读取完毕,您的积分为"<<jf<<endl;

}
int main()
{
    start();
    string sr,shitou="石头",jiandao="剪刀",bu="布";
    int a,b;
    readd();
    srand((unsigned)time( NULL ));
    while(1)
    {
        while(1)
        {
            printf("\n\n请输入石头剪刀布参与游戏:\n",jf);
            cin>>sr;
            if((sr!=shitou) && (sr!=jiandao)&&(sr!=bu) )
            {
                system("CLS");
                cout<<"输入错误,请重新输入\n";
            }
            else
                break;
        }
        if(sr==shitou)
            b=1;
        if(sr==jiandao)
            b=2;
        if(sr==bu)
            b=3;
        a=rand()%1000;   //0-333石头 333-666剪刀 666-999布
        if(a<=333)
        {
            a=1;
            cout<<"玩家:"<<sr<<"     电脑:"<<shitou<<endl;
            if(b==1)
            {
                printf("啊哈,平局再来一盘吧~~\n");
                printf("\\n\n\n\n\n\n                          您的积分为%d\n",jf);
            }
            if(b==3)
            {
                cout<<"恭喜恭喜,胜利!\n积分+1";
                jf++;
                printf("\n\n\n\n\n\n\n                            您的积分为%d\n",jf);
                writee();
            }
            if(b==2)
            {
                cout<<"不要灰心,再来一盘!\n积分-1";
                jf--;
                printf("\n\n\n\n\n\n\n                            您的积分为%d\n",jf);
                writee();
            }
        }
        if(a<=666 && a>333)
        {
            a=2;
            cout<<"玩家:"<<sr<<"     电脑:"<<jiandao<<endl;
            if(b==2)
            {
                printf("啊哈,平局再来一盘吧~~\n");
                printf("\n\n\n\n\n\n\n                            您的积分为%d\n",jf);
            }
            if(b==1)
            {
                cout<<"恭喜恭喜,胜利!\n积分+1";
                jf++;
                printf("\n\n\n\n\n\n\n                            您的积分为%d\n",jf);
                writee();
            }
            if(b==3)
            {
                cout<<"不要灰心,再来一盘!\n积分-1";
                jf--;
                printf("\n\n\n\n\n\n\n                            您的积分为%d\n",jf);
                writee();
            }
        }
        if(a>666)
        {
            a=3;
            cout<<"玩家:"<<sr<<"     电脑:"<<bu<<endl;
            if(b==3)
            {
                printf("啊哈,平局再来一盘吧~~\n");
                printf("\n\n\n\n\n\n\n                            您的积分为%d\n",jf);
            }
            if(b==2)
            {
                cout<<"恭喜恭喜,胜利!\n积分+1";
                jf++;
                printf("\n\n\n\n\n\n\n                            您的积分为%d\n",jf);
                writee();
            }
            if(b==1)
            {
                cout<<"不要灰心,再来一盘!\n积分-1";
                jf--;
                printf("\n\n\n\n\n\n\n                           您的积分为%d\n",jf);
                writee();
            }
        }
    }
    return 0;
}
[/mw_shl_code]


哈哈 头晕吧。。。
地板
发表于 2012-8-31 23:56:23 | 只看该作者
不错不错
5#
发表于 2012-9-3 18:33:58 | 只看该作者
回遗未来 发表于 2012-8-31 23:08
来吧。。。。写了哥一个半小时。。。。终极版。。。

[mw_shl_code=c,true]#include

目测是C++啊,这不是C语言的练习吗?AHAc也能编译C++???
6#
发表于 2012-9-3 20:52:01 | 只看该作者
heaventone 发表于 2012-9-3 18:33
目测是C++啊,这不是C语言的练习吗?AHAc也能编译C++???

不好意思  我习惯使用C++  我有时间 帮你换成C的  不过只是把一些输入输出换一下。。。
7#
发表于 2012-9-28 15:05:50 | 只看该作者
本帖最后由 zynpc 于 2012-9-28 15:46 编辑

[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int c[3]={1,2,3},c1,c2,c3,i,d,t,score,ai;
char s[12]={"石""头""剪""刀""布"};
srand(time(0));
score=0;

i=rand()%2;
c1=c;
while(1)

{
c3=4;
while(c3==4)
{
printf("请输入对应数字:\n\t1:石头\n\t2: 剪刀\n\t3:布\n");
printf("————现在得分%d————\n",score);
scanf("%d",&c2);
if(c2==1) c3=1;
else if(c2==2) c3=2;
else if(c2==3) c3=3;
else {
c3=4;printf("错误\n");sleep(1000);system("cls");
}
}
switch(c1)
{
case 1: printf("\t电脑:%c%c%c%c\n",s[0],s[1],s[2],s[3]);break;
case 2: printf("\t电脑:%c%c%c%c\n",s[4],s[5],s[6],s[7]);break;
case 3: printf("\t电脑:%c%c\n",s[8],s[9]);break;
}
switch(c3)
{case 1: printf("\t玩家:%c%c%c%c\n",s[0],s[1],s[2],s[3]);break;
case 2: printf("\t玩家:%c%c%c%c\n",s[4],s[5],s[6],s[7]);break;
case 3: printf("\t玩家:%c%c\n",s[8],s[9]);break;}

switch(c1-c3)
{case -2:d=2;break;
case -1:d=1;break;
case 0:d=0;break;
case 1:d=2;break;
case 2:d=1;break;
}
switch (d)
{case 0:t=1;printf("\t平局^_^!\n");break;
case 1:t=3;printf("\t电脑输了\n");break;
case 2:t=0;printf("\t玩家输了\n");break;
}
sleep(3000);
system("cls");
score=score+t;
switch(c3)
{case 1:ai=rand()%3;if(ai*10>1) i=2;
else i=rand()%2;break;
case 2:ai=rand()%10;if(ai*10>1) i=0;
else i=rand()%2;break;
case 3:ai=rand()%10;if(ai*10>70) i=1;
else i=rand()%2;break;
}
c1=c;
}



}

[/mw_shl_code]输入中文不会判断求高手,我现在只能到这里了
8#
发表于 2012-9-28 17:21:45 | 只看该作者
本帖最后由 zynpc 于 2012-9-28 17:23 编辑

[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>


int main()
{
int c[3]={1,2,3},c1,c3,i,d,t,score,ai;
char c2[8],s1[8]="石头",s2[8]="剪刀",s3[8]="布";
srand(time(0));
score=0;


i=rand()%2;
c1=c【i】
;
while(1)


{
c3=4;

while(c3==4)
{printf("\t _______________________________\n");
printf("\t|\t石头剪刀布 v1.1\t\t|\n");
printf("\t|\t作者 学C小菜鸟: zynpc  |\n");
printf("\t|_______________________________|\n");
printf("\n");

printf("——————————————游戏规则————————————————\n");
printf("\t输入石头,剪刀或者布开始游戏\n\t胜利加3分,平局加1分,失败不得分\n");

printf("\n");
printf("\n");
printf("————现在得分%d————\n",score);
gets(c2);
if(strcmp(c2,s1)==0) c3=1;
        else {if(strcmp(c2,s2)==0) c3=2;
                else {if(strcmp(c2,s3)==0) c3=3;
                        else  {
                                c3=4;printf("错误\n");sleep(1000);system("cls");
                                        }}}
}
switch(c1)
{
case 1: printf("\t\t电脑:%s\n",s1);break;
case 2: printf("\t\t电脑:%s\n",s2);break;
case 3: printf("\t\t电脑:%s\n",s3);break;
}
printf("\n");
switch(c3)
{case 1: printf("\t\t玩家:%s\n",s1);break;
case 2: printf("\t\t玩家:%s\n",s2);break;
case 3: printf("\t\t玩家:%s\n",s3);break;}
printf("\n");

switch(c1-c3)
{case -2:d=2;break;
case -1:d=1;break;
case 0:d=0;break;
case 1:d=2;break;
case 2:d=1;break;
}      
switch (d)
{case 0:t=1;printf("\t\t平局^_^!\n");break;
case 1:t=3;printf("\t\t电脑输了\n");break;
case 2:t=0;printf("\t\t玩家输了\n");break;
}
sleep(3000);
system("cls");
score=score+t;
switch(c3)
{case 1:ai=rand()%3;if(ai*10>1) i=2;
                                                else i=rand()%2;break;
case 2:ai=rand()%10;if(ai*10>1) i=0;
                                                else i=rand()%2;break;
case 3:ai=rand()%10;if(ai*10>70) i=1;
                                                else i=rand()%2;break;
}
c1=c
【i】
;
}
         
        
   
}

[/mw_shl_code]

原来 也可以啊
9#
发表于 2013-2-12 15:12:07 | 只看该作者
其实不用那么长
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int main()
{
        int i,e;
    printf("这是一个石头剪子布游戏\n");
        printf("1.石头 2.剪子 3.布 \n请输入对应数字\n");
    scanf("%d",&i);
                srand((int)time(0));  
                e=rand()%3+1;
    if(i==e)
                printf("平局!\n");
    if(i==1 && e==2)
                printf("玩家胜利!\n");
    if(i==2 && e==1)
                printf("电脑胜利!\n");
        if(i==2 && e==3)
                printf("玩家胜利!\n");
    if(i==3 && e==2)
                printf("电脑胜利!\n");
    if(i==3 && e==1)
                printf("玩家胜利!\n");
    if(i==3 && e==1)
                printf("电脑胜利!\n");
        sleep(6000000);
        return 0;
}
[/mw_shl_code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表