[情報] BBS C++程式碼變彩色
有鍵於之前 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
推
11/07 09:46, , 1F
11/07 09:46, 1F
※ 編輯: eddle 來自: 59.117.173.184 (11/07 19:16)
推
11/07 20:40, , 2F
11/07 20:40, 2F
推
11/07 20:51, , 3F
11/07 20:51, 3F
推
11/08 10:19, , 4F
11/08 10:19, 4F
推
11/09 09:10, , 5F
11/09 09:10, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章