mirror of
https://github.com/fluencelabs/fluence-VRF
synced 2025-04-25 07:12:14 +00:00
state machine WIP
This commit is contained in:
parent
92b2b6f9ce
commit
53b322b8c8
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
*.a
|
*.a
|
||||||
|
*.o
|
||||||
*.sw*
|
*.sw*
|
||||||
*.dylib
|
*.dylib
|
||||||
*.ll
|
*.ll
|
||||||
@ -24,5 +25,6 @@ tags
|
|||||||
node_modules/
|
node_modules/
|
||||||
build/
|
build/
|
||||||
data/
|
data/
|
||||||
|
.idea/
|
||||||
.eos-dev/
|
.eos-dev/
|
||||||
wallet.pass
|
wallet.pass
|
||||||
|
20
main.cpp
20
main.cpp
@ -7,19 +7,31 @@ struct pub_key_type {
|
|||||||
|
|
||||||
struct Game {
|
struct Game {
|
||||||
bool new_game(int n) {
|
bool new_game(int n) {
|
||||||
|
if (state != STATE_NOT_STARTED)
|
||||||
|
return false;
|
||||||
|
|
||||||
len = 0;
|
len = 0;
|
||||||
players = (char**)malloc(sizeof(char*) * n);
|
players = (char**)malloc(sizeof(char*) * n);
|
||||||
stakes = (int*)malloc(sizeof(int) * n);
|
stakes = (int*)malloc(sizeof(int) * n);
|
||||||
|
|
||||||
|
state = STATE_GATHERING_STAKES;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool add_stake(int stake, pub_key_type pub_key) {
|
bool add_stake(int stake, pub_key_type pub_key) {
|
||||||
|
if (state != STATE_GATHERING_STAKES)
|
||||||
|
return false;
|
||||||
|
|
||||||
stakes[len] = stake;
|
stakes[len] = stake;
|
||||||
players[len] = pub_key.data;
|
players[len] = pub_key.data;
|
||||||
++len;
|
++len;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int get_stake(pub_key_type pub_key) {
|
int get_stake(pub_key_type pub_key) {
|
||||||
|
if (state == STATE_NOT_STARTED)
|
||||||
|
return false;
|
||||||
|
|
||||||
for (int i = 0; i < len; i++) {
|
for (int i = 0; i < len; i++) {
|
||||||
if (compare(players[i], pub_key.data, pub_key.len))
|
if (compare(players[i], pub_key.data, pub_key.len))
|
||||||
return stakes[i];
|
return stakes[i];
|
||||||
@ -41,9 +53,17 @@ struct Game {
|
|||||||
}
|
}
|
||||||
|
|
||||||
char** get_participants() {
|
char** get_participants() {
|
||||||
|
if (state == STATE_NOT_STARTED)
|
||||||
|
return 0;
|
||||||
|
|
||||||
return players;
|
return players;
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
|
static const int STATE_NOT_STARTED = 0;
|
||||||
|
static const int STATE_GATHERING_STAKES = 1;
|
||||||
|
static const int STATE_REVEALING = 2;
|
||||||
|
int state;
|
||||||
|
|
||||||
int *stakes;
|
int *stakes;
|
||||||
char **players;
|
char **players;
|
||||||
int len;
|
int len;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user