From 648ba92209defe676c3e315698c751358c3e4f9e Mon Sep 17 00:00:00 2001 From: Skydev0h Date: Sat, 30 Dec 2023 23:09:53 +0200 Subject: [PATCH] test 3 --- contracts/task3.fc | 24 +++++++++++------------- contracts/task4.fc | 2 +- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/contracts/task3.fc b/contracts/task3.fc index e0eedcf..2ffb162 100644 --- a/contracts/task3.fc +++ b/contracts/task3.fc @@ -44,7 +44,6 @@ cell trigger(cell c) method_id(888) { return migrate_one(c); } return_if(in_msg_body.slice_empty?()); int expected_version = in_msg_body~load_uint(32); - ifnot (expected_version) { set_data(wrap_storage(1, get_data())); {- @@ -66,7 +65,13 @@ cell trigger(cell c) method_id(888) { return migrate_one(c); } int version = ds~load_uint(32); cell storage = ds.preload_ref(); - if (version != expected_version) { + if (version == expected_version) { + + storage = process_message(storage, msg_value, balance, in_msg_full, payload.begin_parse()); + set_data(wrap_storage(version, storage)); + return(); + + } else { while (version != expected_version) { ;; ~dump([version, expected_version]); @@ -88,19 +93,12 @@ cell trigger(cell c) method_id(888) { return migrate_one(c); } throw_if(200, expected_code.null?()); set_c3(expected_code.begin_parse().bless()); set_code(expected_code); - {- - set_data(begin_cell() - .store_uint(version, 32) - .store_ref(storage) - .end_cell() - ); - commit(); - -} - } - storage = process_message(storage, msg_value, balance, in_msg_full, payload.begin_parse()); + storage = process_message(storage, msg_value, balance, in_msg_full, payload.begin_parse()); + set_data(wrap_storage(version, storage)); + return(); - set_data(wrap_storage(version, storage)); + } {- ret(); diff --git a/contracts/task4.fc b/contracts/task4.fc index cf7f457..a1eb5a9 100644 --- a/contracts/task4.fc +++ b/contracts/task4.fc @@ -131,7 +131,7 @@ const int infinity_price = (1 << infinity_shift) - 1; repeat(lx) { int c = t.t:(x); if (c == "S"u) { Sx = x; Sy = y; } - int ctp = tile_prices.t:(c) + (max(abs(Ex - x), abs(Ey - y)) << astar_dist_shift); + int ctp = tile_prices.t:(c) + ((abs(Ex - x) + abs(Ey - y)) << astar_dist_shift); if (c == "E"u) { ctp = ctp | fin_bit;} r~t:+( ctp ); x += 1;