C 實現石頭剪刀布

2021-09-24 15:15:07 字數 4428 閱讀 4069

c++實現了個石頭剪子布功能具有資料的讀寫功能即顯示遊戲記錄功能

要充分地分析和理解問題本身,弄清要求做什麼。在確定解決方案框架過程中,考慮怎樣使程式結構清晰、合理、簡單和易於除錯,並確定每個函式的簡單功能,以及函式之間的呼叫關係。

綜上 新手寫的 歡迎指出問題~

以下是computer people類的宣告和實現

computer 和 people類主要功能為 input show read write功能

以下函式為電腦的input核心演算法

srand((unsigned)time(0));

for (int i = 0; i < 10; i++)

#pragma once

#include"project.h"

class computer:virtual public project

; virtual ~computer() {};

void input();

void show()const;

void read(fstream& f)const;

void write(fstream& f)const;

};

#include "computer.h"

void computer::input()

switch (radom)

} void computer::show()const

void computer::read(fstream& f) const

void computer::write(fstream& f)const

#pragma once

#include"project.h"

class people:virtual public project

; virtual ~people() {};

void input();

void show()const;

void read(fstream& f)const;

void write(fstream& f)const;

};

#include "people.h"

void people::input()

} void people::show() const

void people::read(fstream&f) const

void people::write(fstream& f)const

以下是project.h主要實現遊戲規則的的定義

#pragma once

#include#include#include#includeusing namespace std;

enum base ;

class project

; virtual void input() = 0;

void setbase(int b)

int getnum()

string getbase() const

else if (num == 1)

else

c = "布";

return c;

}virtual void show()const = 0;

virtual void read(fstream& f)const = 0;

virtual void write(fstream& f)const = 0;

};

以下是systemm主要實現遊戲功能的定義和宣告

為什麼叫systemm呢 因為system是關鍵字會報錯的

#pragma once

#include"people.h"

#include"computer.h"

#include"usertype.h"

class systemm

;

#include "systemm.h"

static double wins = 0.0;

bool inline usersaysyes()

else

}systemm::systemm()

userfile.close();

}else

ifstream ifile("user.dat");

if (ifile.fail())

else

file.open("user.dat", ios::in | ios::out | ios::binary); //以讀寫的方式開啟檔案

if (file.fail())throw("開啟檔案失敗!"); //丟擲異常

}systemm::~systemm()

userfile.close();

file.close();

}void systemm::adduser(const usertype& e)

deleteusertable;

usertable = temusertable;

}//新增元素

usertable[count++] = e; //加入到索引表中

}

void systemm::adddate()

computer->input();

peo->input();

if (computer->getnum() == 0 && peo->getnum() == 1)

else if (computer->getnum() == 1 && peo->getnum() == 2)

else if (computer->getnum() == 2 && peo->getnum() == 0)

else if (computer->getnum() == 0 && peo->getnum() == 2)

else if (computer->getnum() == 1 && peo->getnum() == 0)

else if (computer->getnum() == 2 && peo->getnum() == 1)

else if (computer->getnum() == 0 && peo->getnum() == 0)

else if (computer->getnum() == 1 && peo->getnum() == 1)

else if (computer->getnum() == 2 && peo->getnum() == 2)

if (ss == 2)

f++;

} while (ss == 2);

if (ss == 1)

else

peo->write(file);

cout << "是否要繼續新增?";

delete peo;

} while (usersaysyes());

}

void systemm::show() 

else

}cout << "勝率為:" << (wins / (pos + 1)) * 100 << "%" << endl;

if (pos == 0)

}void systemm::run()

} while (select != 3);

}

以下是usertype 類

即為索引錶類

#pragma once

#include class usertype

;

以下是main函式

#include"systemm.h"

#include"usertype.h"

int main(void)

catch (char* error)

system("pause");

return 0;

}

該項目的寫入是電腦挨著人電腦挨著人乙個乙個儲存下去

然而讀取資料的話是從開始讀到結尾

因此我給電腦和人分別給usertype賦值以防讀取錯誤的資料呼叫錯誤的方法

我在其它部落格也粗略的寫過這篇部落格 **為:

C 石頭剪刀布的實現

知識儲備 while true 不斷重複執行大括號內部的語句 include include using namespace std main 輸入 jkljkljkl 輸出 jkljkljkl 輸入 jkl jfksldfj jklsjfl 輸出 jkl jfksldfj jklsjfl 和cin...

C 實現石頭剪刀布遊戲

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...

剪刀石頭布

開始學習時寫的剪刀石頭布 雖然是用c 寫的 我感覺思想還是面向過程 慚愧慚愧 include include include include includeusing namespace std enum caiquan class inte cet inte cet inte cet system...