作者eddle (我要当坏人)
看板C_and_CPP
标题[情报] BBS C++ 标色工具
时间Wed Nov 7 04:06:47 2007
有键於之前 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