C_and_CPP 板


LINE

有键於之前 LiloHuang大,分享过 但是由於颜色实在太亮了 所以我改一个比较暗的色调 载点: http://mail.cycu.edu.tw/s9427222/BBS_color.rar 将所要转的C++ code 档名打上 结果会存在 "color_"+档名+".txt" 里 将它复制出来 ANSI彩色贴上(KKMAN)於BBS就行了 这个工具不会自动修改宽度 由於还是初学者,能用到这样是我的最大能耐了 如果有什麽bug的话,请告之,我会尽量debug的 范例如下: 猜数字游戏 ------------------------------------------------------ /**************************** ** 猜数字游戏 1A1B ** ****************************/ /*玩家,输入由 0~9 所组成的,四个数字*/ /*与电脑产生的答案比对, 如果所猜的位置与答案的位置相同,A的值增加 如果所猜的位置与答案的位置不相同,B的值增加*/ /* 4A0B 表示猜对了 BINGO!! */ # include <stdio.h> # include <string.h> # include <stdlib.h> # include <iostream> # include <time.h> // programmer: eddie wu 吴伟杰 // Copyright: Wu,Wei-Chieh // Department of Information and Computer Engineering // Chung Yuan Christian University // 开发平台: Windos XP // 开发环境: Dev-C++ using namespace std; typedef char Str5[5]; FILE *FilePtr;//指定写入record.txt的指标 int guessTimes=0;//猜过的次数,为globle 全域变数 void CreateAnswer(Str5 & answer); //电脑自行产生"正确数字" void Guess(Str5 & guess); //玩家进行猜测 bool CheckGuessOk(Str5 guess); //检查:玩字输入的数字 void Result(Str5 answer,Str5 guess,bool & correct,bool & giveUp);//判断结果 int main(){ Str5 answer = ""; Str5 guess = ""; bool correct = false; //是否为"正确答案 " bool giveUp = false; //是否"放弃" FilePtr = fopen("record.txt","w+");//开启record.txt CreateAnswer(answer); do{ Guess(guess); //玩家输入数字 if( CheckGuessOk(guess) ){ //检查:输入的数字,是否为正确的输入 guessTimes++; //猜的次数,增加一次 Result(answer,guess,correct,giveUp); //判断结果 }//if(为正确的输入) }while( (!correct)&&(!giveUp) ); fclose(FilePtr);//关闭record.txt system("pause"); return 0; }//main() void CreateAnswer(Str5 & answer) { srand(time(NULL));//以时间函数为种子数 int ture[4];//正确数字 for(int n=0;n<4;n++)//以乱数产生正确数字 { ture[n]=rand()%(10);//产生第一数 if(n==1)//第二数重复数字就再取乱数 { while(ture[n]==ture[n-1]){ ture[n]=rand()%(10);//产生第二数 }//while }//if n==1 else if(n==2)//第三数重复数字就再取乱数 { while(ture[n]==ture[n-1] || ture[n]==ture[n-2]){ ture[n]=rand()%(10);//产生第三数 }//while }//if n==2 else if(n==3)//第四数重复数字就再取乱数 { while(ture[n]==ture[n-1] || ture[n]==ture[n-2] || ture[n]==ture[n-3]){ ture[n]=rand()%(10);//产生第四数 }//while }//if n==3 else ;//do nothing 用意: n==0 已经产生好 乱数,所以不做任何事 }//for 以乱数产生正确数字 for(int z=0;z<4;z++){ answer[z]=ture[z]+48; //char = int + 48; }//for 将产生好的乱数,放在answer的字串里 //---------------------把answer写入record.txt-------- fprintf(FilePtr,"电脑选定的号码为:%s\n",answer); }//CreateAnswer void Guess(Str5 & guess) { printf("Guess Number:"); scanf("%s",&guess); }//Guess bool CheckGuessOk(Str5 guess) { if(strcmp(guess,"0") == 0) ;//do nothing 用意:不然会进入第二个判断式(字串长度 < 4) else if( (strlen(guess) < 4) || (strlen(guess) > 4) ){ printf("please keyin four numbers!\n"); return false; }//else if 输入的字串(小於)或者(大於)4个数字 else if( (guess[0] == guess[1]) || (guess[0] == guess[2])|| (guess[0] == guess[3]) || (guess[1] == guess[2])|| (guess[1] == guess[3]) || (guess[2] == guess[3]) ){ printf("please keyin four different numbers!\n"); return false; }//else if 判断 玩家是否有输入相同的数字 ex: 1244 else{ for(int i=0;i<4;i++) //char = int + 48 if( ( guess[i] < 48) || (guess[i] > 57) ){ printf("please keyin 0~9\n",guess[i]); return false; }//if }//else ex: "rt56" is not correct input,please input 0~9 return true; }//CheckGuessOk void Result(Str5 answer,Str5 guess,bool & correct,bool & giveUp) { if(strcmp(guess,"0") == 0){ giveUp=true; printf("The answer is %s\n",answer); fprintf(FilePtr,"使用者投降。\n"); return; //跳出 Result function }//if 判断 玩家是否认输 int a=0,b=0;//各为几A几B的变数 for(int i=0;i<4;i++) //检查几A几B answer[i] for(int j=0;j<4;j++)// guess[j] if( answer[i] == guess[j] ){ //是否为相同的数字 if(i == j)//位置相同 a++; else //位置不同 b++; }//if(answer[i] == guess[j]) printf("%dA%dB\n",a,b); fprintf(FilePtr,"使用者第%d次猜测:%s -- %dA%dB\n",guessTimes,guess,a,b); if(a==4){ //如果猜对了 correct = true; printf("BINGO!!\n"); fprintf(FilePtr,"BINGO!!\n"); }//if (猜对了) }//Result --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.121.105.89
1F:推 redray:Push! Thank you very much! :) 11/07 09:46
※ 编辑: eddle 来自: 59.117.173.184 (11/07 19:16)
2F:推 freesamael:推,好用心 11/07 20:40
3F:推 eddle:谢谢 11/07 20:51
4F:推 LiloHuang::) 看来先前的版本颜色太亮是诟病 改天我那个再修正一下 11/08 10:19
5F:推 aecho:推 好棒啊~ 11/09 09:10







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP